From 9f35d33f65103a7d0ddae14c70f52fc63fdd875d Mon Sep 17 00:00:00 2001 From: Hyungi Ahn Date: Wed, 25 Feb 2026 08:54:47 +0900 Subject: [PATCH] =?UTF-8?q?refactor:=20debug=20print=20=EC=A0=9C=EA=B1=B0?= =?UTF-8?q?=20+=20bcrypt=20=ED=86=B5=EC=9D=BC=20+=20=EB=AF=B8=EC=82=AC?= =?UTF-8?q?=EC=9A=A9=20=EC=9D=98=EC=A1=B4=EC=84=B1=20=EC=A0=95=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - System 3 issues.py: DEBUG print 24곳 제거 (민감정보 노출 방지) - System 1 API: bcrypt(네이티브) → bcryptjs(순수JS) 통일 (3파일) - System 1 API: 미사용 bcrypt, sqlite3 의존성 제거 - FastAPI bridge: deprecated datetime.utcnow() 수정 - git: 추적 중이던 로그파일 7개 제거 (.gitignore 적용) Co-Authored-By: Claude Opus 4.6 --- .../api/controllers/userController.js | 2 +- .../api/controllers/workerController.js | 2 +- ...02_create_accounts_for_existing_workers.js | 2 +- system1-factory/api/logs/app.log | 606719 --------------- system1-factory/api/logs/error.log | 4752 - system1-factory/api/package.json | 2 - system1-factory/api/server.log | 27 - system1-factory/fastapi-bridge/cache-test.log | 119 - .../fastapi-bridge/fastapi-cache.log | 16 - system1-factory/fastapi-bridge/fastapi.log | 266 - system1-factory/fastapi-bridge/main.py | 2 +- .../fastapi-bridge/phase4-test.log | 16 - system3-nonconformance/api/routers/issues.py | 35 +- 13 files changed, 7 insertions(+), 611953 deletions(-) delete mode 100644 system1-factory/api/logs/app.log delete mode 100644 system1-factory/api/logs/error.log delete mode 100644 system1-factory/api/server.log delete mode 100644 system1-factory/fastapi-bridge/cache-test.log delete mode 100644 system1-factory/fastapi-bridge/fastapi-cache.log delete mode 100644 system1-factory/fastapi-bridge/fastapi.log delete mode 100644 system1-factory/fastapi-bridge/phase4-test.log diff --git a/system1-factory/api/controllers/userController.js b/system1-factory/api/controllers/userController.js index 3873f90..92684a2 100644 --- a/system1-factory/api/controllers/userController.js +++ b/system1-factory/api/controllers/userController.js @@ -7,7 +7,7 @@ * @since 2025-12-11 */ -const bcrypt = require('bcrypt'); +const bcrypt = require('bcryptjs'); const { ValidationError, ForbiddenError, NotFoundError, ConflictError, DatabaseError } = require('../utils/errors'); const { asyncHandler } = require('../middlewares/errorHandler'); const logger = require('../utils/logger'); diff --git a/system1-factory/api/controllers/workerController.js b/system1-factory/api/controllers/workerController.js index 27ed407..e71332b 100644 --- a/system1-factory/api/controllers/workerController.js +++ b/system1-factory/api/controllers/workerController.js @@ -14,7 +14,7 @@ const logger = require('../utils/logger'); const cache = require('../utils/cache'); const { optimizedQueries } = require('../utils/queryOptimizer'); const { hangulToRoman, generateUniqueUsername } = require('../utils/hangulToRoman'); -const bcrypt = require('bcrypt'); +const bcrypt = require('bcryptjs'); const { getDb } = require('../dbPool'); /** diff --git a/system1-factory/api/db/migrations/20260119120002_create_accounts_for_existing_workers.js b/system1-factory/api/db/migrations/20260119120002_create_accounts_for_existing_workers.js index 6a45e11..70cf78f 100644 --- a/system1-factory/api/db/migrations/20260119120002_create_accounts_for_existing_workers.js +++ b/system1-factory/api/db/migrations/20260119120002_create_accounts_for_existing_workers.js @@ -10,7 +10,7 @@ * 5. 현재 연도 연차 잔액 초기화 (workers.annual_leave 사용) */ -const bcrypt = require('bcrypt'); +const bcrypt = require('bcryptjs'); const { generateUniqueUsername } = require('../../utils/hangulToRoman'); exports.up = async function(knex) { diff --git a/system1-factory/api/logs/app.log b/system1-factory/api/logs/app.log deleted file mode 100644 index ae50324..0000000 --- a/system1-factory/api/logs/app.log +++ /dev/null @@ -1,606719 +0,0 @@ -[2025-12-19T01:25:16.963Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2025-12-19T01:25:17.052Z] [INFO] ℹ️ 라우트 설정 완료 -[2025-12-19T01:25:17.170Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2025-12-19T01:25:21.786Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T01:25:21.792Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "7ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T01:25:22.726Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2025-12-19T01:25:26.879Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T01:25:26.880Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T01:25:31.981Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T01:25:31.982Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T01:25:37.071Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T01:25:37.072Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T01:25:42.164Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T01:25:42.165Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T01:25:47.267Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T01:25:47.268Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T01:25:52.340Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T01:25:52.340Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T01:25:57.425Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T01:25:57.426Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T01:26:27.518Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T01:26:27.519Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T01:26:57.613Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T01:26:57.614Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T01:27:27.700Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T01:27:27.701Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T01:27:57.772Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T01:27:57.773Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T01:27:59.159Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T01:27:59.164Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36" -} -[2025-12-19T01:28:03.160Z] [ERROR] ❌ 서버 오류가 발생했습니다. - Context: { - "code": "INTERNAL_ERROR", - "stack": "AppError: 서버 오류가 발생했습니다.\n at errorHandler (/usr/src/app/middlewares/errorHandler.js:51:13)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:71:5)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/src/app/node_modules/express/lib/router/index.js:280:10)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:67:12)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)", - "url": "/api/auth/login", - "method": "POST", - "user": "anonymous" -} -[2025-12-19T01:28:03.162Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 500, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36" -} -[2025-12-19T01:28:27.868Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T01:28:27.869Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T01:28:57.970Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T01:28:57.971Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T01:29:28.073Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T01:29:28.075Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T01:29:58.183Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T01:29:58.184Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T01:30:28.330Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T01:30:28.333Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "6ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T01:30:58.451Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T01:30:58.453Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T01:31:28.543Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T01:31:28.544Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T01:31:58.637Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T01:31:58.638Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T01:32:28.728Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T01:32:28.729Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T01:32:58.809Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T01:32:58.809Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T01:33:28.893Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T01:33:28.894Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T01:33:58.982Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T01:33:58.983Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T01:34:29.097Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T01:34:29.123Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "27ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T01:34:59.208Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T01:34:59.209Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T01:35:29.300Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T01:35:29.301Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T01:35:59.395Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T01:35:59.396Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T01:36:29.488Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T01:36:29.489Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T01:36:59.581Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T01:36:59.582Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T01:37:29.671Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T01:37:29.672Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T01:37:59.765Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T01:37:59.766Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T01:38:29.878Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T01:38:29.880Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T01:38:59.975Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T01:38:59.976Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T01:39:30.065Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T01:39:30.066Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T01:40:00.189Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T01:40:00.190Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T01:40:30.274Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T01:40:30.275Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T01:41:00.362Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T01:41:00.363Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T01:41:30.451Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T01:41:30.451Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T01:42:00.539Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T01:42:00.540Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T01:42:30.622Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T01:42:30.624Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T01:43:00.708Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T01:43:00.709Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T01:43:30.796Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T01:43:30.797Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T01:44:00.889Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T01:44:00.890Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T01:44:30.981Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T01:44:30.982Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T01:45:01.067Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T01:45:01.068Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T01:45:31.166Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T01:45:31.167Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T01:46:01.355Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T01:46:01.357Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T01:46:31.453Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T01:46:31.454Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T01:47:01.545Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T01:47:01.546Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T01:47:31.630Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T01:47:31.631Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T01:48:01.705Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T01:48:01.706Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T01:48:31.802Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T01:48:31.803Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T01:49:01.894Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T01:49:01.894Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T01:49:31.982Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T01:49:31.983Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T01:50:02.099Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T01:50:02.101Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T01:50:32.190Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T01:50:32.191Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T01:51:02.284Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T01:51:02.284Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T01:51:32.393Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T01:51:32.397Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T01:52:02.557Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T01:52:02.559Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T01:52:32.683Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T01:52:32.685Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T01:53:02.794Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T01:53:02.795Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T01:53:32.900Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T01:53:32.901Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T01:54:03.000Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T01:54:03.001Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T01:54:33.113Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T01:54:33.115Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T01:55:03.214Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T01:55:03.215Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T01:55:33.299Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T01:55:33.300Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T01:56:03.407Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T01:56:03.408Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T01:56:33.498Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T01:56:33.499Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T01:57:03.594Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T01:57:03.596Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T01:57:33.692Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T01:57:33.693Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T01:58:03.772Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T01:58:03.774Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T01:58:33.874Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T01:58:33.875Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T01:59:03.979Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T01:59:03.980Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T01:59:34.077Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T01:59:34.078Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T02:00:04.168Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T02:00:04.169Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T02:00:34.263Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T02:00:34.264Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T02:01:04.366Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T02:01:04.367Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T02:01:34.469Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T02:01:34.470Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T02:02:04.543Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T02:02:04.544Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T02:02:34.642Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T02:02:34.643Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T02:03:04.729Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T02:03:04.730Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T02:03:34.798Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T02:03:34.799Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T02:04:04.898Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T02:04:04.899Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T02:04:34.988Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T02:04:34.991Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T02:05:05.069Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T02:05:05.069Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T02:05:35.101Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T02:05:35.102Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T02:06:05.208Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T02:06:05.210Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T02:06:35.296Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T02:06:35.296Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T02:07:05.385Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T02:07:05.386Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T02:07:35.483Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T02:07:35.483Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T02:08:05.588Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T02:08:05.589Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T02:08:35.671Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T02:08:35.672Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T02:09:05.739Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T02:09:05.740Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T02:09:35.830Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T02:09:35.830Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T02:10:05.920Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T02:10:05.921Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T02:10:36.009Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T02:10:36.010Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T02:11:06.098Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T02:11:06.099Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T02:11:36.181Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T02:11:36.182Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T02:12:06.269Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T02:12:06.270Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T02:12:36.372Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T02:12:36.373Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T02:13:06.463Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T02:13:06.464Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T02:13:36.559Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T02:13:36.559Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T02:14:06.648Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T02:14:06.649Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T02:14:36.738Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T02:14:36.739Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T02:15:06.872Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T02:15:06.874Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T02:15:36.972Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T02:15:36.973Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T02:16:07.056Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T02:16:07.057Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T02:16:37.148Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T02:16:37.149Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T02:17:07.238Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T02:17:07.239Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T02:17:37.328Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T02:17:37.329Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T02:18:07.420Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T02:18:07.420Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T02:18:37.509Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T02:18:37.509Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T02:19:07.609Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T02:19:07.610Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T02:19:37.700Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T02:19:37.701Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T02:20:07.845Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T02:20:07.848Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T02:20:37.957Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T02:20:37.959Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T02:21:08.068Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T02:21:08.068Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T02:21:38.172Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T02:21:38.173Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T02:22:08.261Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T02:22:08.263Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T02:22:38.358Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T02:22:38.359Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T02:23:08.457Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T02:23:08.458Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T02:23:38.552Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T02:23:38.553Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T02:24:08.642Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T02:24:08.643Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T02:24:38.734Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T02:24:38.735Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T02:25:08.827Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T02:25:08.828Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T02:25:38.926Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T02:25:38.927Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T02:26:09.028Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T02:26:09.078Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "50ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T02:26:39.180Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T02:26:39.181Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T02:27:09.299Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T02:27:09.300Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T02:27:39.390Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T02:27:39.391Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T02:28:09.487Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T02:28:09.487Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T02:28:39.581Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T02:28:39.583Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T02:29:09.676Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T02:29:09.676Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T02:29:39.776Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T02:29:39.777Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T02:30:09.856Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T02:30:09.857Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T02:30:39.955Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T02:30:39.956Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T02:31:10.056Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T02:31:10.057Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T02:31:40.158Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T02:31:40.159Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T02:32:10.250Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T02:32:10.251Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T02:32:40.347Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T02:32:40.348Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T02:33:10.446Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T02:33:10.447Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T02:33:40.539Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T02:33:40.540Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T02:34:10.634Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T02:34:10.635Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T02:34:40.732Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T02:34:40.733Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T02:35:10.828Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T02:35:10.829Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T02:35:40.926Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T02:35:40.927Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T02:36:11.009Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T02:36:11.010Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T02:36:41.100Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T02:36:41.101Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T02:37:11.195Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T02:37:11.196Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T02:37:41.285Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T02:37:41.286Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T02:38:11.385Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T02:38:11.386Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T02:38:41.471Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T02:38:41.472Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T02:39:11.571Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T02:39:11.572Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T02:39:41.676Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T02:39:41.677Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T02:40:11.762Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T02:40:11.762Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T02:40:41.861Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T02:40:41.862Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T02:41:11.934Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T02:41:11.936Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T02:41:42.030Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T02:41:42.031Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T02:42:12.124Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T02:42:12.125Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T02:42:42.220Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T02:42:42.221Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T02:43:12.307Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T02:43:12.308Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T02:43:42.396Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T02:43:42.397Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T02:44:12.482Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T02:44:12.483Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T02:44:42.570Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T02:44:42.571Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T02:45:12.661Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T02:45:12.662Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T02:45:42.742Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T02:45:42.742Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T02:46:12.826Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T02:46:12.827Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T02:46:42.923Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T02:46:42.926Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T02:47:13.044Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T02:47:13.044Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T02:47:43.128Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T02:47:43.129Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T02:48:13.226Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T02:48:13.227Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T02:48:43.316Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T02:48:43.316Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T02:49:13.403Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T02:49:13.404Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T02:49:43.501Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T02:49:43.502Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T02:50:13.592Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T02:50:13.593Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T02:50:43.688Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T02:50:43.689Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T02:51:13.789Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T02:51:13.789Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T02:51:43.879Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T02:51:43.880Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T02:52:13.969Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T02:52:13.969Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T02:52:44.069Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T02:52:44.070Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T02:53:14.165Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T02:53:14.166Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T02:53:44.262Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T02:53:44.263Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T02:54:14.351Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T02:54:14.352Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T02:54:44.461Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T02:54:44.462Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T02:55:14.567Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T02:55:14.568Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T02:55:44.654Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T02:55:44.655Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T02:56:14.754Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T02:56:14.755Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T02:56:44.846Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T02:56:44.847Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T02:57:14.949Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T02:57:14.949Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T02:57:45.044Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T02:57:45.045Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T02:58:15.133Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T02:58:15.134Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T02:58:45.222Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T02:58:45.223Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T02:59:15.318Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T02:59:15.319Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T02:59:45.407Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T02:59:45.408Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T03:00:15.497Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T03:00:15.498Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T03:00:45.588Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T03:00:45.589Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T03:01:15.687Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T03:01:15.688Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T03:01:45.774Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T03:01:45.775Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T03:02:15.876Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T03:02:15.877Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T03:02:45.994Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T03:02:45.995Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T03:03:16.085Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T03:03:16.085Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T03:03:46.180Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T03:03:46.181Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T03:04:16.272Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T03:04:16.273Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T03:04:46.357Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T03:04:46.358Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T03:05:16.460Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T03:05:16.461Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T03:05:46.535Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T03:05:46.535Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T03:06:16.624Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T03:06:16.624Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T03:06:46.714Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T03:06:46.715Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T03:07:16.793Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T03:07:16.794Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T03:07:46.891Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T03:07:46.892Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T03:08:16.995Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T03:08:16.996Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T03:08:47.084Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T03:08:47.085Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T03:09:17.180Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T03:09:17.180Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T03:09:47.269Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T03:09:47.269Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T03:10:17.410Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T03:10:17.413Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T03:10:47.500Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T03:10:47.500Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T03:11:17.601Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T03:11:17.602Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T03:11:47.801Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T03:11:47.802Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T03:12:17.899Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T03:12:17.900Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T03:12:47.989Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T03:12:47.990Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T03:13:18.074Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T03:13:18.074Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T03:13:48.183Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T03:13:48.184Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T03:14:18.281Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T03:14:18.282Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T03:14:48.389Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T03:14:48.391Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T03:15:18.486Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T03:15:18.486Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T03:15:48.596Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T03:15:48.597Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T03:16:18.736Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T03:16:18.739Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T03:16:48.881Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T03:16:48.926Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "46ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T03:17:19.033Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T03:17:19.035Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T03:17:49.166Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T03:17:49.168Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T03:18:19.288Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T03:18:19.290Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T03:18:49.392Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T03:18:49.393Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T03:19:19.509Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T03:19:19.512Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T03:19:49.622Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T03:19:49.623Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T03:20:16.475Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2025-12-19T03:20:16.514Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2025-12-19T03:20:18.838Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2025-12-19T03:20:18.902Z] [INFO] ℹ️ 라우트 설정 완료 -[2025-12-19T03:20:18.988Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2025-12-19T03:20:23.623Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T03:20:23.627Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "5ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T03:20:24.540Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2025-12-19T03:20:28.719Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T03:20:28.720Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T03:20:33.820Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T03:20:33.822Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T03:20:38.914Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T03:20:38.916Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T03:20:44.023Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T03:20:44.025Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T03:20:49.122Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T03:20:49.123Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T03:20:54.224Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T03:20:54.225Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T03:20:59.295Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T03:20:59.296Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T03:21:29.415Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T03:21:29.416Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T03:21:59.498Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T03:21:59.499Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T03:22:29.612Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T03:22:29.613Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T03:22:59.718Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T03:22:59.720Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T03:23:29.834Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T03:23:29.836Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T03:23:59.941Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T03:23:59.943Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T03:24:30.059Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T03:24:30.061Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T03:25:00.222Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T03:25:00.226Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T03:25:30.365Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T03:25:30.367Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "5ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T03:26:00.558Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T03:26:00.564Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "10ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T03:26:30.691Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T03:26:30.692Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T03:27:00.787Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T03:27:00.790Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T03:27:30.989Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T03:27:30.992Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T03:28:01.109Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T03:28:01.110Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T03:28:31.264Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T03:28:31.265Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T03:29:01.355Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T03:29:01.356Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T03:29:31.459Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T03:29:31.460Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T03:30:01.554Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T03:30:01.555Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T03:30:31.678Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T03:30:31.680Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T03:31:01.779Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T03:31:01.780Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T03:31:31.889Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T03:31:31.891Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T03:32:02.012Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T03:32:02.015Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T03:32:32.121Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T03:32:32.122Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T03:33:02.225Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T03:33:02.226Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T03:33:32.329Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T03:33:32.331Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T03:34:02.424Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T03:34:02.425Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T03:34:32.565Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T03:34:32.566Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T03:35:02.681Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T03:35:02.682Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T03:35:32.757Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T03:35:32.758Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T03:36:02.869Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T03:36:02.870Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T03:36:32.969Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T03:36:32.970Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T03:37:03.067Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T03:37:03.068Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T03:37:33.240Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T03:37:33.286Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "49ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T03:38:03.393Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T03:38:03.396Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T03:38:33.482Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T03:38:33.483Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T03:39:03.568Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T03:39:03.569Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T03:39:33.675Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T03:39:33.675Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T03:40:03.793Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T03:40:03.794Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T03:40:33.886Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T03:40:33.887Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T03:41:03.981Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T03:41:03.982Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T03:41:34.119Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T03:41:34.120Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T03:42:04.227Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T03:42:04.228Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T03:42:34.331Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T03:42:34.332Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T03:43:04.427Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T03:43:04.428Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T03:43:34.525Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T03:43:34.526Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T03:44:04.617Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T03:44:04.618Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T03:44:34.709Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T03:44:34.710Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T03:45:04.795Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T03:45:04.797Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T03:45:34.873Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T03:45:34.874Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T03:46:04.972Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T03:46:04.973Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T03:46:35.086Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T03:46:35.087Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T03:47:05.182Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T03:47:05.183Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T03:47:35.276Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T03:47:35.277Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T03:48:05.371Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T03:48:05.372Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T03:48:35.472Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T03:48:35.473Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T03:49:04.277Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2025-12-19T03:49:04.279Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2025-12-19T03:49:05.853Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2025-12-19T03:49:05.919Z] [INFO] ℹ️ 라우트 설정 완료 -[2025-12-19T03:49:06.001Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2025-12-19T03:49:10.696Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T03:49:10.699Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T03:49:11.560Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2025-12-19T03:49:15.772Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T03:49:15.773Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T03:49:20.842Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T03:49:20.843Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T03:49:25.937Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T03:49:25.938Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T03:49:31.043Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T03:49:31.045Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T03:49:36.149Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T03:49:36.151Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T03:49:39.470Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T03:49:39.476Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "8ms", - "ip": "::ffff:185.199.111.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36" -} -[2025-12-19T03:49:41.273Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T03:49:41.274Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T03:49:44.167Z] [ERROR] ❌ 서버 오류가 발생했습니다. - Context: { - "code": "INTERNAL_ERROR", - "stack": "AppError: 서버 오류가 발생했습니다.\n at errorHandler (/usr/src/app/middlewares/errorHandler.js:51:13)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:71:5)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/src/app/node_modules/express/lib/router/index.js:280:10)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:67:12)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)", - "url": "/api/auth/login", - "method": "POST", - "user": "anonymous" -} -[2025-12-19T03:49:44.170Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 500, - "duration": "9ms", - "ip": "::ffff:185.199.111.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36" -} -[2025-12-19T03:49:46.371Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T03:49:46.373Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T03:50:16.493Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T03:50:16.495Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T03:50:46.594Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T03:50:46.596Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T03:51:16.702Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T03:51:16.703Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T03:51:46.819Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T03:51:46.821Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T03:52:16.915Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T03:52:16.916Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T03:52:47.022Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T03:52:47.023Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T03:53:17.139Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T03:53:17.140Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T03:53:47.322Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T03:53:47.325Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T03:54:17.451Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T03:54:17.454Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T03:54:47.563Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T03:54:47.564Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T03:55:17.672Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T03:55:17.675Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T03:55:47.772Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T03:55:47.775Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T03:56:17.861Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T03:56:17.862Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T03:56:47.953Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T03:56:47.954Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T03:57:18.066Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T03:57:18.107Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "42ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T03:57:48.210Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T03:57:48.210Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T03:58:18.295Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T03:58:18.296Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T03:58:48.395Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T03:58:48.396Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T03:59:18.506Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T03:59:18.508Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T03:59:48.599Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T03:59:48.600Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T04:00:18.727Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T04:00:18.729Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T04:00:48.829Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T04:00:48.830Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T04:01:18.913Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T04:01:18.914Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T04:01:49.011Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T04:01:49.012Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T04:02:19.095Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T04:02:19.097Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T04:02:49.208Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T04:02:49.210Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T04:03:19.300Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T04:03:19.301Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T04:03:49.396Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T04:03:49.397Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T04:04:19.502Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T04:04:19.503Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T04:04:49.608Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T04:04:49.609Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T04:05:19.693Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T04:05:19.693Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T04:05:49.802Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T04:05:49.803Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T04:06:19.888Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T04:06:19.889Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T04:06:50.011Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T04:06:50.017Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "7ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T04:07:20.118Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T04:07:20.119Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T04:07:50.221Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T04:07:50.223Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T04:08:20.344Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T04:08:20.346Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T04:08:50.440Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T04:08:50.442Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T04:09:20.535Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T04:09:20.535Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T04:09:50.636Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T04:09:50.637Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T04:10:20.703Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T04:10:20.704Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T04:10:50.799Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T04:10:50.802Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T04:11:20.881Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T04:11:20.881Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T04:11:51.018Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T04:11:51.019Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T04:12:21.115Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T04:12:21.117Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T04:12:51.209Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T04:12:51.210Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T04:13:21.299Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T04:13:21.299Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T04:13:51.390Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T04:13:51.391Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T04:14:21.493Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T04:14:21.494Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T04:14:51.593Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T04:14:51.594Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T04:15:21.706Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T04:15:21.708Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T04:15:51.808Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T04:15:51.809Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T04:16:21.911Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T04:16:21.912Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T04:16:52.019Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T04:16:52.021Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T04:17:22.106Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T04:17:22.107Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T04:17:52.204Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T04:17:52.204Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T04:18:22.301Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T04:18:22.301Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T04:18:52.364Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T04:18:52.365Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T04:19:22.423Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T04:19:22.424Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T04:19:52.486Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T04:19:52.487Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T04:20:22.573Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T04:20:22.574Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T04:20:52.689Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T04:20:52.690Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T04:21:22.779Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T04:21:22.780Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T04:21:52.834Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T04:21:52.835Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T04:22:22.935Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T04:22:22.936Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T04:22:53.021Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T04:22:53.023Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T04:23:23.098Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T04:23:23.099Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T04:23:53.185Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T04:23:53.185Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T04:24:23.293Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T04:24:23.294Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T04:24:53.380Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T04:24:53.381Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T04:25:23.470Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T04:25:23.471Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T04:25:53.566Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T04:25:53.566Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T04:26:23.629Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T04:26:23.630Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T04:26:53.723Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T04:26:53.723Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T04:27:23.810Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T04:27:23.811Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T04:27:53.898Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T04:27:53.898Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T04:28:23.985Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T04:28:23.986Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T04:28:54.084Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T04:28:54.084Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T04:29:24.178Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T04:29:24.179Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T04:29:54.293Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T04:29:54.294Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T04:30:24.393Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T04:30:24.394Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T04:30:54.509Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T04:30:54.512Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T04:31:24.620Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T04:31:24.621Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T04:31:54.731Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T04:31:54.733Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T04:32:24.830Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T04:32:24.832Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T04:32:54.936Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T04:32:54.937Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T04:33:25.035Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T04:33:25.037Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T04:33:55.135Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T04:33:55.136Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T04:34:25.236Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T04:34:25.237Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T04:34:55.338Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T04:34:55.340Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T04:35:25.445Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T04:35:25.446Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T04:35:55.559Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T04:35:55.561Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T04:36:25.651Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T04:36:25.652Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T04:36:55.738Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T04:36:55.738Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T04:37:25.841Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T04:37:25.842Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T04:37:55.937Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T04:37:55.938Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T04:38:26.027Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T04:38:26.028Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T04:38:56.139Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T04:38:56.141Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T04:39:26.237Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T04:39:26.238Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T04:39:56.484Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T04:39:56.486Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T04:40:26.588Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T04:40:26.590Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T04:40:56.706Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T04:40:56.707Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T04:41:26.849Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T04:41:26.851Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T04:41:56.948Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T04:41:56.950Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T04:42:27.044Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T04:42:27.046Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T04:42:57.150Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T04:42:57.152Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T04:43:27.238Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T04:43:27.241Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T04:43:57.341Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T04:43:57.342Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T04:44:27.444Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T04:44:27.450Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "5ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T04:44:57.563Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T04:44:57.564Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T04:45:27.665Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T04:45:27.666Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T04:45:48.760Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T04:45:48.764Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "5ms", - "ip": "::ffff:185.199.111.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15" -} -[2025-12-19T04:45:53.564Z] [ERROR] ❌ 서버 오류가 발생했습니다. - Context: { - "code": "INTERNAL_ERROR", - "stack": "AppError: 서버 오류가 발생했습니다.\n at errorHandler (/usr/src/app/middlewares/errorHandler.js:51:13)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:71:5)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/src/app/node_modules/express/lib/router/index.js:280:10)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:67:12)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)", - "url": "/api/auth/login", - "method": "POST", - "user": "anonymous" -} -[2025-12-19T04:45:53.567Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 500, - "duration": "8ms", - "ip": "::ffff:185.199.111.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15" -} -[2025-12-19T04:45:57.778Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T04:45:57.779Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T04:46:27.890Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T04:46:27.892Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T04:46:57.980Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T04:46:57.981Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T04:47:28.084Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T04:47:28.085Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T04:47:58.177Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T04:47:58.178Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T04:48:08.514Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2025-12-19T04:48:08.519Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2025-12-19T04:48:41.221Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2025-12-19T04:48:41.291Z] [INFO] ℹ️ 라우트 설정 완료 -[2025-12-19T04:48:41.401Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2025-12-19T04:48:45.952Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T04:48:45.956Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "5ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T04:48:46.965Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2025-12-19T04:48:51.042Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T04:48:51.044Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T04:48:56.132Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T04:48:56.133Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T04:49:01.225Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T04:49:01.226Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T04:49:06.316Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T04:49:06.317Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T04:49:11.413Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T04:49:11.415Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T04:49:16.509Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T04:49:16.510Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T04:49:21.623Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T04:49:21.624Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T04:49:35.285Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T04:49:35.287Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:185.199.111.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15" -} -[2025-12-19T04:49:51.729Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T04:49:51.731Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T04:50:21.844Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T04:50:21.847Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T04:50:25.816Z] [ERROR] ❌ 서버 오류가 발생했습니다. - Context: { - "code": "INTERNAL_ERROR", - "stack": "AppError: 서버 오류가 발생했습니다.\n at errorHandler (/usr/src/app/middlewares/errorHandler.js:51:13)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:71:5)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/src/app/node_modules/express/lib/router/index.js:280:10)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:67:12)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)", - "url": "/api/auth/login", - "method": "POST", - "user": "anonymous" -} -[2025-12-19T04:50:25.818Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 500, - "duration": "46005ms", - "ip": "::ffff:185.199.111.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15" -} -[2025-12-19T04:50:51.951Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T04:50:51.953Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T04:51:22.035Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T04:51:22.036Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T04:51:52.148Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T04:51:52.150Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T04:52:22.258Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T04:52:22.260Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T04:52:52.382Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T04:52:52.384Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T04:53:22.507Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T04:53:22.509Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "5ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T04:53:52.635Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T04:53:52.637Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T04:54:22.767Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T04:54:22.772Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "6ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T04:54:52.957Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T04:54:52.962Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "5ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T04:55:23.150Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T04:55:23.153Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T04:55:53.274Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T04:55:53.276Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T04:56:23.343Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T04:56:23.344Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T04:56:53.434Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T04:56:53.440Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "6ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T04:57:09.090Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2025-12-19T04:57:09.102Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2025-12-19T04:57:11.428Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2025-12-19T04:57:11.511Z] [INFO] ℹ️ 라우트 설정 완료 -[2025-12-19T04:57:11.626Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2025-12-19T04:57:11.629Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2025-12-19T04:57:16.169Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T04:57:16.172Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T04:57:21.270Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T04:57:21.271Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T04:57:26.369Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T04:57:26.370Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T04:57:31.460Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T04:57:31.461Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T04:57:36.554Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T04:57:36.556Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T04:57:41.621Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T04:57:41.622Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T04:57:46.730Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T04:57:46.731Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T04:57:51.829Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T04:57:51.830Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T04:58:21.924Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T04:58:21.926Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T04:58:52.021Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T04:58:52.022Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T04:59:22.166Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T04:59:22.168Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T04:59:52.297Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T04:59:52.298Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T05:00:22.409Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health", - "method": "GET" -} -[2025-12-19T05:00:22.410Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 404, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T05:00:39.191Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2025-12-19T05:00:41.127Z] [ERROR] ❌ 서버 오류가 발생했습니다. - Context: { - "code": "INTERNAL_ERROR", - "stack": "AppError: 서버 오류가 발생했습니다.\n at errorHandler (/usr/src/app/middlewares/errorHandler.js:51:13)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:71:5)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/src/app/node_modules/express/lib/router/index.js:280:10)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:67:12)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)", - "url": "/api/auth/login", - "method": "POST", - "user": "anonymous" -} -[2025-12-19T05:00:41.130Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 500, - "duration": "47941ms", - "ip": "::ffff:185.199.111.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15" -} -[2025-12-19T05:00:46.139Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2025-12-19T05:00:48.127Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2025-12-19T05:00:48.209Z] [INFO] ℹ️ 라우트 설정 완료 -[2025-12-19T05:00:48.310Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2025-12-19T05:00:48.316Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2025-12-19T05:00:52.944Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T05:01:23.056Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T05:01:38.092Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.111.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15" -} -[2025-12-19T05:01:53.155Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T05:02:23.262Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T05:02:24.251Z] [ERROR] ❌ 서버 오류가 발생했습니다. - Context: { - "code": "INTERNAL_ERROR", - "stack": "AppError: 서버 오류가 발생했습니다.\n at errorHandler (/usr/src/app/middlewares/errorHandler.js:51:13)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:71:5)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/src/app/node_modules/express/lib/router/index.js:280:10)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:67:12)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)", - "url": "/api/auth/login", - "method": "POST", - "user": "anonymous" -} -[2025-12-19T05:02:24.254Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 500, - "duration": "41423ms", - "ip": "::ffff:185.199.111.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15" -} -[2025-12-19T05:02:53.349Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T05:03:23.436Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T05:03:53.511Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T05:04:23.567Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T05:04:53.630Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T05:05:23.722Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T05:05:53.835Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T05:06:03.702Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2025-12-19T05:06:03.703Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2025-12-19T05:23:38.228Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2025-12-19T05:23:38.296Z] [INFO] ℹ️ 라우트 설정 완료 -[2025-12-19T05:23:38.391Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2025-12-19T05:23:38.394Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2025-12-19T05:23:43.058Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T05:24:02.833Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.111.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15" -} -[2025-12-19T05:24:07.099Z] [INFO] ℹ️ MariaDB 연결 성공 - Context: { - "connection": "db:3306", - "database": "hyungi", - "connectionLimit": 10 -} -[2025-12-19T05:24:07.104Z] [ERROR] ❌ 서버 오류가 발생했습니다. - Context: { - "code": "INTERNAL_ERROR", - "stack": "AppError: 서버 오류가 발생했습니다.\n at errorHandler (/usr/src/app/middlewares/errorHandler.js:51:13)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:71:5)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/src/app/node_modules/express/lib/router/index.js:280:10)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:67:12)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)", - "url": "/api/auth/login", - "method": "POST", - "user": "anonymous" -} -[2025-12-19T05:24:07.105Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 500, - "duration": "21ms", - "ip": "::ffff:185.199.111.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15" -} -[2025-12-19T05:24:13.170Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T05:24:32.095Z] [ERROR] ❌ 서버 오류가 발생했습니다. - Context: { - "code": "INTERNAL_ERROR", - "stack": "AppError: 서버 오류가 발생했습니다.\n at errorHandler (/usr/src/app/middlewares/errorHandler.js:51:13)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:71:5)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/src/app/node_modules/express/lib/router/index.js:280:10)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:67:12)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)", - "url": "/api/auth/login", - "method": "POST", - "user": "anonymous" -} -[2025-12-19T05:24:32.099Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 500, - "duration": "15ms", - "ip": "::ffff:185.199.111.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15" -} -[2025-12-19T05:24:43.268Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T05:25:13.362Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T05:25:43.469Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T05:26:13.567Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T05:26:43.663Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T05:27:13.787Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T05:27:43.885Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T05:28:01.388Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.111.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15" -} -[2025-12-19T05:28:04.711Z] [ERROR] ❌ 서버 오류가 발생했습니다. - Context: { - "code": "INTERNAL_ERROR", - "stack": "AppError: 서버 오류가 발생했습니다.\n at errorHandler (/usr/src/app/middlewares/errorHandler.js:51:13)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:71:5)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/src/app/node_modules/express/lib/router/index.js:280:10)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:67:12)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)", - "url": "/api/auth/login", - "method": "POST", - "user": "anonymous" -} -[2025-12-19T05:28:04.715Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 500, - "duration": "7ms", - "ip": "::ffff:185.199.111.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15" -} -[2025-12-19T05:28:13.978Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T05:28:44.081Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T05:29:01.458Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2025-12-19T05:29:01.459Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2025-12-19T05:29:01.876Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2025-12-19T05:29:01.934Z] [INFO] ℹ️ 라우트 설정 완료 -[2025-12-19T05:29:02.007Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2025-12-19T05:29:02.010Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2025-12-19T05:29:06.765Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T05:29:31.265Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.111.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15" -} -[2025-12-19T05:29:35.303Z] [INFO] ℹ️ MariaDB 연결 성공 - Context: { - "connection": "db:3306", - "database": "hyungi", - "connectionLimit": 10 -} -[2025-12-19T05:29:35.308Z] [ERROR] ❌ 서버 오류가 발생했습니다. - Context: { - "code": "INTERNAL_ERROR", - "stack": "AppError: 서버 오류가 발생했습니다.\n at errorHandler (/usr/src/app/middlewares/errorHandler.js:51:13)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:71:5)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/src/app/node_modules/express/lib/router/index.js:280:10)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:67:12)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)", - "url": "/api/auth/login", - "method": "POST", - "user": "anonymous" -} -[2025-12-19T05:29:35.309Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 500, - "duration": "27ms", - "ip": "::ffff:185.199.111.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15" -} -[2025-12-19T05:29:36.856Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T05:30:06.955Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T05:30:37.052Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T05:30:37.811Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2025-12-19T05:30:37.813Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2025-12-19T05:30:38.277Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2025-12-19T05:30:38.333Z] [INFO] ℹ️ 라우트 설정 완료 -[2025-12-19T05:30:38.416Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2025-12-19T05:30:38.419Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2025-12-19T05:30:43.167Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T05:31:00.201Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2025-12-19T05:31:00.204Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2025-12-19T05:31:00.672Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2025-12-19T05:31:00.723Z] [INFO] ℹ️ 라우트 설정 완료 -[2025-12-19T05:31:00.778Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2025-12-19T05:31:00.781Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2025-12-19T05:31:05.578Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T05:31:35.666Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T05:32:05.772Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T05:32:35.857Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T05:33:05.950Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T05:33:36.053Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T05:34:02.772Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2025-12-19T05:34:02.775Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2025-12-19T05:34:03.200Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2025-12-19T05:34:03.594Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2025-12-19T05:34:04.080Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2025-12-19T05:34:04.809Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2025-12-19T05:34:05.918Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2025-12-19T05:34:07.818Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2025-12-19T05:34:11.332Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2025-12-19T05:34:18.035Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2025-12-19T05:34:31.148Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2025-12-19T05:34:57.053Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2025-12-19T05:35:48.583Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2025-12-19T05:36:27.585Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2025-12-19T05:36:27.950Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2025-12-19T05:36:28.432Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2025-12-19T05:36:29.148Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2025-12-19T05:36:30.266Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2025-12-19T05:36:32.186Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2025-12-19T05:36:35.776Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2025-12-19T05:36:42.480Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2025-12-19T05:36:55.587Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2025-12-19T05:37:21.500Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2025-12-19T05:38:13.010Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2025-12-19T05:39:13.371Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2025-12-19T05:40:13.712Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2025-12-19T05:41:14.029Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2025-12-19T05:42:14.353Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2025-12-19T05:43:14.705Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2025-12-19T05:44:15.038Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2025-12-19T05:44:15.528Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2025-12-19T05:44:15.921Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2025-12-19T05:44:16.419Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2025-12-19T05:44:17.118Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2025-12-19T05:44:18.244Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2025-12-19T05:44:20.171Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2025-12-19T05:44:23.728Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2025-12-19T05:44:30.445Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2025-12-19T05:44:43.574Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2025-12-19T05:45:09.492Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2025-12-19T05:46:00.998Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2025-12-19T05:46:22.083Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2025-12-19T05:46:22.461Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2025-12-19T05:46:22.948Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2025-12-19T05:46:23.659Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2025-12-19T05:46:24.740Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2025-12-19T05:46:26.645Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2025-12-19T05:46:30.169Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2025-12-19T05:46:36.904Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2025-12-19T05:46:50.031Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2025-12-19T05:47:15.993Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2025-12-19T05:48:07.603Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2025-12-19T05:48:57.329Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2025-12-19T05:48:57.391Z] [INFO] ℹ️ 라우트 설정 완료 -[2025-12-19T05:48:57.482Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2025-12-19T05:48:57.485Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2025-12-19T05:49:02.232Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T05:49:27.903Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2025-12-19T05:49:27.916Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2025-12-19T05:49:28.424Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2025-12-19T05:49:28.496Z] [INFO] ℹ️ 라우트 설정 완료 -[2025-12-19T05:49:28.586Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2025-12-19T05:49:28.589Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2025-12-19T05:49:33.301Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T05:50:03.394Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T05:50:22.599Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.111.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15" -} -[2025-12-19T05:50:28.291Z] [INFO] ℹ️ MariaDB 연결 성공 - Context: { - "connection": "db:3306", - "database": "hyungi", - "connectionLimit": 10 -} -[2025-12-19T05:50:28.370Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 200, - "duration": "99ms", - "ip": "::ffff:185.199.111.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15" -} -[2025-12-19T05:50:28.779Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2025-12-19", - "requester": 7, - "isAdmin": false -} -[2025-12-19T05:50:28.795Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2025-12-19T05:50:28.796Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-12-19&view_all=true", - "statusCode": 200, - "duration": "19ms", - "ip": "::ffff:185.199.111.133", - "user": "tester", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15" -} -[2025-12-19T05:50:28.798Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "26ms", - "ip": "::ffff:185.199.111.133", - "user": "tester", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15" -} -[2025-12-19T05:50:29.753Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.111.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15" -} -[2025-12-19T05:50:32.498Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.111.133", - "user": "tester", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15" -} -[2025-12-19T05:50:32.535Z] [ERROR] ❌ 활성 프로젝트 목록 조회 중 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 활성 프로젝트 목록 조회 중 오류가 발생했습니다\n at /usr/src/app/controllers/projectController.js:63:23\n at Object.getActiveProjects (/usr/src/app/models/projectModel.js:51:5)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "url": "/api/projects/active/list", - "method": "GET", - "user": "tester" -} -[2025-12-19T05:50:32.539Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 500, - "duration": "9ms", - "ip": "::ffff:185.199.111.133", - "user": "tester", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15" -} -[2025-12-19T05:50:32.575Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2025-12-19", - "created_by_user_id": 7, - "requester": 7, - "isAdmin": false -} -[2025-12-19T05:50:32.582Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2025-12-19T05:50:32.584Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-12-19&created_by=7", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:185.199.111.133", - "user": "tester", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15" -} -[2025-12-19T05:50:33.475Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::ffff:185.199.111.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15" -} -[2025-12-19T05:50:33.501Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T05:51:03.604Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T05:51:33.789Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T05:52:03.929Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T05:52:13.742Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2025-12-19T05:52:13.744Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2025-12-19T05:52:14.210Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2025-12-19T05:52:14.272Z] [INFO] ℹ️ 라우트 설정 완료 -[2025-12-19T05:52:14.353Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2025-12-19T05:52:14.356Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2025-12-19T05:52:19.084Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T05:52:49.180Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T05:53:19.274Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T05:53:49.380Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T05:54:19.482Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T05:54:49.618Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T05:55:19.713Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T05:55:49.807Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T05:56:19.897Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T05:56:49.988Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T05:57:20.075Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T05:57:50.183Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T05:58:20.266Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T05:58:50.356Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T05:59:20.447Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T05:59:50.539Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T06:00:20.633Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T06:00:50.734Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T06:01:20.834Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T06:01:50.923Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T06:02:21.009Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T06:02:51.100Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T06:03:21.191Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T06:03:51.291Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T06:04:21.388Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T06:04:51.491Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T06:05:21.575Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T06:05:51.672Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T06:06:21.769Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T06:06:51.851Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T06:07:21.936Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T06:07:52.041Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T06:08:22.124Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T06:08:52.210Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T06:09:22.304Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T06:09:52.404Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T06:10:22.494Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T06:10:52.585Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T06:11:22.707Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T06:11:52.792Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T06:12:22.871Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T06:12:52.956Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T06:13:23.054Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T06:13:53.147Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T06:14:23.236Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T06:14:53.321Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T06:15:23.401Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T06:15:53.496Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T06:16:23.593Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T06:16:53.684Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T06:17:23.784Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T06:17:53.879Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T06:18:23.970Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T06:18:54.066Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T06:19:24.154Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T06:19:54.273Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T06:20:24.374Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T06:20:54.479Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T06:21:24.578Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T06:21:54.669Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T06:22:24.762Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T06:22:54.846Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T06:23:24.928Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T06:23:55.027Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T06:24:25.120Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T06:24:55.212Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T06:25:25.314Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T06:25:55.409Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T06:26:25.507Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T06:26:55.591Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T06:27:25.688Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T06:27:55.803Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T06:28:25.908Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T06:28:56.011Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T06:29:26.112Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T06:29:56.189Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T06:30:26.248Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T06:30:56.318Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T06:31:26.395Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T06:31:56.482Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T06:32:26.583Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T06:32:56.671Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T06:33:26.749Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T06:33:56.839Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T06:34:26.944Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T06:34:57.038Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T06:35:27.128Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T06:35:57.222Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T06:36:27.325Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T06:36:57.416Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T06:37:27.488Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T06:37:49.243Z] [INFO] ℹ️ MariaDB 연결 성공 - Context: { - "connection": "db:3306", - "database": "hyungi", - "connectionLimit": 10 -} -[2025-12-19T06:37:49.265Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "86ms", - "ip": "::ffff:185.199.111.133", - "user": "tester", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15" -} -[2025-12-19T06:37:49.276Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.111.133", - "user": "tester", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15" -} -[2025-12-19T06:37:49.283Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.111.133", - "user": "tester", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15" -} -[2025-12-19T06:37:49.289Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.111.133", - "user": "tester", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15" -} -[2025-12-19T06:37:49.295Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.111.133", - "user": "tester", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15" -} -[2025-12-19T06:37:49.301Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2025-12-19", - "created_by_user_id": 7, - "requester": 7, - "isAdmin": false -} -[2025-12-19T06:37:49.303Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2025-12-19T06:37:49.303Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-12-19&created_by=7", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.111.133", - "user": "tester", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15" -} -[2025-12-19T06:37:50.155Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.111.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15" -} -[2025-12-19T06:37:57.603Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T06:37:58.746Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2025-12-19", - "requester": 7, - "isAdmin": false -} -[2025-12-19T06:37:58.749Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "15ms", - "ip": "::ffff:185.199.111.133", - "user": "tester", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15" -} -[2025-12-19T06:37:58.750Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2025-12-19T06:37:58.751Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-12-19&view_all=true", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.111.133", - "user": "tester", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15" -} -[2025-12-19T06:37:59.751Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.111.133", - "user": "tester", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15" -} -[2025-12-19T06:37:59.924Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.111.133", - "user": "tester", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15" -} -[2025-12-19T06:37:59.930Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/tasks", - "method": "GET" -} -[2025-12-19T06:37:59.932Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/tasks", - "statusCode": 404, - "duration": "4ms", - "ip": "::ffff:185.199.111.133", - "user": "tester", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15" -} -[2025-12-19T06:38:00.742Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.111.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15" -} -[2025-12-19T06:38:02.095Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.111.133", - "user": "tester", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15" -} -[2025-12-19T06:38:03.087Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.111.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15" -} -[2025-12-19T06:38:09.111Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2025-12-19", - "requester": 7, - "isAdmin": false -} -[2025-12-19T06:38:09.116Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "21ms", - "ip": "::ffff:185.199.111.133", - "user": "tester", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15" -} -[2025-12-19T06:38:09.121Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2025-12-19T06:38:09.123Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-12-19&view_all=true", - "statusCode": 200, - "duration": "14ms", - "ip": "::ffff:185.199.111.133", - "user": "tester", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15" -} -[2025-12-19T06:38:10.090Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.111.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15" -} -[2025-12-19T06:38:10.563Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.111.133", - "user": "tester", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15" -} -[2025-12-19T06:38:10.569Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.111.133", - "user": "tester", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15" -} -[2025-12-19T06:38:10.574Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/tasks", - "method": "GET" -} -[2025-12-19T06:38:10.575Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/tasks", - "statusCode": 404, - "duration": "4ms", - "ip": "::ffff:185.199.111.133", - "user": "tester", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15" -} -[2025-12-19T06:38:11.558Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.111.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15" -} -[2025-12-19T06:38:12.958Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.111.133", - "user": "tester", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15" -} -[2025-12-19T06:38:13.953Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.111.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15" -} -[2025-12-19T06:38:21.144Z] [INFO] ℹ️ 작업자별 통계 조회 요청 - Context: { - "start": "2025-10-04", - "end": "2025-12-31" -} -[2025-12-19T06:38:21.148Z] [INFO] ℹ️ 프로젝트별-작업별 시간 분석 요청 - Context: { - "start": "2025-10-04", - "end": "2025-12-31" -} -[2025-12-19T06:38:21.159Z] [INFO] ℹ️ 작업자별 통계 조회 성공 - Context: { - "start": "2025-10-04", - "end": "2025-12-31", - "workerCount": 0 -} -[2025-12-19T06:38:21.161Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-analysis/worker-stats?start=2025-10-04&end=2025-12-31", - "statusCode": 200, - "duration": "20ms", - "ip": "::ffff:185.199.111.133", - "user": "tester", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15" -} -[2025-12-19T06:38:21.170Z] [INFO] ℹ️ 프로젝트별-작업별 시간 분석 성공 - Context: { - "start": "2025-10-04", - "end": "2025-12-31", - "projectCount": 0, - "workTypeCount": 0, - "totalHours": 0 -} -[2025-12-19T06:38:21.171Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-analysis/project-worktype-analysis?start=2025-10-04&end=2025-12-31", - "statusCode": 200, - "duration": "26ms", - "ip": "::ffff:185.199.111.133", - "user": "tester", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15" -} -[2025-12-19T06:38:21.177Z] [INFO] ℹ️ 최근 작업 현황 조회 요청 - Context: { - "start": "2025-10-04", - "end": "2025-12-31", - "limit": 2000 -} -[2025-12-19T06:38:21.179Z] [INFO] ℹ️ 최근 작업 현황 조회 성공 - Context: { - "start": "2025-10-04", - "end": "2025-12-31", - "limit": 2000, - "resultCount": 0 -} -[2025-12-19T06:38:21.180Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-analysis/recent-work?start=2025-10-04&end=2025-12-31&limit=2000", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.111.133", - "user": "tester", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15" -} -[2025-12-19T06:38:24.737Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.111.133", - "user": "tester", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15" -} -[2025-12-19T06:38:24.751Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.111.133", - "user": "tester", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15" -} -[2025-12-19T06:38:24.766Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/tasks", - "method": "GET" -} -[2025-12-19T06:38:24.767Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/tasks", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:185.199.111.133", - "user": "tester", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15" -} -[2025-12-19T06:38:25.724Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.111.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15" -} -[2025-12-19T06:38:26.525Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.111.133", - "user": "tester", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15" -} -[2025-12-19T06:38:27.520Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.111.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15" -} -[2025-12-19T06:38:27.703Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T06:38:43.588Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2025-12-19", - "requester": 7, - "isAdmin": false -} -[2025-12-19T06:38:43.607Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2025-12-19T06:38:43.610Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-12-19&view_all=true", - "statusCode": 200, - "duration": "22ms", - "ip": "::ffff:185.199.111.133", - "user": "tester", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15" -} -[2025-12-19T06:38:43.612Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "33ms", - "ip": "::ffff:185.199.111.133", - "user": "tester", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15" -} -[2025-12-19T06:38:44.564Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.111.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15" -} -[2025-12-19T06:38:57.812Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T06:39:27.909Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T06:39:58.013Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T06:40:28.105Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T06:40:58.226Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T06:41:00.959Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2025-12-19T06:41:00.962Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2025-12-19T06:41:01.525Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2025-12-19T06:41:01.586Z] [INFO] ℹ️ 라우트 설정 완료 -[2025-12-19T06:41:01.673Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2025-12-19T06:41:01.676Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2025-12-19T06:41:06.007Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2025-12-19", - "requester": 7, - "isAdmin": false -} -[2025-12-19T06:41:06.016Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "15ms", - "ip": "::ffff:185.199.111.133", - "user": "tester", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15" -} -[2025-12-19T06:41:06.039Z] [INFO] ℹ️ MariaDB 연결 성공 - Context: { - "connection": "db:3306", - "database": "hyungi", - "connectionLimit": 10 -} -[2025-12-19T06:41:06.047Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2025-12-19T06:41:06.048Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-12-19&view_all=true", - "statusCode": 200, - "duration": "43ms", - "ip": "::ffff:185.199.111.133", - "user": "tester", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15" -} -[2025-12-19T06:41:06.394Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T06:41:06.948Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.111.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15" -} -[2025-12-19T06:41:19.434Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 304, - "duration": "12ms", - "ip": "::ffff:185.199.111.133", - "user": "tester", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15" -} -[2025-12-19T06:41:19.454Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.111.133", - "user": "tester", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15" -} -[2025-12-19T06:41:19.475Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.111.133", - "user": "tester", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15" -} -[2025-12-19T06:41:19.481Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.111.133", - "user": "tester", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15" -} -[2025-12-19T06:41:19.490Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.111.133", - "user": "tester", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15" -} -[2025-12-19T06:41:19.495Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2025-12-19", - "created_by_user_id": 7, - "requester": 7, - "isAdmin": false -} -[2025-12-19T06:41:19.497Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2025-12-19T06:41:19.498Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-12-19&created_by=7", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.111.133", - "user": "tester", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15" -} -[2025-12-19T06:41:20.417Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.111.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15" -} -[2025-12-19T06:41:36.506Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T06:41:49.322Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2025-12-19T06:41:49.324Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2025-12-19T06:41:49.860Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2025-12-19T06:41:49.918Z] [INFO] ℹ️ 라우트 설정 완료 -[2025-12-19T06:41:49.996Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2025-12-19T06:41:49.999Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2025-12-19T06:41:50.972Z] [WARN] ⚠️ 인증 실패: Authorization 헤더 없음 - Context: { - "path": "/", - "method": "GET", - "ip": "::ffff:185.199.111.133" -} -[2025-12-19T06:41:50.974Z] [WARN] ⚠️ Authorization 헤더가 필요합니다 - Context: { - "code": "AUTHENTICATION_ERROR", - "url": "/api/workers", - "method": "GET", - "user": "anonymous" -} -[2025-12-19T06:41:50.982Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 401, - "duration": "12ms", - "ip": "::ffff:185.199.111.133", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2025-12-19T06:41:54.748Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T06:42:24.845Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T06:42:54.934Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T06:43:25.030Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T06:43:55.269Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T06:44:01.094Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2025-12-19T06:44:01.097Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2025-12-19T06:44:01.561Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2025-12-19T06:44:01.631Z] [INFO] ℹ️ 라우트 설정 완료 -[2025-12-19T06:44:01.722Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2025-12-19T06:44:01.725Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2025-12-19T06:44:06.438Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T06:44:36.542Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T06:45:06.603Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T06:45:36.687Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T06:46:06.169Z] [INFO] ℹ️ MariaDB 연결 성공 - Context: { - "connection": "db:3306", - "database": "hyungi", - "connectionLimit": 10 -} -[2025-12-19T06:46:06.178Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "67ms", - "ip": "::ffff:185.199.111.133", - "user": "tester", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15" -} -[2025-12-19T06:46:06.189Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.111.133", - "user": "tester", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15" -} -[2025-12-19T06:46:06.194Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.111.133", - "user": "tester", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15" -} -[2025-12-19T06:46:06.201Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.111.133", - "user": "tester", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15" -} -[2025-12-19T06:46:06.208Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.111.133", - "user": "tester", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15" -} -[2025-12-19T06:46:06.213Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2025-12-19", - "created_by_user_id": 7, - "requester": 7, - "isAdmin": false -} -[2025-12-19T06:46:06.215Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2025-12-19T06:46:06.215Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-12-19&created_by=7", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.111.133", - "user": "tester", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15" -} -[2025-12-19T06:46:06.799Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T06:46:07.104Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.111.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15" -} -[2025-12-19T06:46:10.065Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2025-12-19", - "requester": 7, - "isAdmin": false -} -[2025-12-19T06:46:10.070Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2025-12-19T06:46:10.072Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-12-19&view_all=true", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.111.133", - "user": "tester", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15" -} -[2025-12-19T06:46:10.074Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:185.199.111.133", - "user": "tester", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15" -} -[2025-12-19T06:46:11.061Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.111.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15" -} -[2025-12-19T06:46:36.893Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T06:47:07.001Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T06:47:37.122Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T06:48:07.197Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T06:48:37.323Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T06:49:07.414Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T06:49:37.512Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T06:50:07.582Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T06:50:37.672Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T06:51:07.763Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T06:51:37.901Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T07:00:05.143Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T08:32:12.707Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T09:37:36.564Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T10:11:09.155Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T10:36:04.962Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T11:28:04.629Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T11:39:47.312Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T12:22:55.220Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T12:34:04.121Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T13:21:59.915Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T14:15:31.471Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T15:11:02.042Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T15:14:08.283Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T15:14:38.379Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T15:45:51.914Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T16:46:06.232Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T17:41:42.276Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T18:18:35.640Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T19:59:24.618Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T21:01:10.888Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T21:32:11.552Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T21:32:41.647Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T21:33:11.738Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T21:33:41.831Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T21:34:11.925Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T21:34:42.026Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T21:35:12.122Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T21:35:42.216Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T21:36:12.304Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T21:36:42.399Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T21:37:12.489Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T21:37:42.586Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T21:38:12.677Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T21:38:42.755Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T21:39:12.810Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T21:39:42.871Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T21:40:12.941Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T21:40:43.031Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T21:41:13.127Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T21:41:43.214Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T21:42:13.308Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T21:42:43.404Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T21:43:13.498Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T21:43:43.588Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T21:44:13.683Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T21:44:43.767Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T21:45:13.857Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T21:45:43.942Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T21:46:14.011Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T21:46:44.088Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T21:47:14.172Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T21:47:44.262Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T21:48:14.352Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T21:48:44.440Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T21:49:14.540Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T21:49:44.631Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T21:50:14.723Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T21:50:44.811Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T21:51:14.899Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T21:51:44.987Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T21:52:15.084Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T21:52:45.152Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T21:53:15.225Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T21:53:45.310Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T21:54:15.399Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T21:54:45.484Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T21:55:15.569Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T21:55:45.650Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T21:56:15.745Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T21:56:45.834Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T21:57:15.932Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T21:57:46.023Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T21:58:16.099Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T21:58:46.177Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T21:59:16.260Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T21:59:46.357Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T22:00:16.442Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T22:00:46.527Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T22:01:16.619Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T22:01:46.702Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T22:02:16.793Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T22:02:46.908Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T22:03:17.004Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T22:03:47.082Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T22:04:17.164Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T22:04:47.254Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T22:05:17.350Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T22:05:47.441Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T22:06:17.537Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T22:06:47.621Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T22:07:17.711Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T22:07:47.812Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T22:08:17.914Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T22:08:48.006Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T22:09:18.084Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T22:09:48.164Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T22:10:18.247Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T22:10:48.339Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T22:11:18.420Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T22:11:48.513Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T22:12:18.613Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T22:12:48.701Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T22:13:18.788Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T22:13:48.881Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T22:14:18.970Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T22:14:49.066Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T22:15:19.154Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T22:15:49.248Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T22:16:19.340Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T22:16:49.431Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T22:17:19.529Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T22:17:49.597Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T22:18:19.684Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T22:18:49.787Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T22:19:19.884Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T22:19:49.977Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T22:20:20.075Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T22:20:50.172Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T22:21:20.256Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T22:21:50.352Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T22:22:20.438Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T22:22:50.532Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T22:23:20.625Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T22:23:50.711Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T22:24:20.800Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T22:24:50.915Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "5ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T22:25:20.999Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T22:25:51.084Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T22:26:21.184Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T22:26:51.274Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T22:27:21.365Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T22:27:51.466Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T22:28:21.555Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T22:28:51.651Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T22:29:21.758Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T22:29:51.850Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T22:30:21.943Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T22:30:52.041Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T22:31:22.104Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T22:31:52.196Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T22:32:22.308Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T22:32:52.394Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T22:33:22.480Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T22:33:52.568Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T22:34:22.654Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T22:34:52.761Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T22:35:22.852Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T22:35:52.941Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T22:36:23.037Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T22:36:53.137Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T22:37:23.225Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T22:37:53.321Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T22:38:23.421Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T22:38:53.521Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T22:39:23.610Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T22:39:53.704Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T22:40:23.795Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T22:40:53.890Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T22:41:23.985Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T22:41:54.071Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T22:42:24.157Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T22:42:54.276Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T22:43:24.340Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T22:43:54.376Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T22:44:24.479Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T22:44:54.565Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T22:45:24.653Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T22:45:54.746Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T22:46:24.834Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T22:46:54.919Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T22:47:25.017Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T22:47:55.104Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T22:48:25.195Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T22:48:55.280Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T22:49:25.372Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T22:49:55.441Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T22:50:25.539Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T22:50:55.636Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T22:51:25.728Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T22:51:55.833Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T22:52:25.921Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T22:52:56.011Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T22:53:26.079Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T22:53:56.165Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T22:54:26.266Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T22:54:56.352Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T22:55:26.455Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T22:55:56.553Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T22:56:26.624Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T22:56:56.716Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T22:57:26.796Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T22:57:56.892Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T22:58:26.988Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T22:58:57.086Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T22:59:27.167Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T22:59:57.257Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T23:00:27.347Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T23:00:57.436Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T23:01:27.541Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T23:01:57.645Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T23:02:27.731Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T23:02:57.818Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T23:03:27.909Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T23:03:58.004Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T23:04:28.083Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T23:04:58.178Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T23:05:28.271Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T23:05:58.376Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T23:06:28.468Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T23:06:58.561Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T23:07:28.656Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T23:07:58.751Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T23:08:28.851Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T23:08:58.938Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T23:09:29.022Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T23:09:59.110Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T23:10:29.207Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T23:10:59.308Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T23:11:29.398Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T23:11:59.501Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T23:12:29.596Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T23:12:59.687Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T23:13:29.769Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T23:13:59.861Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T23:14:29.942Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T23:15:00.024Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T23:15:30.113Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T23:16:00.195Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T23:16:30.283Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T23:17:00.378Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T23:17:30.474Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T23:18:00.568Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T23:18:30.658Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T23:19:00.746Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T23:19:30.840Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T23:20:00.923Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T23:20:31.014Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T23:21:01.089Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T23:21:31.175Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T23:22:01.266Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T23:22:31.414Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T23:23:01.498Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T23:23:31.605Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T23:24:01.692Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T23:24:31.790Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T23:25:01.881Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T23:25:31.980Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T23:26:02.077Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T23:26:32.173Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T23:27:02.261Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T23:27:32.362Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T23:28:02.447Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T23:28:32.528Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T23:29:02.617Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T23:29:32.708Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T23:30:02.808Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T23:30:32.912Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T23:31:03.010Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T23:31:33.092Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T23:32:03.191Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T23:32:33.247Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T23:33:03.325Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T23:33:33.413Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T23:34:03.503Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T23:34:33.604Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T23:35:03.711Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T23:35:33.795Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T23:36:03.881Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T23:36:33.885Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T23:37:03.978Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T23:37:34.064Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T23:38:04.152Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T23:38:34.247Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T23:39:04.339Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T23:39:34.409Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T23:40:04.499Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T23:40:34.555Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T23:41:04.614Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T23:41:34.649Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T23:42:04.711Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T23:42:34.746Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T23:43:04.796Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T23:43:34.831Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T23:44:04.888Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T23:44:34.930Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T23:45:04.983Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T23:45:35.020Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T23:46:05.091Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T23:46:35.146Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T23:47:05.214Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T23:47:35.268Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T23:48:05.338Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T23:48:35.397Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T23:49:05.461Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T23:49:35.513Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T23:50:05.590Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T23:50:35.658Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T23:51:05.746Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T23:51:35.821Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T23:52:05.895Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T23:52:35.970Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T23:53:06.060Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T23:53:36.153Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T23:54:06.245Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T23:54:36.333Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T23:55:06.421Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T23:55:36.509Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T23:56:06.599Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T23:56:36.692Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T23:57:06.793Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T23:57:36.889Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T23:58:06.978Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T23:58:37.067Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T23:59:07.155Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-19T23:59:37.250Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T00:00:07.350Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T00:00:37.443Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T00:01:07.526Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T00:01:37.617Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T00:02:07.720Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T00:02:37.813Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T00:03:07.899Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T00:03:37.988Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T00:04:08.092Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T00:04:38.185Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T00:05:08.287Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T00:05:38.374Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T00:06:08.451Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T00:06:38.537Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T00:07:08.631Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T00:07:38.717Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T00:08:08.800Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T00:08:38.893Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T00:09:08.975Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T00:09:39.068Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T00:10:09.169Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T00:10:39.269Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T00:11:09.366Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T00:11:39.454Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T00:12:09.545Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T00:12:39.642Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T00:13:09.724Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T00:13:39.812Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T00:14:09.904Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T00:14:39.993Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T00:15:10.087Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T00:15:40.172Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T00:16:10.249Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T00:16:40.341Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T00:17:10.437Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T00:17:40.528Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T00:18:10.618Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T00:18:40.702Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T00:19:10.794Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T00:19:40.881Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T00:20:10.985Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T00:20:41.080Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T00:21:11.168Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T00:21:41.268Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T00:22:11.361Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T00:22:41.462Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T00:23:11.558Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T00:23:41.649Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T00:24:11.743Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T00:24:41.824Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T00:25:11.913Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T00:25:42.015Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T00:26:12.096Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T00:26:42.194Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T00:27:12.301Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T00:27:42.397Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T00:28:12.499Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T00:28:42.641Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T00:29:12.748Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T00:29:42.853Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T00:30:12.942Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T00:30:43.033Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T00:31:13.123Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T00:31:43.233Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T00:32:13.317Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T00:32:43.397Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T00:33:13.484Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T00:33:43.579Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T00:34:13.681Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T00:34:43.784Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T00:35:13.879Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T00:35:43.968Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T00:36:14.065Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T00:36:44.160Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T00:37:14.267Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T00:37:44.364Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T00:38:14.467Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T00:38:44.552Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T00:39:14.654Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T00:39:44.757Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T00:40:14.857Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T00:40:44.941Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T00:41:15.034Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T00:41:45.124Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T00:42:15.210Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T00:42:45.298Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T00:43:15.400Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T00:43:45.497Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T00:44:15.603Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T00:44:45.709Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T00:45:15.821Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T00:45:45.922Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T00:46:16.014Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T00:46:46.105Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T00:47:16.206Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T00:47:46.300Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T00:48:16.392Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T00:48:46.485Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T00:49:16.592Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T00:49:46.683Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T00:50:16.880Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T00:50:46.993Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T00:51:17.122Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T00:51:47.227Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T00:52:17.321Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T00:52:47.412Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T00:53:17.509Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T00:53:47.595Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T00:54:17.691Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T00:54:47.784Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T00:55:17.867Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T00:55:47.956Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T00:56:18.025Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T00:56:48.086Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T00:57:18.162Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T00:57:48.237Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T00:58:18.335Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T00:58:48.427Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T00:59:18.516Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T00:59:48.623Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T01:00:18.737Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T01:00:48.849Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T01:01:18.922Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T01:01:49.016Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T01:02:19.120Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T01:02:49.225Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T01:03:19.323Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T01:03:49.403Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T01:04:19.484Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T01:04:49.567Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T01:05:19.653Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T01:05:49.740Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T01:06:19.846Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T01:06:49.930Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T01:07:20.017Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T01:07:50.101Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T01:08:20.202Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T01:08:50.280Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T01:09:20.365Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T01:09:50.447Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T01:10:20.538Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T01:10:50.784Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T01:11:20.875Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T01:11:50.968Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T01:12:21.039Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T01:12:51.195Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T01:13:21.290Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T01:13:51.395Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T01:14:21.492Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T01:14:51.596Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T01:15:21.681Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T01:15:51.764Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T01:16:21.857Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T01:16:51.963Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T01:17:22.050Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T01:17:52.145Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T01:18:22.238Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T01:18:52.330Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T01:19:22.414Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T01:19:52.504Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T01:20:22.596Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T01:20:52.688Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T01:21:22.778Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T01:21:52.873Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T01:22:22.960Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T01:22:53.055Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T01:23:23.152Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T01:23:53.244Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T01:24:23.344Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T01:24:53.437Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T01:25:23.522Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T01:25:53.627Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T01:26:23.716Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T01:26:53.808Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T01:27:23.895Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T01:27:53.991Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T01:28:24.082Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T01:28:54.170Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T01:29:24.265Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T01:29:54.355Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T01:30:24.448Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T01:30:54.561Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T01:31:24.648Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T01:31:54.737Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T01:32:24.852Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T01:32:54.948Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T01:33:25.031Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T01:33:55.122Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T01:34:25.212Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T01:34:55.306Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T01:35:25.403Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T01:35:55.473Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T01:36:25.642Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T01:36:55.740Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T01:37:25.875Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T01:37:55.981Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T01:38:26.104Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T01:38:56.205Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T01:39:26.324Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T01:39:56.416Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T01:40:26.507Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T01:40:56.600Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T01:41:26.684Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T01:41:56.775Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T01:42:26.857Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T01:42:56.948Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T01:43:27.036Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T01:43:57.129Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T01:44:27.284Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "9ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T01:44:57.382Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T01:45:27.478Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T01:45:57.571Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T01:46:27.668Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T01:46:57.748Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T01:47:27.828Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T01:47:57.919Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T01:48:28.001Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T01:48:58.087Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T01:49:28.188Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T01:49:58.289Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T01:50:28.378Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T01:50:58.477Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T01:51:28.573Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T01:51:58.660Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T01:52:28.754Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T01:52:58.847Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T01:53:28.936Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T01:53:59.035Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T01:54:29.129Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T01:54:59.215Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T01:55:29.309Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T01:55:59.399Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T01:56:29.478Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T01:56:59.576Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T01:57:29.647Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T01:57:59.752Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T01:58:29.828Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T01:58:59.887Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T01:59:29.949Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T02:00:00.019Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T02:00:30.099Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T02:01:00.199Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T02:01:30.297Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T02:02:00.395Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T02:02:30.482Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T02:03:00.578Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T02:03:30.676Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T02:04:00.775Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T02:04:30.871Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T02:05:00.971Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T02:05:31.072Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T02:06:01.153Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T02:06:31.228Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T02:07:01.325Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T02:07:31.427Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T02:08:01.520Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T02:08:31.612Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T02:09:01.715Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T02:09:31.809Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T02:10:01.909Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T02:10:31.995Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T02:11:02.078Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T02:11:32.175Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T02:12:02.276Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T02:12:32.378Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T02:13:02.476Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T02:13:32.559Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T02:14:02.656Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T02:14:32.742Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T02:15:02.835Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T02:15:32.932Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T02:16:03.025Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T02:16:33.099Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T02:17:03.192Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T02:17:33.285Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T02:18:03.379Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T02:18:33.475Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T02:19:03.567Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T02:19:33.660Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T02:20:03.759Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T02:20:33.862Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T02:21:03.953Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T02:21:34.051Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T02:22:04.153Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T02:22:34.202Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T02:23:04.298Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T02:23:34.370Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T02:24:04.465Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T02:24:34.567Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T02:25:04.660Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T02:25:34.759Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T02:26:04.842Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T02:26:34.940Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T02:27:05.023Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T02:27:35.116Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T02:28:05.217Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T02:28:35.300Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T02:29:05.385Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T02:29:35.474Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T02:30:05.580Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T02:30:35.676Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T02:31:05.778Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T02:31:35.878Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T02:32:05.963Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T02:32:36.063Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T02:33:06.157Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T02:33:36.259Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T02:34:06.338Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T02:34:36.295Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T02:35:06.389Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T02:35:36.478Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T02:36:06.574Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T02:36:36.656Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T02:37:06.752Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T02:37:36.843Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T02:38:06.929Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T02:38:37.024Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T02:39:07.113Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T02:39:37.211Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T02:40:07.300Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T02:40:37.414Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T02:41:07.517Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T02:41:37.602Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T02:42:07.700Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T02:42:37.803Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T02:43:07.886Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T02:43:37.974Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T02:44:08.067Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T02:44:38.153Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T02:45:08.242Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T02:45:38.322Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T02:46:08.478Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "10ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T02:47:47.161Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T02:48:17.259Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T02:48:47.351Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T02:49:17.440Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T02:49:47.537Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T02:50:17.625Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T02:50:47.715Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T02:51:17.828Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T02:51:47.906Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T02:52:17.988Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T02:52:48.080Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T02:59:49.627Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T03:22:56.219Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T04:09:33.288Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T04:50:49.349Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T05:03:05.820Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T05:04:11.291Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T05:08:58.157Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T05:15:30.491Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T05:33:49.420Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T06:44:06.925Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T07:55:18.862Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T08:27:51.983Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T09:07:55.130Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T10:16:50.908Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T11:07:32.752Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T12:26:22.173Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T13:33:01.253Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T14:33:22.794Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T15:12:12.331Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T15:24:01.993Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T16:08:18.585Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T17:01:21.541Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T17:28:26.593Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T18:44:32.426Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T19:01:51.573Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T19:22:33.024Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T19:55:49.471Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T20:46:33.073Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T21:47:03.569Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T22:11:36.564Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T22:52:59.478Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-20T23:49:10.935Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T01:06:47.341Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T01:49:55.542Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T01:59:56.790Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T02:04:42.462Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T02:53:13.636Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T03:52:10.693Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T05:10:40.840Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T06:28:49.024Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T07:43:18.748Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T08:34:21.338Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T09:58:05.371Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T10:47:51.234Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T11:05:32.929Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T11:33:57.378Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T12:56:04.522Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T13:14:23.854Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T13:33:52.629Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T15:14:50.850Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T16:13:31.092Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T17:18:53.153Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T18:41:06.564Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T19:42:13.146Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T21:00:40.418Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T22:09:34.194Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T22:10:04.321Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T22:10:34.418Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T22:11:04.506Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T22:11:34.607Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T22:12:04.709Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T22:12:34.801Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T22:13:04.897Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T22:13:34.985Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T22:14:05.070Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T22:14:35.168Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T22:15:05.262Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T22:15:35.349Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T22:16:05.443Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T22:16:35.539Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T22:17:05.632Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T22:17:35.721Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T22:18:05.814Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T22:18:35.913Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T22:19:06.000Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T22:19:36.107Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T22:20:06.200Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T22:20:36.292Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T22:21:06.375Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T22:21:36.476Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T22:22:06.570Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T22:22:36.673Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T22:23:06.767Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T22:23:36.824Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T22:24:06.883Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T22:24:36.960Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T22:25:07.025Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T22:25:37.125Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T22:26:07.216Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T22:26:37.311Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T22:27:07.407Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T22:27:37.503Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T22:28:07.610Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T22:28:37.708Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T22:29:07.852Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T22:29:37.939Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T22:30:08.025Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T22:30:38.120Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T22:31:08.194Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T22:31:38.250Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T22:32:08.306Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T22:32:38.360Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T22:33:08.415Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T22:33:38.469Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T22:34:08.522Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T22:34:38.580Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T22:35:08.649Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T22:35:38.711Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T22:36:08.767Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T22:36:38.819Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T22:37:08.879Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T22:37:38.939Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T22:38:09.001Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T22:38:39.059Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T22:39:09.138Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T22:39:39.193Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T22:40:09.250Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T22:40:39.315Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T22:41:09.372Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T22:41:39.428Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T22:42:09.501Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T22:42:39.592Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T22:43:09.673Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T22:43:39.763Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T22:44:09.827Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T22:44:39.906Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T22:45:09.987Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T22:45:40.069Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T22:46:10.163Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T22:46:40.273Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T22:47:10.375Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T22:47:40.362Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T22:48:10.464Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T22:48:40.554Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T22:49:10.674Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T22:49:40.787Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T22:50:10.889Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T22:50:40.985Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T22:51:11.100Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T22:51:41.220Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T22:52:11.337Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T22:52:41.434Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T22:53:11.525Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T22:53:41.621Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T22:54:11.720Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T22:54:41.811Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T22:55:11.888Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T22:55:41.965Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T22:56:12.063Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T22:56:42.185Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T22:57:12.286Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T22:57:42.393Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T22:58:12.483Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T22:58:42.580Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T22:59:12.670Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T22:59:42.793Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T23:00:12.893Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T23:00:42.984Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T23:01:13.075Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T23:01:43.171Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T23:02:13.285Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T23:02:43.381Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T23:03:13.500Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T23:03:43.591Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T23:04:13.687Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T23:04:43.780Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T23:05:13.865Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T23:05:43.952Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T23:06:14.045Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T23:06:44.154Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T23:07:14.250Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T23:07:44.339Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T23:08:14.437Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T23:08:44.528Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T23:09:14.620Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T23:09:44.726Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T23:10:14.847Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T23:10:44.950Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T23:11:15.051Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T23:11:45.147Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T23:12:15.263Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T23:12:45.358Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T23:13:15.480Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T23:13:45.605Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T23:14:15.692Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T23:14:45.783Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T23:15:15.906Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T23:15:46.009Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T23:16:16.105Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T23:16:46.196Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T23:17:16.295Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T23:17:46.393Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T23:18:16.491Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T23:18:46.597Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T23:19:16.695Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T23:19:46.795Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T23:20:16.876Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T23:20:46.984Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T23:21:17.109Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T23:21:47.275Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T23:22:17.364Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T23:22:47.468Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T23:23:17.573Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T23:23:47.669Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T23:24:17.761Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T23:24:47.860Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T23:25:17.974Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T23:25:48.070Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T23:26:18.162Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T23:26:48.240Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T23:27:18.316Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T23:27:48.416Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T23:28:18.514Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T23:28:48.608Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T23:29:18.711Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T23:29:48.797Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T23:30:18.906Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T23:30:48.993Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T23:31:19.088Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T23:31:49.193Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T23:32:19.287Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T23:32:49.390Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T23:33:19.462Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T23:33:49.566Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T23:34:19.653Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T23:34:49.751Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T23:35:19.876Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T23:35:49.985Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T23:36:20.076Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T23:36:50.175Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T23:37:20.264Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T23:37:50.359Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T23:38:20.458Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T23:38:50.542Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T23:39:20.619Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T23:39:50.730Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T23:40:20.825Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T23:40:50.919Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T23:41:21.014Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T23:41:51.117Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T23:42:21.202Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T23:42:51.295Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T23:43:21.391Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T23:43:51.562Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T23:44:21.682Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T23:44:51.795Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T23:45:21.890Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T23:45:51.988Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T23:46:22.081Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T23:46:52.179Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T23:47:22.279Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T23:47:52.379Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T23:48:22.466Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T23:48:52.567Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T23:49:22.661Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T23:49:52.763Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T23:50:22.848Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T23:50:52.948Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T23:51:23.039Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T23:51:53.134Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T23:52:23.231Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T23:52:53.326Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T23:53:23.414Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T23:53:53.520Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T23:54:23.611Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T23:54:53.712Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T23:55:23.799Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T23:55:53.891Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T23:56:23.982Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T23:56:54.092Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T23:57:24.188Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T23:57:54.280Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T23:58:25.004Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T23:58:55.372Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "6ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T23:59:25.478Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-21T23:59:55.570Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T00:00:25.678Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T00:00:55.767Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T00:01:25.853Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T00:01:55.965Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T00:02:26.080Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T00:02:56.166Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T00:03:26.977Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T00:03:57.884Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T00:04:28.012Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T00:04:58.103Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T00:05:28.190Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T00:05:58.283Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T00:06:28.370Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T00:06:58.510Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T00:07:28.611Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T00:07:58.698Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T00:08:28.794Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T00:08:58.898Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T00:09:28.994Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T00:09:59.090Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T00:10:29.184Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T00:10:59.274Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T00:11:29.353Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T00:11:59.445Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T00:12:29.510Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T00:12:59.602Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T00:13:29.676Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T00:13:59.756Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T00:14:29.856Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T00:14:59.917Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T00:15:30.010Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T00:16:00.080Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T00:16:30.170Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T00:17:00.251Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T00:17:30.345Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T00:18:00.438Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T00:18:30.542Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T00:19:00.638Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T00:19:30.724Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T00:20:00.806Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T00:20:30.906Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T00:21:01.000Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T00:21:31.093Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T00:22:01.188Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T00:22:31.283Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T00:23:01.375Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T00:23:31.477Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T00:24:01.588Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T00:24:31.688Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T00:25:01.788Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T00:25:31.878Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T00:26:01.956Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T00:26:32.047Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T00:27:02.138Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T00:27:32.227Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T00:28:02.344Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T00:28:32.437Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T00:29:02.537Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T00:29:32.639Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T00:30:02.734Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T00:30:32.824Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T00:31:02.910Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T00:31:32.988Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T00:32:03.079Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T00:32:33.175Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T00:33:03.271Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T00:33:33.354Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T00:34:03.456Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T00:34:33.535Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T00:35:03.620Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T00:35:33.707Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T00:36:03.791Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T00:36:33.889Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T00:37:03.985Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T00:37:34.070Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T00:38:04.168Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T00:38:34.259Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T00:39:04.354Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T00:39:34.464Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T00:40:04.564Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T00:40:34.657Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T00:41:04.755Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T00:41:34.846Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T00:42:04.942Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T00:42:35.046Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T00:43:05.132Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T00:43:35.236Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T00:44:05.336Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T00:44:35.435Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T00:45:05.549Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T00:45:35.648Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T00:46:05.747Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T00:46:35.845Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T00:47:05.917Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T00:47:35.995Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T00:48:06.087Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T00:48:36.183Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T00:49:06.285Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T00:49:36.373Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T00:50:06.466Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T00:50:36.555Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T00:51:06.655Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T00:51:36.750Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T00:52:06.837Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T00:52:36.939Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T00:53:07.038Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T00:53:37.144Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T00:54:07.232Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T00:54:37.335Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T00:55:07.426Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T00:55:37.522Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T00:56:07.614Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T00:56:37.704Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T00:57:07.806Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T00:57:37.895Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T00:58:07.984Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T00:58:38.076Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T00:59:08.172Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T00:59:38.263Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T01:00:08.353Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T01:00:38.446Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T01:01:08.543Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T01:01:38.647Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T01:02:08.713Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T01:02:38.822Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T01:03:08.913Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T01:03:38.993Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T01:04:09.086Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T01:04:39.186Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T01:05:09.274Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T01:05:39.372Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T01:06:09.468Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T01:06:39.556Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T01:07:09.655Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T01:07:39.745Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T01:08:09.833Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T01:08:39.930Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T01:09:10.036Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T01:09:40.126Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T01:10:10.224Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T01:10:40.318Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T01:11:10.422Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T01:11:40.511Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T01:12:10.622Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T01:12:40.722Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T01:13:10.775Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T01:13:40.854Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T01:14:10.939Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T01:14:41.015Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T01:15:11.104Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T01:15:41.191Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T01:16:11.293Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T01:16:41.386Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T01:17:11.518Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T01:30:36.278Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T01:44:33.265Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T01:45:03.330Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T01:45:33.404Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T01:46:03.488Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T01:46:33.580Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T01:47:03.670Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T01:47:33.764Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T01:48:03.865Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T01:48:33.963Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T01:49:04.053Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T01:49:34.147Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T01:50:04.240Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T01:50:34.347Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T01:51:04.459Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T01:51:34.542Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T01:52:04.633Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T01:52:34.718Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T01:53:04.814Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T01:53:34.909Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T01:54:04.994Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T01:54:35.113Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T01:55:05.215Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T01:55:35.321Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T01:56:05.415Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T01:56:35.510Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T01:57:05.606Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T01:57:35.684Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T01:58:05.774Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T01:58:35.863Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T01:59:05.965Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T01:59:36.063Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T02:00:06.172Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T02:00:36.259Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T02:01:06.353Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T02:01:36.477Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "11ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T02:02:06.611Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T02:02:36.712Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T02:03:06.816Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T02:03:36.904Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T02:04:06.997Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T02:04:37.083Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T02:05:07.184Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T02:05:37.266Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T02:06:07.370Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T02:06:37.466Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T02:07:07.556Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T02:07:37.638Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T02:08:07.729Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T02:08:37.822Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T02:09:07.931Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T02:09:38.034Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T02:10:08.146Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T02:10:38.261Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T02:11:08.355Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T02:11:38.448Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T02:12:08.551Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T02:12:38.649Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T02:13:08.752Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T02:13:38.844Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T02:14:08.927Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T02:14:39.018Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T02:15:09.114Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T02:15:39.212Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T02:16:09.298Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T02:16:39.390Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T02:17:09.486Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T02:17:39.570Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T02:18:09.663Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T02:18:39.793Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T02:22:57.869Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T02:24:18.894Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T02:24:48.999Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T02:25:19.094Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T02:25:49.189Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T02:26:19.285Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T02:26:49.374Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T02:27:19.491Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T02:27:49.572Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T02:28:19.659Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T02:28:49.754Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T02:29:19.847Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T02:38:08.628Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T03:28:09.533Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T03:35:33.487Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T03:36:03.579Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T03:36:33.685Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T03:37:03.783Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T03:37:33.861Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T03:38:03.951Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T03:38:34.050Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T03:39:04.145Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T03:39:34.260Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T03:40:04.347Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T03:40:34.440Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T03:41:04.530Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T03:41:34.620Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T03:42:04.705Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T03:42:34.793Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T03:43:04.896Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T03:43:34.994Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T03:44:05.087Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T03:44:35.181Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T03:45:05.271Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T03:45:35.364Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T03:46:05.477Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T03:46:35.546Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T03:47:05.606Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T03:47:35.681Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T03:48:05.788Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T03:48:35.889Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T03:49:05.989Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T03:49:36.089Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T03:50:06.189Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T03:50:36.277Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T03:51:06.400Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T03:51:36.488Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T03:52:06.571Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T03:52:36.664Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T03:53:06.747Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T03:53:36.844Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T03:54:06.948Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T03:54:37.036Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T03:55:07.138Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T03:55:37.239Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T03:56:07.342Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T03:56:37.439Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T03:57:07.531Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T03:57:37.619Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T03:58:07.714Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T03:58:37.802Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T03:59:07.876Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T03:59:37.972Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T04:00:08.059Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T04:00:38.153Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T04:01:08.249Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T04:01:38.345Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T04:02:08.435Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T04:02:38.519Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T04:03:08.602Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T04:03:38.693Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T04:04:08.778Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T04:04:38.865Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T04:05:08.956Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T04:05:39.049Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T04:06:09.134Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T04:06:39.227Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T04:07:09.310Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T04:07:39.418Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T04:08:09.500Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T04:08:39.595Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T04:09:09.690Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T04:09:39.796Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T04:10:09.883Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T04:10:39.980Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T04:11:10.073Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T04:11:40.175Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T04:12:10.256Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T04:12:40.347Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T04:13:10.455Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T04:13:40.551Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T04:14:10.653Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T04:14:40.761Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T04:15:10.854Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T04:15:40.948Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T04:16:11.051Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T04:16:41.138Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T04:17:11.239Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T04:17:41.339Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T04:18:11.444Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T04:18:41.544Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T04:19:11.632Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T04:19:41.734Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T04:20:11.842Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T04:20:41.954Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T04:21:12.068Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T04:21:42.155Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T04:22:12.254Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T04:22:42.351Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T04:23:12.442Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T04:23:42.540Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T04:24:12.635Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T04:24:42.724Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T04:25:12.816Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T04:25:42.916Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T04:26:13.002Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T04:26:43.121Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T04:27:13.221Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T04:27:43.319Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T04:28:13.411Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T04:28:43.505Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T04:29:13.597Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T04:29:43.766Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T04:30:13.863Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T04:30:43.952Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T04:31:14.008Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T04:31:44.069Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T04:32:14.126Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T04:32:44.181Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T04:33:14.240Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T04:33:44.295Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T04:34:14.360Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T04:34:44.438Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T04:35:14.534Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T04:35:44.605Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T04:36:14.682Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T04:36:44.763Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T04:37:14.848Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T04:37:44.929Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T04:38:15.020Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T04:38:45.112Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T04:39:15.207Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T04:39:45.299Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T04:40:15.389Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T04:40:45.484Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T04:41:15.572Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T04:41:45.634Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T04:42:15.720Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T04:42:45.809Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T04:43:15.905Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T04:43:45.997Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T04:44:16.103Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T04:44:46.194Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T04:45:16.284Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T04:45:46.368Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T04:46:16.464Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T04:46:46.548Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T04:47:16.640Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T04:47:46.759Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "6ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T04:48:16.860Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T04:48:46.941Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T04:49:17.009Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T04:49:47.074Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T04:50:17.150Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T04:50:47.247Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T04:51:17.364Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T04:51:47.471Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T04:52:17.563Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T04:52:47.660Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T04:53:17.730Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T04:53:47.813Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T04:54:17.906Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T04:54:48.009Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T04:55:18.110Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T04:55:48.188Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T04:56:18.286Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T04:56:48.374Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T04:57:18.486Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T04:57:48.574Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T04:58:18.680Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T04:58:48.777Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T04:59:18.869Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T04:59:48.952Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T05:00:19.041Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T05:00:49.134Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T05:01:19.232Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T05:01:49.323Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T05:02:19.412Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T05:02:49.523Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T05:04:43.321Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T05:06:22.876Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T05:06:52.980Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T05:07:23.082Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T05:07:53.176Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T05:08:23.262Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T05:08:53.349Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T05:09:23.435Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T05:09:53.530Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T05:10:23.626Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T05:10:53.721Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T05:11:23.819Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T05:11:53.916Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T05:12:24.047Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "11ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T05:12:54.134Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T05:13:24.232Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T05:13:54.332Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T05:14:24.433Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T05:14:54.538Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T05:15:24.639Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T05:15:54.726Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T05:16:24.819Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T05:16:54.913Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T05:17:25.011Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T05:17:55.113Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T05:18:25.205Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T05:18:55.322Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T05:19:25.416Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T05:19:55.521Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T05:20:25.632Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T05:20:55.729Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T05:21:25.815Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T05:21:55.904Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T05:22:26.014Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T05:22:56.146Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T05:23:26.251Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T05:23:56.344Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T05:24:26.436Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T05:24:56.528Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T05:25:26.629Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T05:25:56.708Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T05:26:26.809Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T05:26:56.898Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T05:27:27.006Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T05:27:57.095Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T05:28:27.189Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T05:28:57.282Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T05:29:27.368Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T05:29:57.454Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T05:30:27.545Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T05:30:57.640Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T05:31:27.732Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T05:31:57.838Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T05:32:27.937Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T05:32:58.033Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T05:33:28.138Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T05:33:58.234Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T05:34:28.324Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T05:34:58.409Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T05:35:28.496Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T05:35:58.586Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T05:36:28.671Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T05:36:58.775Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T05:37:28.870Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T05:37:58.964Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T05:38:29.060Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T05:38:59.147Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T05:39:29.247Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T05:39:59.347Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T05:40:29.444Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T05:40:59.584Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T05:41:29.683Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T05:41:59.784Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T05:42:29.887Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T05:42:59.975Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T05:43:30.075Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T05:44:00.166Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T05:44:30.248Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T05:45:00.333Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T05:45:30.431Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T05:46:00.521Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T05:46:30.618Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T05:47:00.717Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T05:47:30.804Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T05:48:00.917Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T05:48:31.035Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T05:49:01.139Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T05:49:31.243Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T05:50:01.343Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T05:50:31.440Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T05:51:01.527Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T05:51:31.584Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T05:52:01.645Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T05:52:31.716Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T05:53:01.798Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T05:53:31.883Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T05:54:01.978Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T05:54:32.071Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T05:55:02.161Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T05:55:32.247Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T05:56:02.349Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T05:56:32.445Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T05:57:02.537Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T05:57:32.626Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T05:58:02.720Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T05:58:32.812Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T05:59:02.904Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T05:59:32.987Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T06:00:03.072Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T06:00:33.161Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T06:01:03.254Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T06:01:33.340Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T06:02:03.432Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T06:02:33.534Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T06:03:03.634Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T06:03:33.729Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T06:04:03.821Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T06:04:33.918Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T06:05:04.001Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T06:05:34.094Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T06:06:04.184Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T06:06:34.281Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T06:07:04.379Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T06:07:34.471Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T06:08:04.565Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T06:08:34.666Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T06:09:04.766Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T06:09:34.861Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T06:10:04.951Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T06:10:35.044Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T06:11:05.137Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T06:11:35.243Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T06:12:05.339Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T06:12:35.446Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T06:13:05.537Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T06:13:35.637Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T06:14:05.726Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T06:14:35.828Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T06:15:05.921Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T06:15:36.014Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T06:16:06.107Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T06:16:36.185Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T06:17:06.275Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T06:17:36.352Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T06:18:06.447Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T06:18:36.537Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T06:19:06.626Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T06:19:36.719Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T06:20:06.795Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T06:20:36.877Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T06:21:06.967Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T06:21:37.059Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T06:22:07.142Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T06:22:37.236Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T06:23:07.333Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T06:23:37.424Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T06:24:07.509Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T06:24:37.620Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T06:25:07.713Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T06:25:37.800Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T06:26:07.896Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T06:26:37.985Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T06:27:08.072Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T06:27:38.162Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T06:28:08.247Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T06:28:38.345Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T06:29:08.433Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T06:29:38.523Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T06:30:08.611Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T06:30:38.701Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T06:31:08.793Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T06:31:38.882Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T06:32:08.970Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T06:32:39.069Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T06:33:09.167Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T06:33:39.258Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T06:34:09.352Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T06:34:39.443Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T06:35:09.529Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T06:35:39.635Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T06:36:09.748Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T06:36:39.860Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T06:37:09.946Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T06:37:40.042Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T06:38:10.145Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T06:38:40.233Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T06:39:10.330Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T06:39:40.423Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T06:40:10.516Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T06:40:40.610Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T06:41:10.714Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T06:41:40.804Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T06:42:10.895Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T06:42:40.986Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T06:43:11.042Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T06:43:41.127Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T06:44:11.225Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T06:44:41.334Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T06:45:11.432Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T06:45:41.533Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T06:46:11.640Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T06:46:41.713Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T06:47:11.806Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T06:47:41.903Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T06:48:11.992Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T06:48:42.075Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T06:49:12.172Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T06:49:42.274Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T06:50:12.371Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T06:50:42.467Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T06:51:12.557Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T06:51:42.658Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T06:52:12.751Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T06:52:42.843Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T06:53:12.936Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T06:53:43.029Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T06:54:13.123Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T06:54:43.214Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T06:55:13.301Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T06:55:43.388Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T06:56:13.476Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T06:56:43.570Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T06:57:13.634Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T06:57:43.707Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T06:58:13.768Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T06:58:43.850Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T06:59:13.942Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T06:59:44.038Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T07:00:14.131Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T07:00:44.229Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T07:01:14.312Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T07:01:44.411Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T07:02:14.514Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T07:02:44.600Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T07:03:14.697Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T07:03:44.807Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T07:04:14.891Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T07:04:44.989Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T07:05:15.082Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T07:05:45.174Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T07:06:15.268Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T07:06:45.359Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T07:07:15.458Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T07:07:45.557Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T07:08:15.646Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T07:08:45.727Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T07:09:15.824Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T07:09:45.912Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T07:10:15.996Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T07:10:46.090Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T07:11:16.183Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T07:11:46.266Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T07:12:16.357Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T07:12:46.366Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T07:13:16.444Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T07:13:46.540Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T07:14:16.630Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T07:14:46.730Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T07:15:16.827Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T07:15:46.923Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T07:16:17.006Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T07:16:47.100Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T07:17:17.188Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T07:17:47.274Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T07:18:17.362Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T07:18:47.451Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T07:19:17.546Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T07:19:47.641Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T07:20:17.735Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T07:20:47.830Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T07:21:17.928Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T07:21:48.039Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T07:22:18.130Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T07:22:48.218Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T07:23:18.305Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T07:23:48.393Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T07:24:18.480Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T07:24:48.571Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T07:25:18.665Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T07:25:48.760Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T07:26:18.857Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T07:26:48.947Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T07:27:19.037Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T07:27:49.143Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T07:28:19.247Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T07:28:49.339Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T07:29:19.423Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T07:29:49.518Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T07:30:19.610Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T07:30:49.704Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T07:31:19.797Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T07:31:49.898Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T07:32:19.984Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T07:32:50.081Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T07:33:20.257Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T07:33:50.355Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T07:34:20.444Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T07:34:50.539Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T07:35:20.634Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T07:35:50.732Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T07:36:20.834Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T07:36:50.927Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T07:37:21.017Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T07:37:51.122Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T07:38:21.209Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T07:38:51.297Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T07:39:21.384Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T07:39:51.479Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T07:40:21.572Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T07:40:51.679Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T07:41:21.771Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T07:41:51.864Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T07:42:21.965Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T07:42:52.035Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T07:43:22.120Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T07:43:52.158Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T07:44:22.210Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T07:44:52.249Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T07:45:22.301Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T07:45:52.343Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T07:46:22.416Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T07:46:52.453Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T07:47:22.521Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T07:47:52.560Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T07:48:22.624Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T07:48:52.666Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T07:49:22.719Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T07:49:52.772Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T07:50:22.855Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T07:50:52.896Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T07:51:22.947Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T07:51:52.986Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T07:52:23.048Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T07:52:53.090Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T07:53:23.143Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T07:53:53.183Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T07:54:23.233Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T07:54:53.273Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T07:55:23.328Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T07:55:53.373Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T07:56:23.434Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T07:56:53.479Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T07:57:23.554Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T07:57:53.596Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T07:58:23.647Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T07:58:53.685Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T07:59:23.726Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T07:59:53.764Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T08:00:23.823Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T08:00:53.866Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T08:01:23.925Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T08:01:53.965Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T08:02:24.020Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T08:02:54.067Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T08:03:24.123Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T08:03:54.167Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T08:04:24.235Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T08:04:54.279Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T08:05:24.336Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T08:05:54.387Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T08:06:24.452Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T08:06:54.495Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T08:07:24.552Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T08:07:54.594Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T08:08:24.647Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T08:08:54.690Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T08:09:24.742Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T08:09:54.780Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T08:10:24.835Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T08:10:54.879Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T08:11:24.943Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T08:11:54.987Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T08:12:25.036Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T08:12:55.092Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T08:13:25.152Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T08:13:55.209Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T08:14:25.277Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T08:14:55.318Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T08:15:25.369Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T08:15:55.412Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T08:16:25.464Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T08:16:55.513Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T08:17:25.572Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T08:17:55.614Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T08:18:25.679Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T08:18:55.722Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T08:19:25.790Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T08:19:55.832Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T08:20:25.873Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T08:20:55.908Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T08:21:25.970Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T08:21:56.016Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T08:22:26.066Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T08:22:56.116Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T08:23:26.169Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T08:23:56.222Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T08:24:26.284Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T08:24:56.332Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T08:25:26.385Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T08:25:56.445Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T08:26:26.498Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T08:26:56.545Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T08:27:26.605Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T08:27:56.655Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T08:28:26.724Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T08:28:56.768Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T08:29:26.820Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T08:29:56.864Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T08:30:26.921Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T08:30:56.972Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T08:31:27.045Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T08:31:57.091Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T08:32:27.143Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T08:32:57.187Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T08:33:27.244Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T08:33:57.301Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T08:34:27.370Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T08:34:57.442Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T08:35:27.526Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T08:35:57.607Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T08:36:27.700Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T08:36:57.796Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T08:37:27.881Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T08:37:57.970Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T08:38:28.067Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T08:38:58.159Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T08:39:28.244Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T08:39:58.336Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T08:40:28.411Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T08:40:58.486Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T08:41:28.574Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T08:41:58.667Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T08:42:28.752Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T08:42:58.844Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T08:43:28.927Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T08:43:59.027Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T08:44:29.136Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T08:44:59.221Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T08:45:29.309Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T08:45:59.407Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T08:46:29.497Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T08:46:59.588Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T08:47:29.681Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T08:47:59.747Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T08:48:29.831Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T08:48:59.926Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T08:49:30.024Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T08:50:00.121Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T08:50:30.207Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T08:51:00.301Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T08:51:30.396Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T08:52:00.493Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T08:52:30.585Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T08:53:00.679Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T08:53:30.763Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T08:54:00.856Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T08:54:30.960Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T08:55:01.050Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T08:55:31.170Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T08:56:01.298Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T08:56:31.392Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T08:57:01.488Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T08:57:31.582Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T08:58:01.679Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T08:58:31.768Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T08:59:01.862Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T08:59:31.954Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T09:00:02.037Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T09:00:32.131Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T09:01:02.215Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T09:01:32.306Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T09:02:02.405Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T09:02:32.495Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T09:03:02.584Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T09:03:32.676Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T09:04:02.781Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T09:04:32.870Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T09:05:02.960Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T09:05:33.061Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T09:06:03.163Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T09:06:33.252Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T09:07:03.342Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T09:07:33.436Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T09:08:03.524Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T09:08:33.611Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T09:09:03.712Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T09:09:33.804Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T09:10:03.898Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T09:10:33.981Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T09:11:04.077Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T09:11:34.173Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T09:12:04.259Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T09:12:34.353Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T09:13:04.452Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T09:13:34.550Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T09:14:04.642Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T09:14:34.724Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T09:15:04.831Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T09:15:34.929Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T09:16:05.017Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T09:16:35.105Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T09:17:05.196Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T09:17:35.284Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T09:18:05.366Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T09:18:35.448Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T09:19:05.536Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T09:19:35.623Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T09:20:05.715Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T09:20:35.823Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T09:21:05.910Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T09:21:36.005Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T09:22:06.105Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T09:22:36.197Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T09:23:06.292Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T09:23:36.391Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T09:24:06.486Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T09:24:36.576Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T09:25:06.672Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T09:25:36.764Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T09:26:06.861Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T09:26:36.949Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T09:27:07.040Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T09:27:37.135Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T09:28:07.228Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T09:28:37.315Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T09:29:07.397Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T09:29:37.475Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T09:30:07.566Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T09:30:37.659Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T09:31:07.754Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T09:31:37.834Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T09:32:07.923Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T09:32:38.019Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T09:33:08.115Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T09:33:38.216Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T09:34:08.304Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T09:34:38.408Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T09:35:08.501Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T09:35:38.594Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T09:36:08.691Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T09:36:38.786Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T09:37:08.883Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T09:37:38.987Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T09:38:09.078Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T09:38:39.165Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T09:39:09.251Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T09:39:39.346Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T09:40:09.436Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T09:40:39.504Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T09:41:09.578Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T09:41:39.663Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T09:42:09.753Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T09:42:39.845Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T09:43:09.940Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T09:43:40.037Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T09:44:10.136Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T09:44:40.218Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T09:45:10.321Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T09:45:40.411Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T09:46:10.501Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T09:46:40.593Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T09:47:10.696Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T09:47:40.797Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T09:48:10.890Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T09:48:40.980Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T09:49:11.064Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T09:49:41.156Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T09:50:11.243Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T09:50:41.328Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T09:51:11.418Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T09:51:41.516Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T09:52:11.613Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T09:52:41.712Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T09:53:11.803Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T09:53:41.895Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T09:54:11.983Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T09:54:42.055Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T09:55:12.101Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T09:55:42.191Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T09:56:12.264Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T09:56:42.347Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T09:57:12.432Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T09:57:42.517Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T09:58:12.612Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T09:58:42.722Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T09:59:12.813Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T09:59:42.905Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T10:00:13.008Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T10:00:43.100Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T10:01:13.200Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T10:01:43.300Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T10:02:13.398Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T10:02:43.481Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T10:03:13.571Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T10:03:43.673Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T10:04:13.755Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T10:04:43.847Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T10:05:13.942Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T10:05:44.038Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T10:06:14.132Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T10:06:44.227Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T10:07:14.315Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T10:07:44.409Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T10:08:14.498Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T10:08:44.592Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T10:09:14.708Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T10:09:44.806Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T10:10:14.903Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T10:10:45.004Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T10:11:15.092Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T10:11:45.181Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T10:12:15.274Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T10:12:45.366Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T10:13:15.460Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T10:13:45.554Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T10:14:15.653Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T10:14:45.740Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T10:15:15.827Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T10:15:45.936Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T10:16:16.026Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T10:16:46.110Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T10:17:16.212Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T10:17:46.306Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T10:18:16.399Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T10:18:46.482Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T10:19:16.573Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T10:19:46.659Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T10:20:16.756Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T10:20:46.846Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T10:21:16.938Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T10:21:47.035Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T10:22:17.133Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T10:22:47.220Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T10:23:17.300Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T10:23:47.386Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T10:24:17.474Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T10:24:47.564Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T10:25:17.653Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T10:25:47.749Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T10:26:17.837Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T10:26:47.927Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T10:27:18.015Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T10:27:48.104Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T10:28:18.197Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T10:28:48.291Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T10:29:18.380Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T10:29:48.471Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T10:30:18.545Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T10:30:48.632Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T10:31:18.737Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T10:31:48.829Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T10:32:18.924Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T10:32:49.009Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T10:33:19.102Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T10:33:49.194Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T10:34:19.281Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T10:34:49.363Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T10:35:19.458Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T10:35:49.553Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T10:36:19.663Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T10:36:49.751Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T10:37:19.840Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T10:37:49.921Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T10:38:20.010Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T10:38:50.095Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T10:39:20.197Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T10:39:50.294Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T10:40:20.387Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T10:40:50.479Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T10:41:20.571Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T10:41:50.663Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T10:42:20.745Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T10:42:50.850Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T10:43:20.942Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T10:43:51.035Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T10:44:21.123Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T10:44:51.219Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T10:45:21.311Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T10:45:51.402Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T10:46:21.499Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T10:46:51.588Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T10:47:21.677Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T10:47:51.767Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T10:48:21.865Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T10:48:51.954Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T10:49:22.017Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T10:49:52.073Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T10:50:22.138Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T10:50:52.211Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T10:51:22.310Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T10:51:52.402Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T10:52:22.489Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T10:52:52.576Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T10:53:22.680Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T10:53:52.780Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T10:54:22.878Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T10:54:52.971Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T10:55:23.078Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T10:55:53.181Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T10:56:23.273Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T10:56:53.358Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T10:57:23.449Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T10:57:53.553Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T10:58:23.650Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T10:58:53.744Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T10:59:23.844Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T10:59:53.932Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T11:00:24.016Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T11:00:54.108Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T11:01:24.200Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T11:01:54.291Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T11:02:24.380Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T11:02:54.487Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T11:03:24.577Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T11:03:54.651Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T11:04:24.746Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T11:04:54.836Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T11:05:24.932Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T11:05:55.030Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T11:06:25.122Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T11:06:55.221Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T11:07:25.310Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T11:07:55.400Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T11:08:25.499Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T11:08:55.589Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T11:09:25.675Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T11:09:55.765Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T11:10:25.860Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T11:10:55.950Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T11:11:26.049Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T11:11:56.138Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T11:12:26.236Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T11:12:56.333Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T11:13:26.435Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T11:13:56.525Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T11:14:26.617Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T11:14:56.727Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T11:15:26.824Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T11:15:56.926Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T11:16:26.999Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T11:16:57.081Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T11:17:27.171Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T11:17:57.256Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T11:18:27.360Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T11:18:57.452Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T11:19:27.553Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T11:19:57.648Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T11:20:27.740Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T11:20:57.832Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T11:21:27.922Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T11:21:58.016Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T11:22:28.099Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T11:22:58.194Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T11:23:28.280Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T11:23:58.369Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T11:24:28.461Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T11:24:58.554Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T11:25:28.658Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T11:25:58.746Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T11:26:28.857Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T11:26:58.944Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T11:27:29.049Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T11:27:59.135Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T11:28:29.222Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T11:28:59.306Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T11:29:29.412Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T11:29:59.487Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T11:30:29.572Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T11:30:59.670Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T11:31:29.755Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T11:31:59.853Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T11:32:29.944Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T11:33:00.037Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T11:33:30.125Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T11:34:00.215Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T11:34:30.299Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T11:35:00.383Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T11:35:30.478Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T11:36:00.571Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T11:36:30.673Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T11:37:00.760Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T11:37:30.857Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T11:38:00.955Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T11:38:31.056Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T11:39:01.146Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T11:39:31.240Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T11:40:01.333Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T11:40:31.414Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T11:41:01.507Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T11:41:31.605Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T11:42:01.694Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T11:42:31.786Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T11:43:01.878Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T11:43:31.966Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T11:44:02.062Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T11:44:32.160Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T11:45:02.245Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T11:45:32.331Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T11:46:02.433Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T11:46:32.530Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T11:47:02.616Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T11:47:32.712Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T11:48:02.803Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T11:48:32.893Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T11:49:02.979Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T11:49:33.066Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T11:50:03.157Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T11:50:33.247Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T11:51:03.341Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T11:51:33.423Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T11:52:03.517Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T11:52:33.624Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T11:53:03.716Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T11:53:33.779Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T11:54:03.858Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T11:54:33.953Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T11:55:04.044Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T11:55:34.141Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T11:56:04.235Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T11:56:34.346Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T11:57:04.419Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T11:57:34.479Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T11:58:04.547Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T11:58:34.633Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T11:59:04.726Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T11:59:34.821Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T12:00:04.901Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T12:00:34.995Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T12:01:05.088Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T12:01:35.191Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T12:02:05.294Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T12:02:35.388Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T12:03:05.487Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T12:03:35.575Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T12:04:05.666Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T12:04:35.751Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T12:05:05.821Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T12:05:35.904Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T12:06:05.995Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T12:06:36.077Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T12:07:06.167Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T12:07:36.257Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T12:08:06.353Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T12:08:36.459Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T12:09:06.566Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T12:09:36.648Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T12:10:06.744Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T12:10:36.850Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T12:11:06.945Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T12:11:37.028Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T12:12:07.107Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T12:12:37.198Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T12:13:07.295Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T12:13:37.379Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T12:14:07.470Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T12:14:37.564Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T12:15:07.659Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T12:15:37.740Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T12:16:07.829Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T12:16:37.929Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T12:17:08.034Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T12:17:38.122Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T12:18:08.219Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T12:18:38.300Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T12:19:08.385Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T12:19:38.474Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T12:20:08.568Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T12:20:38.669Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T12:21:08.762Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T12:21:38.863Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T12:22:08.953Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T12:22:39.054Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T12:23:09.137Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T12:23:39.242Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T12:24:09.333Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T12:24:39.421Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T12:25:09.510Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T12:25:39.613Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T12:26:09.699Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T12:26:39.797Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T12:27:09.889Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T12:27:39.983Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T12:28:10.072Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T12:28:40.163Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T12:29:10.253Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T12:29:40.336Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T12:30:10.443Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T12:30:40.552Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T12:31:10.650Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T12:31:40.745Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T12:32:10.840Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T12:32:40.938Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T12:33:11.033Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T12:33:41.118Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T12:34:11.214Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T12:34:41.306Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T12:35:11.402Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T12:35:41.514Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T12:36:11.609Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T12:36:41.708Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T12:37:11.792Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T12:37:41.879Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T12:38:11.979Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T12:38:42.069Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T12:39:12.160Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T12:39:42.236Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T12:40:12.330Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T12:40:42.419Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T12:41:12.515Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T12:41:42.622Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T12:42:12.723Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T12:42:42.817Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T12:43:12.905Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T12:43:43.000Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T12:44:13.090Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T12:44:43.189Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T12:45:13.248Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T12:45:43.343Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T12:46:13.425Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T12:46:43.518Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T12:47:13.603Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T12:47:43.691Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T12:48:13.774Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T12:48:43.876Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T12:49:13.966Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T12:49:44.060Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T12:50:14.147Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T12:50:44.246Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T12:51:14.341Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T12:51:44.432Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T12:52:14.523Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T12:52:44.605Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T12:53:14.696Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T12:53:44.779Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T12:54:14.864Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T12:54:44.963Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T12:55:15.056Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T12:55:45.145Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T12:56:15.256Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T12:56:45.345Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T12:57:15.439Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T12:57:45.536Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T12:58:15.631Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T12:58:45.724Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T12:59:15.819Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T12:59:45.918Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T13:00:16.019Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T13:00:46.114Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T13:01:16.230Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T13:01:46.333Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T13:02:16.434Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T13:02:46.526Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T13:03:16.612Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T13:03:46.709Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T13:04:16.805Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T13:04:46.895Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T13:05:16.967Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T13:05:47.022Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T13:06:17.092Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T13:06:47.161Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T13:07:17.243Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T13:07:47.335Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T13:08:17.425Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T13:08:47.522Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T13:09:17.613Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T13:09:47.707Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T13:10:17.797Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T13:10:47.894Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T13:11:17.987Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T13:11:48.080Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T13:12:18.168Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T13:12:48.253Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T13:13:18.345Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T13:13:48.424Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T13:14:18.513Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T13:14:48.598Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T13:15:18.697Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T13:15:48.779Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T13:16:18.868Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T13:16:48.963Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T13:17:19.046Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T13:17:49.147Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T13:18:19.227Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T13:18:49.330Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T13:19:19.427Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T13:19:49.515Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T13:20:19.608Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T13:20:49.682Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T13:21:19.753Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T13:21:49.835Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T13:22:19.939Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T13:22:50.033Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T13:23:20.123Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T13:23:50.213Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T13:24:20.303Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T13:24:50.392Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T13:25:20.479Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T13:25:50.569Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T13:26:20.647Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T13:26:50.736Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T13:27:20.829Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T13:27:50.922Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T13:28:21.014Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T13:28:51.116Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T13:29:21.214Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T13:29:51.310Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T13:30:21.401Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T13:30:51.491Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T13:31:21.580Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T13:31:51.677Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T13:32:21.768Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T13:32:51.858Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T13:33:21.941Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T13:33:52.018Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T13:34:22.103Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T13:34:52.211Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T13:35:22.301Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T13:35:52.390Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T13:36:22.483Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T13:36:52.579Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T13:37:22.671Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T13:37:52.764Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T13:38:22.857Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T13:38:52.966Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T13:39:23.051Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T13:39:53.148Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T13:40:23.238Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T13:40:53.332Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T13:41:23.426Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T13:41:53.532Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T13:42:23.619Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T13:42:53.714Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T13:43:23.808Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T13:43:53.904Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T13:44:23.992Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T13:44:54.092Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T13:45:24.173Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T13:45:54.265Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T13:46:24.355Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T13:46:54.448Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T13:47:24.540Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T13:47:54.636Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T13:48:24.717Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T13:48:54.825Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T13:49:24.923Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T13:49:55.009Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T13:50:25.101Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T13:50:55.191Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T13:51:25.282Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T13:51:55.380Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T13:52:25.427Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T13:52:55.520Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T13:53:25.600Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T13:53:55.686Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T13:54:25.782Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T13:54:55.873Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T13:55:25.959Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T13:55:56.050Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T13:56:26.157Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T13:56:56.260Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T13:57:26.339Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T13:57:56.426Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T13:58:26.529Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T13:58:56.624Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T13:59:26.713Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T13:59:56.811Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T14:00:26.903Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T14:00:56.999Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T14:01:27.092Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T14:01:57.182Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T14:02:27.268Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T14:02:57.371Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T14:03:27.475Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T14:03:57.568Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T14:04:27.662Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T14:04:57.763Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T14:05:27.864Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T14:05:57.956Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T14:06:28.042Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T14:06:58.130Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T14:07:28.226Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T14:07:58.331Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T14:08:28.426Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T14:08:58.525Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T14:09:28.611Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T14:09:58.711Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T14:10:28.791Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T14:10:58.893Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T14:11:28.984Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T14:11:59.074Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T14:12:29.173Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T14:12:59.263Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T14:13:29.352Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T14:13:59.406Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T14:14:29.462Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T14:14:59.544Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T14:15:29.637Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T14:15:59.728Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T14:16:29.825Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T14:16:59.913Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T14:17:30.008Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T14:18:00.094Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T14:18:30.178Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T14:19:00.262Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T14:19:30.358Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T14:20:00.444Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T14:20:30.550Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T14:21:00.643Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T14:21:30.739Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T14:22:00.824Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T14:22:30.907Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T14:23:01.003Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T14:23:31.091Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T14:24:01.177Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T14:24:31.264Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T14:25:01.367Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T14:25:31.454Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T14:26:01.542Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T14:26:31.636Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T14:27:01.732Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T14:27:31.860Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T14:28:01.925Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T14:28:31.979Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T14:29:02.030Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T14:29:32.107Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T14:30:02.183Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T14:30:32.245Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T14:31:02.313Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T14:31:32.385Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T14:32:02.463Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T14:32:32.543Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T14:33:02.640Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T14:33:32.741Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T14:34:02.828Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T14:34:32.922Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T14:35:03.012Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T14:35:33.104Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T14:36:03.184Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T14:36:33.270Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T14:37:03.371Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T14:37:33.464Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T14:38:03.543Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T14:38:33.642Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T14:39:03.739Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T14:39:33.833Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T14:40:03.916Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T14:40:34.022Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T14:41:04.111Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T14:41:34.207Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T14:42:04.301Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T14:42:34.408Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T14:43:04.501Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T14:43:34.597Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T14:44:04.696Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T14:44:34.786Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T14:45:04.894Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T14:45:34.993Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T14:46:05.082Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T14:46:35.178Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T14:47:05.273Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T14:47:35.359Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T14:48:05.445Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T14:48:35.537Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T14:49:05.623Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T14:49:35.703Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T14:50:05.792Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T14:50:35.885Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T14:51:05.974Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T14:51:36.068Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T14:52:06.158Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T14:52:36.245Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T14:53:06.338Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T14:53:36.421Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T14:54:06.513Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T14:54:36.604Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T14:55:06.700Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T14:55:36.779Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T14:56:06.865Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T14:56:36.942Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T14:57:07.041Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T14:57:37.128Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T14:58:07.227Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T14:58:37.320Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T14:59:07.401Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T14:59:37.505Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T15:00:07.585Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T15:00:37.651Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T15:10:45.316Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T15:11:15.398Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T15:28:55.632Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T15:29:25.689Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T15:45:51.236Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T16:02:46.735Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T16:03:16.825Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T16:18:55.862Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T16:19:25.957Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T16:36:08.566Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T16:36:38.642Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T16:54:15.141Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T17:10:29.811Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T17:10:59.904Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T17:11:29.999Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T17:12:00.095Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T17:12:30.189Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T17:13:00.281Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T17:13:30.368Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T17:30:28.589Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T17:30:58.690Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T17:48:17.436Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T18:05:29.963Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T18:06:00.067Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T18:06:30.159Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T18:07:00.262Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T18:07:30.357Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T18:08:00.450Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T18:08:30.535Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T18:09:00.614Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T18:09:30.691Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T18:25:13.325Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T18:25:43.424Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T18:42:56.469Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T18:43:26.578Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T18:59:49.091Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T19:14:53.576Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T19:15:23.701Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T19:15:53.802Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T19:16:23.902Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T19:16:53.997Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T19:17:24.099Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T19:17:54.187Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T19:18:24.291Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T19:18:54.382Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T19:19:24.471Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T19:19:54.572Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T19:20:24.662Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T19:20:54.748Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T19:21:24.852Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T19:21:54.945Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T19:22:25.031Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T19:22:55.125Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T19:23:25.190Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T19:23:55.248Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T19:24:25.285Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T19:24:55.343Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T19:25:25.401Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T19:25:55.462Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T19:26:25.543Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T19:26:55.628Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T19:27:25.719Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T19:27:55.812Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T19:28:25.909Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T19:28:55.994Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T19:29:26.093Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T19:29:56.184Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T19:32:06.285Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T19:47:41.406Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T19:48:11.500Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T20:04:27.048Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T20:15:58.750Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T20:16:28.846Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T20:31:50.560Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T20:32:20.654Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T20:41:44.656Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T20:42:14.758Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T20:58:08.945Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T21:14:45.318Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T21:15:15.369Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T21:28:58.307Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T21:29:28.394Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T21:29:58.482Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T21:30:28.566Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T21:30:58.640Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T21:31:28.724Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T21:31:58.815Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T21:32:28.908Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T21:32:58.998Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T21:33:29.091Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T21:33:59.173Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T21:34:29.259Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T21:34:59.348Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T21:35:29.441Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T21:35:59.533Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T21:36:29.624Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T21:36:59.716Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T21:37:29.804Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T21:37:59.891Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T21:38:30.003Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T21:39:00.091Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T21:39:30.188Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T21:40:00.253Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T21:40:30.346Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T21:41:00.452Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T21:41:30.543Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T21:42:00.634Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T21:42:30.736Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T21:43:00.818Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T21:43:30.881Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T21:44:00.975Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T21:44:31.037Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T21:45:01.120Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T21:45:31.167Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T21:46:01.224Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T21:46:31.293Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T21:47:01.372Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T21:47:31.464Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T21:48:01.568Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T21:48:31.652Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T21:49:01.753Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T21:49:31.854Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T21:50:01.942Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T21:50:32.034Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T21:51:02.131Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T21:51:32.248Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T21:52:02.330Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T21:52:32.410Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T21:53:02.501Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T21:53:32.590Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T21:54:02.675Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T21:54:32.768Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T21:55:02.858Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T21:55:32.941Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T21:56:03.036Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T21:56:33.124Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T21:57:03.213Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T21:57:33.293Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T21:58:03.381Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T21:58:33.482Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T21:59:03.557Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T21:59:33.643Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T22:00:03.727Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T22:00:33.815Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T22:01:03.899Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T22:01:33.996Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T22:02:04.082Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T22:02:34.165Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T22:03:04.264Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T22:03:34.347Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T22:04:04.434Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T22:04:34.524Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T22:05:04.614Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T22:05:34.708Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T22:06:04.790Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T22:06:34.880Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T22:07:04.970Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T22:07:35.056Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T22:08:05.142Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T22:08:35.237Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T22:09:05.341Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T22:09:35.431Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T22:10:05.522Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T22:10:35.635Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T22:22:09.740Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T22:24:00.397Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T22:24:30.494Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T22:25:00.520Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T22:25:30.605Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T22:26:00.690Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T22:26:30.778Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T22:27:00.869Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T22:27:30.954Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T22:28:01.035Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T22:28:31.122Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T22:29:01.223Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T22:29:31.311Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T22:30:01.404Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T22:30:31.460Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T22:31:01.528Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T22:31:31.608Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T22:32:01.693Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T22:32:31.766Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T22:33:01.865Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T22:33:31.965Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T22:34:02.091Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T22:34:32.187Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T22:35:02.272Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T22:35:32.367Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T22:36:02.471Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T22:36:32.566Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T22:37:02.654Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T22:37:32.739Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T22:38:02.827Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T22:38:32.917Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T22:39:03.008Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T22:39:33.104Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T22:40:03.202Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T22:40:33.280Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T22:41:03.370Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T22:41:33.470Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T22:42:03.572Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T22:42:33.665Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T22:43:03.763Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T22:43:33.843Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T22:44:03.923Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T22:44:34.018Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T22:45:04.111Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T22:45:34.203Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T22:46:04.293Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T22:46:34.387Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T22:47:04.471Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T22:47:34.563Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T22:48:04.659Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T22:48:34.745Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T22:49:04.848Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T22:49:34.948Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T22:50:05.041Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T22:50:35.136Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T22:51:05.218Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T22:51:35.311Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T22:52:05.400Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T22:52:35.492Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T22:53:05.590Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T22:53:35.698Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T22:54:05.788Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T22:54:35.881Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T22:55:05.977Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T22:55:36.078Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T22:56:06.178Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T22:56:36.274Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T22:57:06.368Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T22:57:36.462Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T22:58:06.559Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T22:58:36.665Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T22:59:06.745Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T22:59:36.842Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T23:00:06.929Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T23:00:37.015Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T23:01:07.105Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T23:01:37.182Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T23:02:07.271Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T23:02:37.362Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T23:03:07.456Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T23:03:37.550Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T23:04:07.639Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T23:04:37.731Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T23:05:07.819Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T23:05:37.912Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T23:06:08.004Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T23:06:38.100Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T23:07:08.203Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T23:07:38.302Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T23:08:08.397Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T23:08:38.485Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T23:09:08.575Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T23:09:38.671Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T23:10:08.762Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T23:10:38.860Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T23:11:08.961Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T23:11:39.070Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T23:12:09.170Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T23:12:39.269Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T23:13:09.358Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T23:13:39.447Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T23:14:09.544Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T23:14:39.641Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T23:15:09.718Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T23:15:39.821Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T23:16:09.909Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T23:16:40.005Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T23:17:10.100Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T23:17:40.198Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T23:18:10.296Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T23:18:40.404Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T23:19:10.497Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T23:19:40.589Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T23:20:10.683Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T23:20:40.777Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T23:21:10.871Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T23:21:40.981Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T23:22:11.086Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T23:22:41.179Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T23:23:11.272Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T23:23:41.359Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T23:24:11.432Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T23:24:41.528Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T23:25:11.599Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T23:25:41.701Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T23:26:11.817Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T23:26:41.936Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T23:27:12.028Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T23:27:42.128Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T23:28:12.219Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T23:28:42.319Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T23:29:12.404Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T23:29:42.501Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T23:30:12.589Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T23:30:42.659Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T23:31:12.737Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T23:31:42.830Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T23:32:12.928Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T23:32:43.031Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T23:33:13.137Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T23:33:43.253Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T23:34:13.341Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T23:34:43.425Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T23:35:13.529Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T23:35:43.638Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T23:36:13.744Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T23:36:43.817Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T23:37:13.898Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T23:37:43.994Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T23:38:14.084Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T23:38:44.180Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T23:39:14.267Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T23:39:44.353Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T23:40:14.443Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T23:40:44.534Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T23:41:14.624Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T23:41:44.718Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T23:42:14.808Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T23:42:44.897Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T23:43:14.972Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T23:43:45.053Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T23:44:15.165Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T23:44:45.260Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T23:45:15.361Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T23:45:45.450Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T23:46:15.543Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T23:46:45.635Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T23:47:15.739Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T23:47:45.845Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T23:48:15.943Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T23:48:46.061Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T23:49:16.165Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T23:49:46.259Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T23:50:16.350Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T23:50:46.452Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T23:51:16.535Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T23:51:46.628Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T23:52:16.719Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T23:52:46.813Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T23:53:16.906Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T23:53:46.998Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T23:54:17.091Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T23:54:47.181Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T23:55:17.279Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T23:55:47.371Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T23:56:17.474Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T23:56:47.574Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T23:57:17.663Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T23:57:47.760Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T23:58:17.844Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T23:58:47.929Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T23:59:18.029Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-22T23:59:48.118Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T00:00:18.211Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T00:00:48.293Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T00:01:18.378Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T00:01:48.473Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T00:02:18.587Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T00:02:48.677Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T00:03:18.776Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T00:03:48.865Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T00:04:18.967Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T00:04:49.071Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T00:05:19.161Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T00:05:49.252Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T00:06:19.338Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T00:06:49.433Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T00:07:19.531Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T00:07:49.619Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T00:08:19.710Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T00:08:49.811Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T00:09:19.924Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T00:09:50.026Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T00:10:20.121Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T00:10:50.231Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T00:11:20.327Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T00:11:50.421Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T00:12:20.519Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T00:12:50.609Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T00:13:20.713Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T00:13:50.843Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T00:14:20.939Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T00:14:51.032Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T00:15:21.135Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T00:15:51.223Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T00:16:21.318Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T00:16:51.405Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T00:17:21.492Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T00:17:51.575Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T00:18:21.659Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T00:18:51.757Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T00:19:21.867Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T00:19:51.965Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T00:20:22.058Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T00:20:52.150Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T00:21:22.255Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T00:21:52.363Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T00:22:22.457Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T00:22:52.552Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T00:23:22.661Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T00:23:52.767Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T00:24:22.867Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T00:24:52.961Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T00:25:23.057Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T00:25:53.153Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T00:26:23.239Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T00:26:53.337Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T00:27:23.439Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T00:27:53.531Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T00:28:23.626Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T00:28:53.716Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T00:29:23.813Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T00:29:53.912Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T00:30:24.015Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T00:30:54.108Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T00:31:24.189Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T00:31:54.257Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T00:32:24.334Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T00:32:54.413Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T00:33:24.512Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T00:33:54.607Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T00:34:24.703Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T00:34:54.801Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T00:35:24.894Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T00:35:54.984Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T00:36:25.071Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T00:36:55.162Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T00:37:25.257Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T00:37:55.349Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T00:38:25.440Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T00:38:55.530Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T00:39:25.636Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T00:39:55.737Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T00:40:25.829Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T00:40:55.916Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T00:41:26.006Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T00:41:56.098Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T00:42:26.198Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T00:42:56.287Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T00:43:26.370Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T00:43:56.459Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T00:44:26.564Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T00:44:56.651Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T00:45:26.736Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T00:45:56.845Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T00:46:26.939Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T00:46:57.033Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T00:47:27.141Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T00:47:57.231Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T00:48:27.327Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T00:48:57.423Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T00:49:27.521Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T00:49:57.611Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T00:50:27.692Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T00:50:57.795Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T00:51:27.885Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T00:51:57.990Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T00:52:28.086Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T00:52:58.169Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T00:53:28.262Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T00:53:58.359Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T00:54:28.451Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T00:54:58.537Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T00:55:28.626Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T00:55:58.713Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T00:56:28.819Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T00:56:58.924Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T00:57:29.019Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T00:57:59.114Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T00:58:29.200Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T00:58:59.298Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T00:59:29.396Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T00:59:59.493Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T01:00:29.594Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T01:00:59.683Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T01:01:29.772Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T01:01:59.872Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T01:02:29.967Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T01:03:00.071Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T01:03:30.159Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T01:04:00.255Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T01:04:30.361Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T01:05:00.462Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T01:05:30.552Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T01:06:00.640Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T01:06:30.800Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T01:07:00.885Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T01:07:30.981Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T01:08:01.075Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T01:08:31.161Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T01:09:01.249Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T01:09:31.334Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T01:10:01.433Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T01:10:31.539Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T01:11:01.644Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T01:11:31.747Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T01:12:01.852Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T01:12:31.952Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T01:13:02.056Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T01:13:32.140Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T01:14:02.239Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T01:14:32.336Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T01:15:02.425Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T01:15:32.524Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T01:16:02.620Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T01:16:32.712Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T01:17:02.815Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T01:17:32.909Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T01:18:03.000Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T01:18:33.086Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T01:19:03.184Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T01:19:33.271Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T01:20:03.363Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T01:20:33.454Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T01:21:03.542Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T01:21:33.642Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T01:22:03.731Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T01:22:33.822Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T01:23:03.917Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T01:23:34.005Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T01:24:04.099Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T01:24:34.194Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T01:25:04.283Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T01:25:34.378Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T01:26:04.472Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T01:26:34.569Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T01:27:04.658Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T01:27:34.748Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T01:28:04.842Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T01:28:34.944Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T01:29:05.043Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T01:29:35.144Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T01:30:05.230Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T01:30:35.320Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T01:31:05.419Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T01:31:35.504Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T01:32:05.602Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T01:32:35.692Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T01:33:05.772Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T01:33:35.861Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T01:34:05.947Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T01:34:36.033Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T01:35:06.124Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T01:35:36.210Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T01:36:06.295Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T01:36:36.382Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T01:37:06.476Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T01:37:36.547Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T01:38:06.646Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T01:38:36.736Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T01:39:06.834Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T01:39:36.933Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T01:40:07.055Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T01:40:37.152Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T01:41:07.245Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T01:41:37.352Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T01:42:07.440Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T01:42:37.535Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T01:43:07.623Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T01:43:37.715Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T01:44:07.829Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T01:44:37.943Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T01:45:08.041Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T01:45:38.149Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T01:46:08.245Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T01:46:38.359Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T01:47:08.468Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T01:47:38.548Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T01:48:08.632Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T01:48:38.727Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T01:49:08.820Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T01:49:38.915Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T01:50:09.012Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T01:50:39.108Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T01:51:09.187Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T01:51:39.277Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T01:52:09.372Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T01:52:39.470Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T01:53:09.571Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T01:53:39.535Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T01:54:09.639Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T01:54:39.726Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T01:55:09.826Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T01:55:39.918Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T01:56:10.008Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T01:56:40.111Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T01:57:10.213Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T01:57:40.307Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T01:58:10.411Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T01:58:40.504Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T01:59:10.602Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T01:59:40.695Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T02:00:10.787Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T02:00:40.887Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T02:01:10.977Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T02:01:41.068Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T02:02:11.163Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T02:02:41.262Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T02:03:11.355Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T02:03:41.463Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T02:04:11.556Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T02:04:41.639Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T02:05:11.736Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T02:05:41.841Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T02:06:11.932Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T02:06:42.043Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T02:07:12.136Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T02:07:42.221Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T02:08:12.309Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T02:08:42.418Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T02:09:12.480Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T02:09:42.563Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T02:10:12.645Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T02:10:42.741Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T02:11:12.831Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T02:11:42.920Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T02:12:13.005Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T02:12:43.089Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T02:13:13.177Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T02:13:43.272Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T02:14:13.366Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T02:14:43.469Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T02:15:13.560Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T02:15:43.642Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T02:16:13.733Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T02:16:43.821Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T02:17:13.916Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T02:17:44.012Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T02:18:14.095Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T02:18:44.190Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T02:19:14.272Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T02:19:44.358Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T02:20:14.443Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T02:20:44.537Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T02:21:14.616Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T02:21:44.707Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T02:22:14.824Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T02:22:44.909Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T02:23:15.008Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T02:23:45.100Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T02:24:15.194Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T02:24:45.316Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T02:25:15.416Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T02:25:45.505Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T02:26:15.628Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T02:26:45.726Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T02:27:15.832Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T02:27:45.947Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T02:28:16.035Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T02:28:46.149Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T02:31:54.533Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T02:32:24.641Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T02:34:41.214Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T02:41:58.085Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T02:52:19.930Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T02:52:50.030Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T02:53:20.122Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T02:53:50.226Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T02:54:20.317Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T02:54:50.404Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T02:55:20.494Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T02:55:50.596Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T02:56:20.684Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T02:56:50.735Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T02:57:20.827Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T02:57:50.911Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T02:58:21.015Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T02:58:51.106Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T02:59:21.193Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T02:59:51.284Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T03:00:21.383Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T03:00:51.477Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T03:01:21.570Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T03:01:51.663Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T03:02:21.755Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T03:02:51.853Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T03:03:21.951Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T03:03:52.051Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T03:04:22.153Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T03:04:52.251Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T03:05:22.345Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T03:05:52.433Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T03:06:22.516Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T03:06:52.611Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T03:07:22.734Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T03:07:52.924Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T03:08:23.021Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T03:08:53.109Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T03:09:23.201Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T03:09:53.319Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T03:10:23.427Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T03:10:53.522Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T03:11:23.645Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T03:11:53.752Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T03:12:23.869Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T03:12:53.968Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T03:13:24.070Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T03:13:54.171Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T03:14:24.263Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T03:14:54.370Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T03:15:24.464Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T03:15:54.559Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T03:16:24.645Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T03:16:54.746Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T03:17:24.837Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T03:17:54.935Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T03:18:25.030Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T03:18:55.113Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T03:19:25.210Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T03:19:55.301Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T03:20:25.393Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T03:20:55.491Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T03:21:25.591Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T03:21:55.689Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T03:22:25.778Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T03:22:55.862Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T03:23:25.976Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T03:23:56.062Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T03:24:26.158Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T03:24:56.251Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T03:25:26.356Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T03:25:56.452Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T03:26:26.538Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T03:26:56.633Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T03:27:26.705Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T03:27:56.817Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T03:28:26.901Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T03:28:56.997Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T03:29:27.077Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T03:29:57.171Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T03:30:27.259Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T03:30:57.357Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T03:31:27.459Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T03:31:57.553Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T03:32:27.657Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T03:32:57.752Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T03:33:27.845Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T03:33:57.923Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T03:34:28.016Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T03:34:58.116Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T03:35:28.203Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T03:35:58.301Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T03:36:28.403Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T03:36:58.505Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T03:37:28.596Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T03:37:58.653Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T03:38:28.733Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T03:38:58.815Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T03:39:28.903Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T03:39:58.985Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T03:40:29.074Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T03:40:59.146Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T03:41:29.241Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T03:41:59.324Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T03:42:29.408Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T03:42:59.500Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T03:43:29.591Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T03:43:59.699Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T03:44:29.786Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T03:44:59.872Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T03:45:29.964Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T03:46:00.050Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T03:46:30.142Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T03:47:00.227Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T03:47:30.317Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T03:48:00.413Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T03:48:30.517Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T03:49:00.625Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T03:49:30.724Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T03:50:00.826Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T03:50:30.930Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T04:09:09.918Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T04:09:40.005Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T04:27:34.654Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T04:42:13.878Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T04:42:43.978Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T04:43:14.070Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T04:43:44.160Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T04:44:14.249Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T04:44:44.345Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T04:45:14.442Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T04:45:44.532Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T04:46:14.632Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T04:46:44.733Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T04:47:14.829Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T04:47:44.912Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T04:48:14.995Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T04:48:45.098Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T04:49:15.192Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T04:49:45.298Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T04:50:15.393Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T04:50:45.485Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T04:51:15.574Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T04:51:45.674Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T04:52:15.772Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T04:52:45.865Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T04:53:15.947Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T04:53:46.047Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T04:54:16.143Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T04:54:46.232Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T04:55:16.321Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T04:55:46.412Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T04:56:16.501Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T04:56:46.582Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T04:57:16.678Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T04:57:46.773Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T04:58:16.866Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T04:58:46.959Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T04:59:17.058Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T04:59:47.148Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T05:00:17.239Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T05:00:47.333Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T05:01:17.430Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T05:01:47.517Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T05:02:17.608Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T05:02:47.705Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T05:03:17.802Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T05:03:47.884Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T05:04:17.984Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T05:04:48.095Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T05:05:18.186Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T05:05:48.264Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T05:06:18.360Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T05:06:48.447Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T05:07:18.551Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T05:07:48.670Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T05:08:18.776Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T05:08:48.872Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T05:09:18.981Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T05:09:49.080Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T05:10:19.170Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T05:10:49.256Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T05:11:19.343Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T05:11:49.436Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T05:12:19.519Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T05:12:49.614Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T05:13:19.700Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T05:13:49.791Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T05:14:19.879Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T05:14:49.977Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T05:15:20.065Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T05:15:50.163Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T05:16:20.255Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T05:16:50.354Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T05:17:20.443Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T05:17:50.531Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T05:18:20.616Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T05:18:50.714Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T05:19:20.796Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T05:19:50.884Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T05:20:20.984Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T05:20:51.089Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T05:21:21.187Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T05:21:51.275Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T05:22:21.400Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T05:22:51.485Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T05:23:21.579Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T05:23:51.668Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T05:24:21.775Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T05:24:51.857Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T05:25:21.941Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T05:25:52.031Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T05:26:22.118Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T05:26:52.199Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T05:27:22.284Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T05:27:52.382Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T05:28:22.481Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T05:28:52.573Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T05:29:22.663Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T05:29:52.757Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T05:30:22.857Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T05:30:52.942Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T05:31:23.045Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T05:31:53.142Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T05:32:23.232Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T05:32:53.337Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T05:33:23.388Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T05:33:53.438Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T05:34:23.492Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T05:34:53.545Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T05:35:23.614Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T05:35:53.695Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T05:36:23.752Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T05:36:53.802Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T05:37:23.861Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T05:37:53.926Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T05:38:23.981Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T05:38:54.036Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T05:39:24.091Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T05:39:54.141Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T05:40:24.201Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T05:40:54.258Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T05:41:24.311Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T05:41:54.370Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T05:42:24.424Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T05:42:54.489Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T05:43:24.548Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T05:43:54.610Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T05:44:24.690Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T05:44:54.768Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T05:45:24.835Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T05:45:54.955Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "5ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T05:46:25.045Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T05:46:55.150Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T05:47:25.246Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T05:47:55.345Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T05:48:25.447Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T05:48:55.531Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T05:49:25.621Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T05:49:55.723Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T05:50:25.815Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T05:50:55.911Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T05:51:26.002Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T05:51:56.092Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T05:52:26.194Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T05:52:56.285Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T05:53:26.372Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T05:53:56.461Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T05:54:26.546Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T05:54:56.635Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T05:55:26.720Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T05:55:56.820Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T05:56:26.910Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T05:56:56.999Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T05:57:27.106Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T05:57:57.195Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T05:58:27.269Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T05:58:57.370Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T05:59:27.458Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T05:59:57.540Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T06:00:27.635Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T06:00:57.723Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T06:01:27.818Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T06:01:57.910Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T06:02:28.002Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T06:02:58.093Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T06:03:28.177Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T06:03:58.274Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T06:04:28.364Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T06:04:58.459Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T06:05:28.557Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T06:05:58.653Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T06:06:28.750Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T06:06:58.840Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T06:07:28.929Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T06:07:59.021Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T06:08:29.112Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T06:08:59.208Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T06:09:29.296Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T06:09:59.390Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T06:10:29.462Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T06:10:59.569Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T06:11:29.653Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T06:11:59.746Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T06:12:29.833Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T06:12:59.926Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T06:13:30.036Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T06:14:00.128Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T06:14:30.214Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T06:15:00.314Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T06:15:30.406Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T06:16:00.499Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T06:16:30.592Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T06:17:00.683Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T06:17:30.767Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T06:18:00.859Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T06:18:30.945Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T06:19:01.029Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T06:19:31.131Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T06:20:01.224Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T06:20:31.309Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T06:21:01.405Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T06:21:31.486Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T06:22:01.576Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T06:22:31.662Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T06:23:01.753Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T06:23:31.850Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T06:24:01.941Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T06:24:32.033Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T06:25:02.123Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T06:25:32.222Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T06:26:02.317Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T06:26:32.395Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T06:27:02.487Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T06:27:32.578Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T06:28:02.671Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T06:28:32.758Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T06:29:02.844Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T06:29:32.949Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T06:30:03.053Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T06:30:33.147Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T06:31:03.235Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T06:31:33.338Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T06:32:03.439Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T06:32:33.528Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T06:33:03.615Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T06:33:33.710Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T06:34:03.793Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T06:34:33.905Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T06:35:04.007Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T06:35:34.094Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T06:36:04.197Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T06:36:34.301Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T06:37:04.405Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T06:37:34.490Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T06:38:04.583Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T06:38:34.670Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T06:39:04.757Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T06:39:34.841Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T06:40:04.931Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T06:40:35.024Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T06:41:05.115Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T06:41:35.211Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T06:42:05.299Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T06:42:35.389Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T06:43:05.487Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T06:43:35.580Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T06:44:05.683Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T06:44:35.770Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T06:45:05.866Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T06:45:35.959Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T06:46:06.046Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T06:46:36.140Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T06:47:06.220Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T06:47:36.308Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T06:48:06.405Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T06:48:36.495Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T06:49:06.587Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T06:49:36.686Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T06:50:06.779Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T06:50:36.866Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T06:51:06.943Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T06:51:36.998Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T06:52:07.050Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T06:52:37.104Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T06:53:07.228Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T06:53:37.284Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T06:54:07.336Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T06:54:37.390Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T06:55:07.454Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T06:55:37.512Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T06:56:07.575Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T06:56:37.628Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T06:57:07.684Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T06:57:37.740Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T06:58:07.795Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T06:58:37.880Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T06:59:07.955Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T06:59:38.244Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T07:00:08.292Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T07:02:42.485Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T07:18:10.754Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T07:18:40.849Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T07:19:10.893Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T07:34:39.259Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T07:35:09.335Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T07:50:37.030Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T07:51:07.082Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T07:55:49.759Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T08:00:31.461Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T08:01:01.513Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T08:05:44.318Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T08:06:14.385Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T08:22:18.276Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T08:22:48.327Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T08:23:18.379Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T08:23:48.443Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T08:39:47.807Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T08:40:17.870Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T08:56:07.048Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T08:56:37.108Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T08:59:59.053Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T09:15:35.664Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T09:16:05.822Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T09:16:35.894Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T09:17:05.951Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T09:17:36.009Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T09:33:54.729Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T09:34:24.784Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T09:34:54.852Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T09:35:24.902Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T09:35:54.956Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T09:36:25.006Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T09:36:55.066Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T09:37:25.150Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T09:37:55.214Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T09:38:25.266Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T09:38:55.335Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T09:54:23.848Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T09:55:36.583Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T09:56:06.636Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T09:57:28.031Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T09:57:58.090Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T10:01:04.055Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T10:15:34.086Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T10:16:04.124Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T10:28:42.191Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T10:29:12.245Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T10:45:40.356Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T10:58:35.464Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T10:59:05.544Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T11:04:12.701Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T11:04:42.759Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T11:05:45.249Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T11:09:29.019Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T11:09:59.077Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T11:16:39.441Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T11:17:09.499Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T11:22:42.172Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T11:30:46.067Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T11:31:16.139Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T11:45:35.522Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T11:46:05.583Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T11:51:14.593Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T12:07:20.983Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T12:07:51.046Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T12:23:12.564Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T12:27:39.260Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T12:28:09.339Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T12:41:30.357Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T12:42:00.412Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T12:47:42.839Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T13:03:31.749Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T13:04:01.805Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T13:20:55.572Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T13:21:25.623Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T13:38:33.926Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T13:54:54.542Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T13:55:24.607Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T14:12:35.329Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T14:13:05.403Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T14:30:14.160Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T14:46:13.843Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T14:46:43.912Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T15:02:57.431Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T15:19:30.054Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T15:20:00.111Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T15:20:30.166Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T15:21:00.221Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T15:21:30.278Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T15:37:57.844Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T15:55:05.698Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T15:55:35.763Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T16:12:48.908Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T16:28:16.547Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T16:28:46.602Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T16:46:36.260Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T17:03:12.796Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T17:03:42.862Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T17:21:12.677Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T17:21:42.724Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T17:37:33.220Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T17:38:03.293Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T17:48:08.838Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T18:03:38.708Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T18:04:08.782Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T18:21:44.749Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T18:22:14.812Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T18:39:42.670Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T18:55:45.559Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T18:56:15.618Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T19:12:36.579Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T19:13:06.640Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T19:13:36.708Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T19:14:06.780Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T19:14:36.834Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T19:15:06.887Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T19:15:36.939Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T19:16:06.997Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T19:16:37.050Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T19:17:07.104Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T19:17:37.163Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T19:18:07.232Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T19:18:37.301Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T19:19:07.369Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T19:19:37.424Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T19:20:07.483Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T19:20:37.539Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T19:21:07.598Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T19:21:37.668Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T19:22:07.722Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T19:22:37.796Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T19:23:07.850Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T19:23:37.906Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T19:24:07.963Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T19:24:38.020Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T19:25:08.079Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T19:25:38.133Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T19:26:08.186Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T19:26:38.262Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T19:27:08.327Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T19:27:38.378Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T19:43:36.110Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T19:44:06.156Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T19:49:13.071Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T20:06:14.891Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T20:06:44.940Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T20:22:48.584Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T20:40:48.213Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T20:41:18.278Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T20:50:02.145Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T20:50:32.193Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T20:51:02.247Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T21:08:56.992Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T21:10:28.582Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T21:10:58.635Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T21:11:31.192Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T21:12:01.249Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T21:28:13.685Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T21:45:12.547Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T21:45:42.608Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T21:51:07.339Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T22:08:39.800Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T22:09:09.857Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T22:12:51.603Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T22:13:21.658Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T22:13:51.711Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T22:14:21.762Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T22:25:05.751Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T22:25:35.822Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T22:26:05.878Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T22:26:35.935Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T22:27:05.987Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T22:27:36.040Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T22:28:06.093Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T22:28:36.153Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T22:29:06.205Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T22:29:36.263Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T22:30:06.315Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T22:30:36.377Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T22:31:06.429Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T22:31:36.478Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T22:32:06.531Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T22:32:36.586Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T22:33:06.639Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T22:33:36.695Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T22:34:06.746Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T22:50:34.807Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T23:06:17.641Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T23:06:47.714Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T23:23:07.758Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T23:30:16.801Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T23:30:46.852Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T23:33:09.664Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T23:33:39.721Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T23:49:48.062Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T23:51:58.900Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-23T23:52:28.963Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T00:08:32.521Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T00:12:15.212Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T00:12:45.267Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T00:26:02.680Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T00:26:32.753Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T00:42:17.023Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T00:52:57.711Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T00:53:27.772Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T01:09:04.327Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T01:24:45.142Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T01:25:15.204Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T01:41:18.110Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T01:41:48.180Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T01:54:03.939Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T01:54:33.999Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T02:10:18.998Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T02:27:16.979Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T02:27:47.031Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T02:31:41.867Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T02:32:17.945Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T02:32:48.034Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T02:44:31.722Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T02:54:50.931Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T02:55:21.026Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T03:12:24.817Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T03:12:54.907Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T03:30:53.209Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T03:31:23.291Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T03:31:53.468Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T03:47:25.758Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T03:47:55.800Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T03:48:25.897Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T03:56:08.509Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T04:12:17.304Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T04:12:47.395Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T04:13:17.483Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T04:22:38.644Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T04:38:40.905Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T04:39:11.015Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T04:55:28.825Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T05:09:11.819Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T05:09:41.919Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T05:26:58.310Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T05:27:28.404Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T05:39:08.517Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T05:39:38.617Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T05:51:52.085Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T05:53:27.621Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T05:53:57.714Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T05:57:16.526Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T06:13:17.217Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T06:13:47.306Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T06:30:27.483Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T06:47:13.686Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T06:47:43.787Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T06:58:08.662Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T06:58:38.759Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T06:59:18.359Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T07:16:16.874Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T07:16:46.978Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T07:33:30.693Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T07:34:00.771Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T07:37:21.460Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T07:54:42.090Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T07:55:12.201Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T07:59:10.082Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T07:59:40.185Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T08:00:51.906Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T08:17:34.328Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T08:18:04.415Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T08:33:57.191Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T08:34:27.281Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T08:45:34.637Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T08:58:52.824Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T08:59:22.937Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T09:16:40.709Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T09:17:10.806Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T09:34:42.249Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T09:35:12.347Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T09:49:50.218Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T09:51:11.692Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T09:51:41.770Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T10:08:10.505Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T10:24:20.289Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T10:24:50.405Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T10:25:20.503Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T10:25:50.596Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T10:43:53.717Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T10:44:23.810Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T10:44:53.908Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T10:45:24.002Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T10:45:54.098Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T10:46:24.184Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T10:46:54.269Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T10:47:24.375Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T10:47:54.466Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T10:48:24.573Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T11:04:21.667Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T11:04:51.760Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T11:05:21.841Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T11:05:51.934Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T11:06:22.034Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T11:06:52.130Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T11:07:22.240Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T11:24:16.123Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T11:24:46.209Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T11:25:16.273Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T11:41:29.887Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T11:44:16.706Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T11:44:46.811Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T12:00:15.865Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T12:15:43.861Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T12:16:14.001Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T12:32:06.924Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T12:32:44.826Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T12:33:14.910Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T12:48:48.207Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T12:49:18.286Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T12:55:54.753Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T13:12:18.656Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T13:12:48.746Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T13:29:43.902Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T13:30:14.000Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T13:30:44.723Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T13:46:26.251Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T13:46:56.353Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T14:04:33.096Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T14:05:03.185Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T14:21:45.850Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T14:22:15.916Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T14:38:17.605Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T14:55:02.083Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T14:55:32.179Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T15:11:16.644Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T15:11:46.881Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T15:12:16.988Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T15:29:56.789Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T15:30:26.879Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T15:46:21.525Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T16:02:27.254Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T16:02:57.354Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T16:18:58.079Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T16:19:28.173Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T16:35:35.879Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T16:36:05.973Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T16:43:26.866Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T16:59:15.091Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T16:59:45.184Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T17:16:11.183Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T17:16:41.272Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T17:34:21.753Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T17:49:58.638Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T17:50:28.713Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T18:07:36.580Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T18:08:06.653Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T18:23:44.305Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T18:24:14.397Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T18:40:08.605Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T18:40:38.695Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T18:44:29.647Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T19:01:49.430Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T19:02:19.522Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T19:18:42.289Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T19:19:12.374Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T19:19:42.470Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T19:20:12.573Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T19:20:42.663Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T19:21:12.755Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T19:21:42.849Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T19:22:12.950Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T19:22:43.041Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T19:23:13.133Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T19:23:43.218Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T19:24:13.319Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T19:24:43.417Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T19:25:13.504Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T19:25:43.586Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T19:26:13.680Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T19:26:43.782Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T19:27:13.860Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T19:27:43.938Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T19:28:14.016Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T19:28:44.102Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T19:29:14.191Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T19:29:44.277Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T19:30:14.367Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T19:30:44.461Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T19:31:14.562Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T19:31:44.649Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T19:32:14.750Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T19:32:44.838Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T19:33:14.932Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T19:45:05.407Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T19:45:35.497Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T19:57:27.472Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T19:57:57.571Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T20:14:20.560Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T20:14:50.657Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T20:32:35.912Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T20:46:10.500Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T20:46:40.598Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T21:02:52.337Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T21:18:22.072Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T21:18:52.253Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T21:34:53.174Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T21:35:23.280Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T21:47:32.240Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T21:52:59.951Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T21:53:30.038Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T22:10:55.697Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T22:20:04.329Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T22:20:34.419Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T22:21:27.801Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T22:26:26.228Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T22:26:56.309Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T22:33:06.353Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T22:33:36.461Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T22:41:12.827Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T22:48:15.813Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T22:48:45.889Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T23:05:35.619Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T23:06:05.715Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T23:22:06.959Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T23:22:37.053Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T23:40:03.733Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T23:40:33.840Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T23:49:23.562Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-24T23:49:53.654Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T00:05:57.341Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T00:11:57.160Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T00:12:27.245Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T00:13:15.062Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T00:14:18.336Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T00:14:48.417Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T00:17:02.183Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T00:18:16.304Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T00:18:46.390Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T00:19:57.449Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T00:20:27.545Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T00:22:23.655Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T00:25:24.792Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T00:25:54.890Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T00:26:42.556Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T00:34:59.873Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T00:35:29.959Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T00:37:07.485Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T00:43:54.413Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T00:44:24.509Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T00:50:24.709Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T00:50:54.806Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T01:08:07.718Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T01:15:48.529Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T01:16:18.631Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T01:16:52.251Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T01:17:22.350Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T01:30:53.576Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T01:36:04.126Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T01:36:34.225Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T01:37:58.428Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T01:38:28.514Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T01:39:08.054Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T01:42:14.199Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T01:42:44.289Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T01:44:08.367Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T01:44:45.066Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T01:45:15.160Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T01:46:09.232Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T01:46:50.428Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T01:47:20.525Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T01:48:34.795Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T01:49:04.898Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T01:50:31.202Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T01:51:23.270Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T01:51:53.362Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T02:06:08.942Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T02:06:55.528Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T02:07:25.625Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T02:08:01.894Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T02:08:31.992Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T02:14:08.622Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T02:14:38.711Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T02:15:35.946Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T02:19:22.714Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T02:19:52.814Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T02:20:47.108Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T02:21:24.502Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T02:21:54.585Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T02:22:49.175Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T02:23:19.270Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T02:23:57.816Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T02:24:38.653Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T02:25:08.760Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T02:27:02.223Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T02:27:33.411Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T02:28:03.500Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T02:28:42.598Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T02:29:48.231Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T02:30:18.325Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T02:31:04.433Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T02:32:31.460Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T02:33:01.549Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T02:33:39.533Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T02:34:09.625Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T02:36:50.077Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T02:39:05.042Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T02:39:35.135Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T02:40:11.631Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T02:41:08.976Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T02:41:39.065Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T02:45:43.970Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T02:46:14.051Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T02:51:43.179Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T02:52:13.273Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T02:52:43.369Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T02:53:13.464Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T02:53:43.553Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T02:54:13.641Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T02:54:43.728Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T02:55:13.817Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T02:55:43.903Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T02:56:13.995Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T02:56:44.085Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T02:57:14.173Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T02:57:44.282Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T02:58:14.371Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T02:58:44.458Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T02:59:14.546Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T02:59:44.634Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T03:00:14.724Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T03:00:44.809Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T03:01:14.897Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T03:01:44.988Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T03:02:15.088Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T03:02:45.182Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T03:03:15.273Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T03:03:45.351Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T03:04:15.442Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T03:04:45.533Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T03:05:15.620Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T03:05:45.715Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T03:06:15.798Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T03:06:45.892Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T03:07:15.978Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T03:07:46.071Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T03:08:16.167Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T03:08:46.261Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T03:09:16.353Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T03:09:46.452Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T03:10:16.535Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T03:10:46.633Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T03:11:16.723Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T03:11:46.816Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T03:12:16.909Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T03:12:47.002Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T03:13:17.085Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T03:13:47.188Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T03:14:17.284Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T03:14:47.380Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T03:15:17.476Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T03:15:47.571Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T03:16:17.672Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T03:16:47.757Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T03:17:17.857Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T03:17:47.954Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T03:18:18.042Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T03:18:48.136Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T03:19:18.224Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T03:19:48.324Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T03:20:18.416Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T03:20:48.508Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T03:21:18.590Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T03:21:48.688Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T03:22:18.780Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T03:22:48.882Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T03:23:18.978Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T03:23:49.059Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T03:24:19.163Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T03:24:49.265Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T03:25:19.351Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T03:25:49.444Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T03:26:19.539Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T03:26:49.634Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T03:27:19.725Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T03:27:49.811Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T03:28:19.899Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T03:28:49.984Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T03:29:20.066Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T03:29:50.163Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T03:30:20.257Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T03:30:50.350Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T03:31:20.439Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T03:31:50.532Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T03:32:20.616Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T03:32:50.709Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T03:33:20.799Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T03:33:50.880Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T03:34:20.975Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T03:34:51.062Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T03:35:21.152Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T03:35:51.251Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T03:36:21.333Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T03:36:51.424Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T03:37:21.515Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T03:37:51.614Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T03:38:21.706Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T03:38:51.803Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T03:39:21.894Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T03:39:51.984Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T03:40:22.074Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T03:40:52.167Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T03:41:22.253Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T03:41:52.332Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T03:42:22.425Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T03:42:52.503Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T03:43:22.592Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T03:43:52.650Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T03:44:22.747Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T03:44:52.804Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T03:45:22.903Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T03:45:52.965Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T03:46:23.057Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T03:46:53.136Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T03:47:23.230Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T03:47:53.326Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T03:48:23.415Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T03:48:53.504Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T03:49:23.592Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T03:49:53.686Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T03:50:23.783Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T03:50:53.896Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T03:51:23.974Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T03:52:03.995Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T03:52:34.100Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T03:55:01.968Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T03:55:32.061Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T03:57:29.442Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T04:10:42.953Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T04:11:13.054Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T04:28:56.976Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T04:29:27.092Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T04:46:10.068Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T04:52:26.946Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T04:52:57.043Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T05:10:11.029Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T05:10:41.132Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T05:11:11.230Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T05:28:00.229Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T05:45:12.186Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T05:45:42.292Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T05:53:46.901Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T06:10:20.780Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T06:10:50.891Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T06:26:35.697Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T06:27:05.810Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T06:27:35.898Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T06:28:05.990Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T06:28:36.089Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T06:44:29.711Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T06:44:59.804Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T06:45:29.896Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T06:45:59.981Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T06:46:30.074Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T06:47:00.180Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T06:47:30.272Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T06:48:00.364Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T06:48:30.464Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T06:49:00.558Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T06:54:24.333Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T06:54:54.420Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T06:55:24.510Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T06:55:54.603Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T06:56:24.696Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T06:56:54.802Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T06:57:24.900Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T06:57:54.997Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T07:13:42.967Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T07:14:13.059Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T07:31:05.360Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T07:41:45.786Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T07:42:15.879Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T07:43:58.134Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T07:44:28.233Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T07:46:19.275Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T07:47:44.406Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T07:48:14.493Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T07:49:50.904Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T07:54:14.265Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T07:54:44.355Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T07:55:58.568Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T08:02:21.732Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T08:02:51.812Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T08:03:22.196Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T08:03:52.298Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T08:12:27.080Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T08:17:31.753Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T08:18:01.851Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T08:27:49.100Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T08:28:19.156Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T08:41:13.269Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T08:42:52.832Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T08:43:22.923Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T08:44:05.588Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T08:49:37.958Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T08:50:08.057Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T08:51:40.849Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T08:52:10.954Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T08:52:41.047Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T08:53:32.315Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T08:55:15.468Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T08:55:45.555Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T09:01:16.396Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T09:16:23.441Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T09:16:53.524Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T09:17:23.611Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T09:33:07.779Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T09:39:32.144Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T09:40:02.235Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T09:40:32.343Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T09:56:46.727Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T09:57:16.833Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T10:14:42.540Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T10:15:12.647Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T10:32:00.999Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T10:37:22.267Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T10:37:52.356Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T10:54:58.933Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T10:55:29.035Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T11:00:43.013Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T11:01:22.022Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T11:01:52.113Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T11:18:14.345Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T11:18:44.401Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T11:35:00.792Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T11:50:44.429Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T11:51:14.510Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T12:02:56.465Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T12:03:26.608Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T12:03:56.706Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T12:19:37.011Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T12:20:07.092Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T12:23:23.684Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T12:23:53.799Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T12:41:06.886Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T12:41:36.950Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T12:42:07.035Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T12:58:10.081Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T12:58:44.491Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T12:59:14.584Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T13:14:58.732Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T13:15:28.808Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T13:32:02.084Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T13:32:32.163Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T13:35:34.870Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T13:39:27.544Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T13:39:57.644Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T13:40:38.578Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T13:44:01.422Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T13:44:31.515Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T13:47:45.673Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T13:48:15.780Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T14:05:35.485Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T14:22:27.191Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T14:22:57.289Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T14:39:14.946Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T14:39:45.034Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T14:57:00.951Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T15:13:31.752Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T15:14:01.846Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T15:30:09.557Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T15:30:39.651Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T15:46:49.179Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T16:02:44.775Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T16:03:14.871Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T16:19:43.606Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T16:20:13.693Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T16:35:48.135Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T16:41:32.767Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T16:42:02.852Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T16:57:44.779Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T17:14:47.456Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T17:15:17.636Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T17:15:47.731Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T17:33:18.586Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T17:50:38.259Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T17:51:08.347Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T18:07:50.379Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T18:24:06.985Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T18:24:37.080Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T18:25:07.169Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T18:42:16.390Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T18:58:40.206Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T18:59:10.300Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T19:14:43.317Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T19:15:13.381Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T19:15:43.478Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T19:16:13.565Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T19:16:43.656Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T19:17:13.752Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T19:17:43.846Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T19:18:13.938Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T19:18:44.027Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T19:19:14.120Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T19:19:44.206Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T19:20:14.290Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T19:20:44.386Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T19:21:14.478Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T19:21:44.558Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T19:22:14.652Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T19:22:44.747Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T19:23:14.832Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T19:23:44.924Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T19:24:15.022Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T19:24:45.112Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T19:25:15.206Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T19:25:45.294Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T19:26:15.392Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T19:26:45.479Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T19:27:15.576Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T19:27:45.669Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T19:28:15.767Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T19:28:45.848Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T19:29:15.945Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T19:29:46.045Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T19:43:25.297Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T19:59:18.147Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T19:59:48.251Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T20:15:33.927Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T20:16:04.017Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T20:33:33.174Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T20:36:21.895Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T20:36:51.984Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T20:44:11.776Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T20:44:41.890Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T21:01:44.749Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T21:18:32.384Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T21:19:02.479Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T21:35:06.802Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T21:35:36.904Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T21:45:18.598Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T22:01:35.367Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T22:02:05.455Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T22:15:38.897Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T22:16:08.962Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T22:16:46.570Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T22:17:16.670Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T22:20:54.774Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T22:22:33.503Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T22:23:03.598Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T22:24:04.626Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T22:25:06.422Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T22:25:36.505Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T22:42:38.972Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T22:43:09.095Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T22:46:15.665Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T22:46:45.753Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T23:02:45.647Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T23:15:15.385Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T23:15:45.469Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T23:33:05.189Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T23:33:35.285Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T23:47:23.209Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T23:51:08.217Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-25T23:51:38.311Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T00:03:00.406Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T00:03:30.498Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T00:04:56.647Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T00:21:53.505Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T00:22:23.584Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T00:38:27.026Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T00:38:57.121Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T00:48:26.954Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T01:04:43.499Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T01:05:13.643Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T01:18:02.586Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T01:18:32.669Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T01:19:02.760Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T01:35:46.700Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T01:43:05.636Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T01:43:35.725Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T01:49:19.065Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T01:49:49.158Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T01:59:36.880Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T02:17:56.789Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T02:18:26.888Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T02:22:07.192Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T02:22:37.278Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T02:40:26.061Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T02:50:07.658Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T02:50:37.742Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T03:06:18.984Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T03:06:49.081Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T03:22:36.741Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T03:23:06.824Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T03:39:28.509Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T03:51:13.339Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T03:51:43.435Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T04:07:42.501Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T04:24:35.522Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T04:25:05.621Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T04:41:13.102Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T04:41:43.014Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T04:49:38.983Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T04:50:09.079Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T04:52:32.889Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T05:08:07.724Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T05:08:37.811Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T05:14:27.800Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T05:15:02.438Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T05:15:32.543Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T05:18:34.334Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T05:19:04.431Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T05:21:13.612Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T05:24:02.769Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T05:24:32.880Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T05:25:06.326Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T05:26:11.228Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T05:26:41.315Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T05:27:24.019Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T05:29:51.286Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T05:30:21.384Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T05:31:10.767Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T05:31:40.851Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T05:35:01.204Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T05:46:03.057Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T05:46:33.127Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T05:47:03.216Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T05:47:33.325Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T05:48:03.421Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T05:48:33.517Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T05:49:03.598Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T05:49:33.700Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T05:50:30.152Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T05:51:00.243Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T05:53:25.284Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T05:53:55.362Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T05:56:53.796Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T06:10:10.539Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T06:10:40.609Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T06:11:10.698Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T06:11:40.789Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T06:12:10.875Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T06:12:40.964Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T06:13:11.073Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T06:13:41.174Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T06:14:11.262Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T06:14:41.361Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T06:15:11.451Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T06:15:41.549Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T06:18:22.277Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T06:18:52.365Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T06:19:22.423Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T06:28:31.801Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T06:29:01.885Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T06:29:31.976Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T06:32:22.337Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T06:32:52.427Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T06:33:22.516Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T06:33:52.607Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T06:34:22.696Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T06:34:52.789Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T06:35:22.880Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T06:35:52.974Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T06:39:13.175Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T06:54:14.430Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T06:54:44.523Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T06:59:02.114Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T06:59:32.196Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T07:14:37.138Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T07:15:07.247Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T07:28:35.606Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T07:44:29.737Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T07:44:59.811Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T07:55:33.709Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T08:01:49.885Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T08:02:19.990Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T08:18:17.401Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T08:18:47.484Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T08:34:27.185Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T08:34:57.280Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T08:50:30.253Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T08:56:23.262Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T08:56:53.344Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T09:12:41.419Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T09:13:11.504Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T09:30:12.717Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T09:46:09.988Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T09:46:40.058Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T10:02:47.697Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T10:03:17.806Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T10:20:52.787Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T10:21:22.882Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T10:37:08.436Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T10:55:27.468Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T10:55:57.556Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T11:12:45.574Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T11:28:22.092Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T11:28:52.193Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T11:45:52.985Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T11:46:23.088Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T12:02:36.049Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T12:18:51.850Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T12:19:21.947Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T12:35:02.963Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T12:52:16.105Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T12:52:46.207Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T13:02:52.747Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T13:18:50.911Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T13:19:20.979Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T13:19:51.068Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T13:35:42.728Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T13:51:14.624Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T13:51:44.721Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T13:52:14.815Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T14:09:39.529Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T14:25:48.205Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T14:26:18.302Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T14:42:24.881Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T14:42:54.970Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T15:10:16.032Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T15:10:46.125Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T15:26:49.071Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T15:27:19.151Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T15:42:53.918Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T15:58:40.653Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T15:59:10.747Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T16:13:25.929Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T16:13:56.029Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T16:31:32.123Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T16:32:02.217Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T16:46:08.905Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T17:03:58.711Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T17:04:28.819Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T17:20:24.717Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T17:20:54.817Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T17:36:34.650Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T17:52:33.554Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T17:53:03.651Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T18:10:39.609Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T18:26:25.133Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T18:26:55.231Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T18:45:19.052Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T19:03:12.653Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T19:03:42.759Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T19:20:20.672Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T19:20:50.760Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T19:21:20.855Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T19:21:50.952Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T19:22:21.044Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T19:22:51.140Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T19:23:21.228Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T19:23:51.323Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T19:24:21.413Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T19:24:51.506Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T19:25:21.602Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T19:25:51.700Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T19:26:21.792Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T19:26:51.885Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T19:27:21.973Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T19:27:52.082Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T19:28:22.173Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T19:28:52.279Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T19:29:22.369Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T19:29:52.476Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T19:30:22.567Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T19:30:52.660Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T19:31:22.743Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T19:31:52.829Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T19:32:22.924Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T19:32:53.018Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T19:33:23.118Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T19:33:53.204Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T19:34:23.291Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T19:34:53.389Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T19:35:23.477Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T19:47:12.278Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T20:03:19.004Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T20:03:49.102Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T20:19:25.760Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T20:19:55.839Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T20:36:35.373Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T20:47:48.291Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T20:48:18.381Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T21:03:55.973Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T21:04:26.065Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T21:04:56.157Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T21:15:39.841Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T21:16:09.905Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T21:31:44.191Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T21:48:02.140Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T21:48:32.239Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T22:04:57.117Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T22:18:46.557Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T22:19:16.641Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T22:19:53.572Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T22:20:23.665Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T22:27:18.165Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T22:27:48.259Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T22:43:37.819Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T22:49:04.549Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T22:49:34.639Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T23:06:24.344Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T23:23:46.072Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T23:24:16.168Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T23:28:06.299Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T23:28:36.381Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T23:29:06.482Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T23:45:57.071Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T23:49:59.797Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-26T23:50:29.886Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T00:03:52.420Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T00:19:35.662Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T00:20:05.793Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T00:20:35.898Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T00:35:11.028Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T00:36:43.294Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T00:37:13.402Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T00:37:49.555Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T00:45:53.918Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T00:46:24.003Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T00:51:10.719Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T00:51:40.791Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T01:08:02.557Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T01:23:50.273Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T01:24:20.348Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T01:30:37.668Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T01:31:07.752Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T01:47:41.772Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T01:51:59.739Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T01:52:29.829Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T02:08:58.868Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T02:09:28.948Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T02:25:33.519Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T02:26:03.625Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T02:44:09.488Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T02:53:03.329Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T02:53:33.422Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T03:10:38.042Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T03:26:39.738Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T03:27:09.818Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T03:42:57.541Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T03:43:27.655Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T03:54:24.477Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T04:10:00.967Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T04:10:31.070Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T04:26:09.666Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T04:26:39.749Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T04:42:33.466Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T04:54:59.361Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T04:55:29.453Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T05:09:54.664Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T05:10:24.747Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T05:10:54.854Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T05:27:35.326Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T05:28:28.136Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T05:28:58.231Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T05:38:34.721Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T05:46:52.660Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T05:47:22.757Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T05:56:18.445Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T06:13:24.153Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T06:13:54.239Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T06:14:24.334Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T06:14:54.426Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T06:15:24.511Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T06:32:58.270Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T06:33:28.364Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T06:33:58.459Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T06:34:28.549Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T06:34:58.652Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T06:35:28.740Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T06:35:58.845Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T06:36:28.938Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T06:36:59.024Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T06:37:29.109Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T06:37:59.195Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T06:53:44.626Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T06:54:14.724Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T06:54:44.823Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T06:55:14.913Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T06:55:45.005Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T06:56:15.088Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T06:56:45.153Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T06:57:15.208Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T07:13:30.737Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T07:14:00.785Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T07:32:03.409Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T07:32:33.470Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T07:48:02.287Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T08:04:33.054Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T08:05:03.096Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T08:22:56.006Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T08:23:26.077Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T08:40:55.822Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T08:56:55.583Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T08:57:25.633Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T09:14:11.205Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T09:14:41.255Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T09:15:11.300Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T09:31:59.181Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T09:47:35.065Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T09:48:05.135Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T10:04:03.053Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T10:04:33.097Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T10:20:09.790Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T10:20:39.842Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T10:37:09.635Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T10:39:10.971Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T10:39:41.027Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T10:41:12.769Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T10:50:57.716Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T10:51:27.775Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T10:58:47.386Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T11:01:20.684Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T11:01:50.742Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T11:04:14.256Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T11:04:44.313Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T11:21:08.288Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T11:21:38.343Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T11:34:17.566Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T11:37:08.886Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T11:37:38.927Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T11:44:49.423Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T11:45:20.806Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T11:45:50.857Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T11:47:47.800Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T11:48:17.853Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T11:55:39.062Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T12:06:19.594Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T12:06:49.652Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T12:09:19.678Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T12:24:10.233Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T12:24:40.305Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T12:40:45.092Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T12:41:15.170Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T12:51:42.476Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T12:52:12.571Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T13:07:50.861Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T13:12:03.699Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T13:12:33.788Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T13:20:26.465Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T13:23:59.153Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T13:24:29.247Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T13:40:52.610Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T13:41:23.306Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T13:41:53.375Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T13:58:57.786Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T13:59:27.868Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T14:01:54.500Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T14:19:30.671Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T14:20:00.787Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T14:29:02.458Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T14:29:32.541Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T14:36:26.435Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T14:52:33.868Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T14:53:03.970Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T15:08:43.750Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T15:09:13.849Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T15:11:30.995Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T15:12:01.088Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T15:27:28.901Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T15:27:58.999Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T15:42:05.926Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T15:58:59.683Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T15:59:29.769Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T16:15:10.297Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T16:15:40.410Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T16:32:47.223Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T16:48:17.190Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T16:48:47.284Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T17:04:44.217Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T17:05:14.320Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T17:21:08.072Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T17:21:38.172Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T17:37:28.085Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T17:55:39.970Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T17:56:10.048Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T18:12:27.728Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T18:28:20.528Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T18:28:50.578Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T18:45:03.591Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T18:45:33.645Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T19:01:04.619Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T19:01:34.666Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T19:17:24.360Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T19:17:54.413Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T19:18:24.465Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T19:18:54.514Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T19:19:24.572Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T19:19:54.633Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T19:20:24.699Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T19:20:54.761Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T19:21:24.812Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T19:21:54.869Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T19:22:24.925Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T19:22:54.976Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T19:23:25.038Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T19:23:55.091Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T19:24:25.157Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T19:24:55.227Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T19:25:25.280Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T19:25:55.344Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T19:26:25.399Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T19:26:55.457Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T19:27:25.516Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T19:27:55.572Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T19:28:25.633Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T19:28:55.686Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T19:29:25.752Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T19:29:55.805Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T19:30:25.854Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T19:30:55.915Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T19:31:25.983Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T19:31:56.036Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T19:40:50.172Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T19:41:20.242Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T19:58:03.178Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T20:13:30.917Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T20:14:00.977Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T20:29:40.644Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T20:30:10.713Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T20:46:22.624Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T20:46:52.695Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T21:03:15.440Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T21:20:15.214Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T21:20:45.271Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T21:36:45.785Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T21:37:15.823Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T21:42:02.728Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T21:54:29.488Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T21:54:59.569Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T22:10:40.661Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T22:11:10.714Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T22:27:17.682Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T22:42:54.370Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T22:43:24.523Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T22:59:12.376Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T23:16:00.013Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T23:16:30.051Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T23:33:07.770Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T23:33:37.807Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T23:44:00.583Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-27T23:44:30.652Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T00:02:05.345Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T00:18:39.983Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T00:19:10.037Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T00:35:12.491Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T00:35:42.575Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T00:45:07.459Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T00:49:35.626Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T00:50:05.685Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T01:06:29.654Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T01:06:59.697Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T01:23:10.701Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T01:23:40.757Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T01:40:34.476Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T01:41:59.701Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T01:42:29.774Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T01:46:08.643Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T02:02:05.795Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T02:02:35.843Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T02:05:09.024Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T02:05:57.711Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T02:06:27.764Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T02:08:34.026Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T02:09:04.075Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T02:11:55.023Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T02:12:43.968Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T02:13:14.047Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T02:14:37.040Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T02:16:44.121Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T02:17:14.172Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T02:17:46.236Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T02:20:44.269Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T02:21:14.323Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T02:33:26.246Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T02:33:56.304Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T02:34:49.825Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T02:46:54.894Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T02:47:24.960Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T02:55:59.598Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T03:12:50.650Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T03:13:20.728Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T03:28:25.081Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T03:28:55.140Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T03:39:19.891Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T03:39:49.938Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T03:48:13.656Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T04:04:35.388Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T04:05:05.452Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T04:06:29.746Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T04:19:39.383Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T04:20:09.410Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T04:35:02.083Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T04:35:32.136Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T04:36:02.191Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T04:46:47.789Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T04:48:29.910Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T04:48:59.963Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T05:06:21.947Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T05:06:52.021Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T05:22:43.678Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T05:23:13.730Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T05:25:17.106Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T05:41:06.158Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T05:41:36.228Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T05:44:29.609Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T05:45:14.935Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T05:45:44.998Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T05:47:46.191Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T05:48:16.245Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T05:49:56.648Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T05:54:19.126Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T05:54:49.180Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T06:03:30.586Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T06:04:00.641Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T06:04:30.692Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T06:05:00.743Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T06:05:30.799Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T06:06:00.849Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T06:06:30.911Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T06:07:00.968Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T06:07:33.330Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T06:08:03.384Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T06:08:33.452Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T06:09:03.503Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T06:09:33.565Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T06:10:03.625Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T06:10:33.684Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T06:11:03.738Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T06:11:33.790Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T06:12:03.834Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T06:13:36.861Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T06:14:06.917Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T06:19:20.191Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T06:19:50.257Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T06:20:20.321Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T06:20:50.385Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T06:24:23.718Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T06:24:53.770Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T06:28:53.941Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T06:29:24.043Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T06:29:54.108Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T06:43:54.802Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T06:48:20.457Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T06:48:50.513Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T06:50:40.896Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T06:51:10.960Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T06:52:53.350Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T06:53:52.760Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T06:54:22.808Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T07:03:31.116Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T07:06:25.025Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T07:06:55.098Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T07:17:27.952Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T07:17:58.025Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T07:21:11.367Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T07:21:41.442Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T07:23:49.439Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T07:30:48.237Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T07:31:18.333Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T07:33:39.212Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T07:35:12.826Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T07:35:43.020Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T07:36:34.370Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T07:37:04.454Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T07:49:10.525Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T07:49:40.623Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T08:05:30.861Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T08:08:25.745Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T08:08:55.833Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T08:16:10.041Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T08:16:40.135Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T08:32:56.040Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T08:33:27.555Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T08:49:07.916Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T08:49:38.012Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T09:05:29.731Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T09:05:59.820Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T09:15:43.742Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T09:16:13.828Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T09:17:29.627Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T09:17:59.720Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T09:19:27.819Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T09:25:49.330Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T09:26:19.426Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T09:27:28.025Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T09:30:54.285Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T09:31:24.377Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T09:33:14.183Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T09:33:44.279Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T09:34:42.204Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T09:50:18.124Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T09:50:48.214Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T09:51:18.297Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T09:51:48.385Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T09:52:18.482Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T09:52:48.572Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T10:09:14.499Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T10:09:44.590Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T10:25:25.438Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T10:25:55.526Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T10:33:54.260Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T10:49:33.877Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T10:50:03.968Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T11:08:12.525Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T11:08:42.616Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T11:09:12.715Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T11:09:42.801Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T11:10:12.894Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T11:10:42.979Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T11:26:46.549Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T11:27:16.645Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T11:43:40.536Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T11:44:10.631Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T11:47:31.107Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T11:52:03.660Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T11:52:33.755Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T11:54:25.055Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T11:59:54.868Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T12:00:24.958Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T12:03:03.580Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T12:03:33.669Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T12:04:05.688Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T12:06:23.719Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T12:06:53.781Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T12:09:54.826Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T12:10:24.903Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T12:11:41.463Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T12:12:11.531Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T12:12:41.623Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T12:13:11.717Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T12:13:41.820Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T12:14:11.906Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T12:14:41.994Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T12:15:12.092Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T12:15:42.183Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T12:16:28.772Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T12:16:58.909Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T12:28:42.142Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T12:29:12.245Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T12:33:42.608Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T12:37:21.107Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T12:37:51.203Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T12:46:09.103Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T12:46:39.202Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T12:47:09.300Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T12:49:51.266Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T12:52:22.932Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T12:52:53.040Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T12:59:47.434Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T13:00:17.536Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T13:02:26.710Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T13:19:35.083Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T13:20:05.166Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T13:33:35.735Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T13:36:56.542Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T13:37:26.640Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T13:38:18.621Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T13:38:48.710Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T13:55:11.998Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T14:11:00.082Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T14:11:30.160Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T14:20:37.004Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T14:36:29.018Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T14:36:59.122Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T14:52:36.827Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T15:10:43.669Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T15:11:13.763Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T15:11:43.851Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T15:27:25.542Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T15:34:29.513Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T15:34:59.603Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T15:52:25.147Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T16:09:39.071Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T16:10:09.158Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T16:10:39.245Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T16:26:46.180Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T16:27:16.280Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T16:43:02.150Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T16:59:13.715Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T16:59:43.794Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T17:16:13.714Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T17:16:43.818Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T17:32:47.270Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T17:48:44.048Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T17:49:14.141Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T18:06:34.772Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T18:22:25.675Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T18:22:56.056Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T18:23:26.148Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T18:39:40.729Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T18:55:15.453Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T18:55:45.551Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T19:12:54.261Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T19:13:24.341Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T19:13:54.451Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T19:14:24.543Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T19:14:54.617Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T19:15:24.703Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T19:15:54.804Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T19:16:24.893Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T19:16:55.002Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T19:17:25.099Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T19:17:55.188Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T19:18:25.277Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T19:18:55.363Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T19:19:25.450Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T19:19:55.540Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T19:20:25.626Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T19:20:55.709Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T19:21:25.808Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T19:21:55.897Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T19:22:25.981Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T19:22:56.067Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T19:23:26.157Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T19:23:56.249Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T19:24:26.332Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T19:24:56.419Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T19:25:26.514Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T19:25:56.608Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T19:26:26.715Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T19:26:56.807Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T19:27:26.900Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T19:32:40.303Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T19:50:49.685Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T19:51:19.784Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T20:07:21.548Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T20:07:51.636Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T20:25:06.501Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T20:25:36.603Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T20:42:55.065Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T20:59:03.662Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T20:59:33.769Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T21:15:06.448Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T21:31:12.317Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T21:31:42.453Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T21:33:37.453Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T21:34:07.563Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T21:35:20.552Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T21:35:50.645Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T21:36:20.735Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T21:36:50.848Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T21:37:20.943Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T21:37:51.021Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T21:38:21.113Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T21:38:51.202Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T21:39:21.303Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T21:43:51.364Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T21:44:21.484Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T21:44:51.607Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T21:45:21.705Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T21:45:51.784Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T21:46:21.885Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T21:46:51.979Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T21:47:22.075Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T21:47:52.173Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T21:48:22.265Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T21:48:52.357Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T21:49:22.456Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T21:49:52.554Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T21:50:22.640Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T21:50:52.733Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T21:51:22.825Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T21:51:52.917Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T21:52:23.004Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T21:52:53.095Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T21:53:23.185Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T21:53:53.280Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T21:54:23.365Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T21:54:53.460Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T21:55:23.550Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T21:55:53.636Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T21:56:23.734Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T21:56:53.828Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T21:57:23.931Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T21:57:54.032Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T21:58:24.126Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T21:58:54.217Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T21:59:24.306Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T21:59:54.399Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T22:00:24.502Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T22:00:54.598Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T22:01:24.690Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T22:01:54.777Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T22:02:24.868Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T22:02:54.960Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T22:03:25.048Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T22:03:55.145Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T22:04:25.241Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T22:04:55.330Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T22:05:25.419Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T22:05:55.514Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T22:06:25.610Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T22:06:55.700Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T22:07:25.799Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T22:07:55.888Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T22:08:25.895Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T22:08:55.986Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T22:09:26.074Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T22:09:56.173Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T22:10:26.260Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T22:10:56.360Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T22:11:26.457Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T22:11:56.551Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T22:12:26.642Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T22:12:56.745Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T22:13:26.849Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T22:13:56.945Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T22:14:27.046Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T22:14:57.134Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T22:15:27.197Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T22:15:57.319Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T22:16:27.410Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T22:16:57.502Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T22:17:27.588Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T22:17:57.673Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T22:18:27.763Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T22:18:57.850Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T22:19:27.936Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T22:19:58.024Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T22:20:28.110Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T22:20:58.191Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T22:21:28.275Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T22:21:58.359Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T22:22:28.483Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T22:22:58.574Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T22:23:28.666Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T22:23:58.752Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T22:24:28.854Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T22:24:58.949Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T22:25:29.042Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T22:25:59.133Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T22:26:29.226Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T22:26:59.317Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T22:27:29.404Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T22:27:59.486Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T22:28:29.575Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T22:28:59.667Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T22:29:29.749Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T22:29:59.835Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T22:30:29.931Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T22:31:00.022Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T22:31:30.106Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T22:32:00.199Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T22:32:30.287Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T22:33:00.385Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T22:33:30.460Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T22:34:00.549Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T22:34:30.704Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T22:35:00.787Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T22:35:30.885Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T22:36:00.977Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T22:36:31.066Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T22:37:01.157Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T22:37:31.253Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T22:38:01.345Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T22:38:31.436Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T22:39:01.527Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T22:39:31.621Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T22:40:01.712Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T22:40:31.807Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T22:41:01.891Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T22:41:32.010Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T22:42:02.095Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T22:42:32.216Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T22:43:02.311Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T22:43:32.400Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T22:44:02.519Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T22:44:32.606Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T22:45:02.696Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T22:45:32.781Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T22:46:02.874Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T22:46:32.956Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T22:47:03.043Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T22:47:33.132Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T22:48:03.229Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T22:48:33.317Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T22:49:03.412Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T22:49:33.495Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T22:50:03.593Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T22:50:33.688Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T22:51:03.773Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T22:51:33.878Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T22:52:03.966Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T22:52:34.061Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T22:53:04.153Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T22:53:34.247Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T22:54:04.324Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T22:54:34.423Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T22:55:04.514Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T22:55:34.598Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T22:56:04.686Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T22:56:34.784Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T22:57:04.869Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T22:57:34.963Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T22:58:05.052Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T22:58:35.155Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T22:59:05.251Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T22:59:35.351Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T23:00:05.438Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T23:00:35.531Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T23:01:05.617Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T23:01:35.714Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T23:02:05.809Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T23:02:35.904Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T23:03:06.000Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T23:03:36.090Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T23:04:06.181Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T23:04:36.269Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T23:05:06.361Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T23:05:36.455Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T23:06:06.550Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T23:06:36.644Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T23:07:06.740Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T23:07:36.817Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T23:08:06.911Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T23:08:37.006Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T23:09:07.093Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T23:09:37.182Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T23:10:07.271Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T23:10:37.357Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T23:11:07.459Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T23:11:37.555Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T23:12:07.637Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T23:12:37.731Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T23:13:07.839Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T23:13:37.941Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T23:14:08.033Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T23:14:38.126Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T23:15:08.218Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T23:15:38.312Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T23:16:08.403Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T23:16:38.488Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T23:17:08.599Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T23:17:38.689Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T23:18:08.787Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T23:18:38.879Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T23:19:08.975Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T23:19:39.065Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T23:20:09.169Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T23:20:39.257Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T23:21:09.336Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T23:21:39.422Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T23:22:09.518Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T23:22:39.607Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T23:23:09.687Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T23:23:39.773Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T23:24:09.831Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T23:24:39.912Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T23:25:09.988Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T23:25:40.074Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T23:26:10.176Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T23:26:40.268Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T23:27:10.358Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T23:27:40.461Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T23:28:10.558Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T23:28:40.646Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T23:29:10.735Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T23:29:40.827Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T23:30:10.906Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T23:30:40.999Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T23:31:11.107Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T23:31:41.193Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T23:32:11.281Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T23:32:41.365Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T23:33:11.460Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T23:33:41.557Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T23:34:11.789Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T23:34:41.877Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T23:35:11.969Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T23:35:42.055Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T23:36:12.140Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T23:36:42.235Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T23:37:12.326Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T23:37:42.429Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T23:38:12.514Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T23:38:42.606Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T23:39:12.694Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T23:39:42.785Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T23:40:12.893Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T23:40:42.977Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T23:41:13.069Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T23:41:43.162Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T23:42:13.244Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T23:42:43.338Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T23:43:13.431Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T23:43:43.519Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T23:44:13.605Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T23:44:43.695Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T23:45:13.778Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T23:45:43.883Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T23:46:13.980Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T23:46:44.069Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T23:47:14.164Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T23:47:44.251Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T23:48:14.344Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T23:48:44.439Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T23:49:14.525Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T23:49:44.603Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T23:50:14.701Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T23:50:44.809Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T23:51:14.912Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T23:51:45.005Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T23:52:15.104Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T23:52:45.206Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T23:53:15.303Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T23:53:45.387Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T23:54:15.478Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T23:54:45.572Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T23:55:15.677Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T23:55:45.774Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T23:56:15.870Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T23:56:45.960Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T23:57:16.054Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T23:57:46.137Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T23:58:16.234Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T23:58:46.326Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T23:59:16.416Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-28T23:59:46.502Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T00:00:16.605Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T00:00:46.696Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T00:01:16.795Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T00:01:46.891Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T00:02:16.972Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T00:02:47.065Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T00:03:17.159Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T00:03:47.247Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T00:04:17.348Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T00:04:47.447Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T00:05:17.548Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T00:05:47.644Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T00:06:17.738Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T00:06:47.828Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T00:07:17.913Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T00:07:47.998Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T00:08:18.100Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T00:08:48.206Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T00:09:18.300Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T00:09:48.451Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T00:10:18.572Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T00:10:48.660Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T00:11:18.747Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T00:11:48.839Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T00:12:18.951Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T00:12:49.052Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T00:13:19.154Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T00:13:49.252Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T00:14:19.338Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T00:14:49.445Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T00:15:19.568Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T00:15:49.654Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T00:16:19.745Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T00:16:49.835Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T00:17:19.919Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T00:17:50.018Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T00:18:20.115Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T00:18:50.216Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T00:19:20.324Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T00:19:50.441Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T00:20:20.539Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T00:20:50.634Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T00:21:20.747Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T00:21:50.847Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T00:22:20.991Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T00:22:51.096Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T00:23:21.188Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T00:23:51.276Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T00:24:21.368Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T00:24:51.455Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T00:25:21.549Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T00:25:51.645Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T00:26:21.729Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T00:26:51.824Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T00:27:21.917Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T00:27:52.013Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T00:28:22.118Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T00:28:52.213Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T00:29:22.312Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T00:29:52.406Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T00:30:22.501Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T00:30:52.597Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T00:31:22.684Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T00:31:52.781Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T00:32:22.879Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T00:32:52.968Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T00:33:23.058Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T00:33:53.142Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T00:34:23.241Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T00:34:53.357Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T00:35:23.455Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T00:35:53.561Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T00:36:23.660Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T00:36:53.741Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T00:37:23.836Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T00:37:53.940Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T00:38:24.027Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T00:38:54.126Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T00:39:24.243Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T00:39:54.348Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T00:40:24.463Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T00:40:54.552Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T00:41:24.640Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T00:41:54.736Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T00:42:24.833Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T00:42:54.954Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T00:43:25.066Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T00:43:55.186Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T00:44:25.282Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T00:44:55.364Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T00:45:25.492Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T00:45:55.602Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T00:46:25.740Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T00:46:55.846Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T00:47:25.944Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T00:47:56.060Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T00:48:26.159Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T00:48:56.294Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T00:49:26.407Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T00:49:56.593Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "9ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T00:50:26.686Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T00:50:56.772Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T00:51:26.872Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T00:51:56.966Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T00:52:27.070Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T00:52:57.216Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T00:53:27.312Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T00:53:57.407Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T00:54:27.497Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T00:54:57.646Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T00:55:27.745Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T00:55:57.841Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T00:56:27.970Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T00:56:58.073Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T00:57:28.170Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T00:57:58.247Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T00:58:28.337Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T00:58:58.444Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T00:59:28.540Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T00:59:58.636Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T01:00:28.724Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T01:00:58.791Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T01:01:28.952Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T01:01:59.071Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T01:02:29.240Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T01:02:59.337Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T01:03:29.446Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T01:03:59.536Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T01:04:29.663Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T01:04:59.770Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T01:05:29.884Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T01:06:00.002Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T01:06:30.121Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T01:07:00.256Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T01:07:30.370Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T01:08:00.478Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T01:08:30.607Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T01:09:00.746Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T01:09:30.888Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T01:10:01.040Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T01:10:31.295Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T01:11:01.468Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T01:11:31.682Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T01:12:01.876Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T01:12:31.992Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T01:13:02.229Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T01:13:32.426Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T01:14:02.579Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T01:14:32.755Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T01:15:02.874Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T01:15:32.980Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T01:16:03.093Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T01:16:33.208Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T01:17:03.297Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T01:17:33.388Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T01:18:03.497Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T01:18:33.616Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T01:19:03.714Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T01:19:33.824Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T01:20:03.933Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T01:20:34.112Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "10ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T01:21:04.238Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T01:21:34.341Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T01:22:04.511Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T01:22:34.625Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T01:23:04.757Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T01:23:34.893Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T01:24:05.044Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T01:24:35.143Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T01:25:05.293Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "6ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T01:25:35.444Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T01:26:05.554Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T01:26:35.704Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T01:27:05.907Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T01:27:36.016Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T01:28:06.148Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T01:28:36.285Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T01:29:06.394Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T01:29:36.502Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T01:30:06.612Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T01:30:36.716Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T01:31:06.851Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T01:31:36.960Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T01:32:07.077Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T01:32:37.194Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T01:33:07.290Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T01:33:37.381Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T01:34:07.481Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T01:34:37.599Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T01:35:07.754Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T01:35:37.927Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T01:36:08.068Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T01:36:38.202Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T01:37:08.318Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T01:37:38.457Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T01:38:08.583Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T01:38:38.682Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T01:39:08.771Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T01:39:38.860Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T01:40:08.986Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T01:40:39.079Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T01:41:09.210Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T01:41:39.301Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T01:42:09.424Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T01:42:39.519Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T01:43:09.628Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T01:43:39.723Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T01:44:09.822Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T01:44:39.914Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T01:45:10.032Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "12ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T01:45:40.130Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T01:46:10.227Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T01:46:40.325Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T01:47:10.399Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T01:47:40.481Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T01:48:10.541Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T01:48:40.635Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T01:49:10.732Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T01:49:40.824Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T01:50:10.914Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T01:50:41.016Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T01:51:11.098Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T01:51:41.186Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T01:52:11.279Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T01:52:41.362Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T01:53:11.460Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T01:53:41.551Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T01:54:11.644Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T01:54:41.732Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T01:55:11.821Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T01:55:41.906Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T01:56:11.994Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T01:56:42.096Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T01:57:12.197Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T01:57:42.316Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T01:58:12.425Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T01:58:42.515Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T01:59:12.602Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T01:59:42.704Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T02:00:12.799Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T02:00:42.891Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T02:01:12.985Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T02:01:43.074Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T02:02:13.163Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T02:02:43.261Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T02:03:13.353Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T02:03:43.446Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T02:04:13.534Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T02:04:43.615Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T02:05:13.700Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T02:05:43.789Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T02:06:13.885Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T02:06:43.971Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T02:07:14.062Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T02:07:44.158Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T02:08:14.240Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T02:08:44.328Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T02:09:14.412Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T02:09:44.496Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T02:10:14.580Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T02:10:44.675Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T02:11:14.763Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T02:11:44.849Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T02:12:14.952Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T02:12:45.032Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T02:13:15.116Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T02:13:45.216Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T02:14:15.301Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T02:14:45.392Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T02:15:15.486Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T02:15:45.584Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T02:16:15.673Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T02:16:45.766Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T02:17:15.863Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T02:17:45.954Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T02:18:16.035Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T02:18:46.118Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T02:19:16.217Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T02:19:46.297Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T02:20:16.391Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T02:20:46.484Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T02:21:16.576Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T02:21:46.665Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T02:22:16.767Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T02:22:46.851Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T02:23:16.949Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T02:23:47.037Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T02:24:17.126Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T02:24:47.214Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T02:25:17.295Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T02:25:47.389Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T02:26:17.497Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T02:26:47.593Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T02:27:17.690Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T02:27:47.788Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T02:28:17.884Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T02:28:47.984Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T02:29:18.072Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T02:29:48.172Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T02:30:18.262Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T02:30:48.349Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T02:31:18.447Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T02:31:48.551Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T02:32:18.642Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T02:32:48.735Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T02:33:18.787Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T02:33:48.876Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T02:34:18.968Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T02:34:49.069Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T02:35:19.180Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T02:35:49.277Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T02:36:19.375Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T02:36:49.488Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T02:37:19.574Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T02:37:49.666Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T02:38:19.758Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T02:38:49.851Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T02:39:19.937Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T02:39:50.036Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T02:40:20.127Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T02:40:50.229Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T02:41:20.325Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T02:41:50.418Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T02:42:20.522Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T02:42:50.607Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T02:43:20.697Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T02:43:50.785Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T02:44:20.845Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T02:44:50.946Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T02:45:21.033Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T02:45:51.117Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T02:46:21.210Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T02:46:51.317Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T02:47:21.412Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T02:47:51.500Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T02:48:21.598Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T02:48:51.705Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T02:49:21.799Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T02:49:51.888Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T02:50:21.981Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T02:50:52.068Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T02:51:22.160Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T02:51:52.249Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T02:52:22.344Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T02:52:52.434Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T02:53:22.530Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T02:53:52.622Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T02:54:22.716Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T02:54:52.803Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T02:55:22.891Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T02:55:52.992Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T02:56:23.093Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T02:56:53.180Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T02:57:23.281Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T02:57:53.377Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T02:58:23.470Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T02:58:53.563Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T02:59:23.656Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T02:59:53.751Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T03:00:23.840Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T03:00:53.931Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T03:01:24.025Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T03:01:54.077Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T03:02:24.164Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T03:02:54.247Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T03:03:24.336Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T03:03:54.424Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T03:04:24.514Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T03:04:54.594Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T03:05:24.678Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T03:05:54.776Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T03:06:24.860Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T03:06:54.953Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T03:07:25.041Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T03:07:55.131Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T03:08:25.221Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T03:08:55.324Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T03:09:25.416Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T03:09:55.507Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T03:10:25.609Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T03:10:55.694Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T03:11:25.799Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T03:11:55.901Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T03:12:25.995Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T03:12:56.081Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T03:13:26.159Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T03:13:56.254Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T03:14:26.354Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T03:14:56.451Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T03:15:26.536Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T03:15:56.633Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T03:16:26.729Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T03:16:56.819Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T03:17:26.909Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T03:17:57.013Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T03:18:27.100Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T03:18:57.195Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T03:19:27.299Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T03:19:57.379Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T03:20:27.461Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T03:20:57.558Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T03:21:27.656Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T03:21:57.752Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T03:22:27.842Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T03:22:57.921Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T03:23:28.012Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T03:23:58.106Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T03:24:28.208Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T03:24:58.295Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T03:25:28.384Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T03:25:58.437Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T03:26:28.499Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T03:26:58.527Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T03:27:28.575Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T03:27:58.631Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T03:28:28.685Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T03:28:58.735Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T03:29:28.792Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T03:29:58.843Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T03:30:28.891Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T03:30:58.951Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T03:31:29.004Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T03:31:59.063Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T03:32:29.112Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T03:32:59.165Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T03:33:29.218Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T03:33:59.287Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T03:34:29.359Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T03:34:59.421Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T03:35:29.797Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T03:35:59.881Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T03:36:29.977Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T03:37:00.072Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T03:37:30.162Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T03:38:00.247Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T03:38:30.335Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T03:39:00.422Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T03:39:30.509Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T03:40:00.587Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T03:40:30.670Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T03:41:00.755Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T03:41:30.843Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T03:42:00.935Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T03:42:31.022Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T03:43:01.106Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T03:43:31.189Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T03:44:01.278Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T03:44:31.369Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T03:45:01.447Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T03:45:31.545Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T03:46:01.639Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T03:46:31.812Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T03:47:01.901Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T03:47:31.980Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T03:48:02.071Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T03:48:32.165Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T03:49:02.248Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T03:49:32.337Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T03:50:02.433Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T03:50:32.517Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T03:51:02.619Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T03:51:32.708Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T03:52:02.798Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T03:52:32.888Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T03:53:02.982Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T03:53:33.073Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T03:54:03.167Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T03:54:33.259Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T03:55:03.349Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T03:55:33.441Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T03:56:03.534Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T03:56:33.630Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T03:57:03.729Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T03:57:33.822Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T03:58:03.907Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T03:58:33.991Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T03:59:04.079Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T03:59:34.175Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T04:00:04.267Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T04:00:34.365Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T04:01:04.451Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T04:01:34.542Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T04:02:04.628Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T04:02:34.722Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T04:03:04.815Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T04:03:34.897Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T04:04:04.992Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T04:04:35.087Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T04:05:05.177Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T04:05:35.270Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T04:06:05.371Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T04:06:35.458Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T04:07:05.558Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T04:07:35.645Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T04:08:05.725Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T04:08:35.817Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T04:09:05.899Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T04:09:35.990Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T04:10:06.073Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T04:10:36.169Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T04:11:06.262Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T04:11:36.358Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T04:12:06.480Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T04:12:36.560Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T04:13:06.661Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T04:13:36.754Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T04:14:06.856Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T04:14:36.958Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T04:15:07.057Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T04:15:37.135Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T04:16:07.223Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T04:16:37.314Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T04:17:07.409Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T04:17:37.512Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T04:18:07.604Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T04:18:37.697Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T04:19:07.785Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T04:19:37.870Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T04:20:07.964Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T04:20:36.079Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T04:21:06.175Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T04:21:36.269Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T04:22:06.355Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T04:22:36.442Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T04:23:06.544Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T04:23:36.640Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T04:24:06.731Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T04:24:36.820Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T04:25:06.930Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T04:25:37.027Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T04:26:07.122Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T04:26:37.215Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T04:27:07.319Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T04:27:37.409Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T04:28:07.493Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T04:28:37.590Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T04:29:07.683Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T04:29:37.773Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T04:30:07.873Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T04:30:37.971Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T04:31:08.056Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T04:31:38.147Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T04:32:08.245Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T04:32:38.332Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T04:33:08.439Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T04:33:38.536Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T04:34:08.621Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T04:34:38.715Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T04:35:08.802Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T04:35:38.897Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T04:36:08.991Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T04:36:39.085Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T04:37:09.149Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T04:37:39.241Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T04:38:09.313Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T04:38:39.398Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T04:39:09.482Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T04:39:39.577Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T04:40:09.715Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T04:40:39.815Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T04:41:09.904Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T04:41:39.994Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T04:42:10.082Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T04:42:40.169Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T04:43:10.258Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T04:43:40.340Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T04:44:10.431Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T04:44:40.530Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T04:45:10.624Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T04:45:40.720Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T04:46:10.802Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T04:46:40.894Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T04:47:10.982Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T04:47:41.074Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T04:48:11.168Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T04:48:41.255Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T04:49:11.349Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T04:49:41.444Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T04:50:11.539Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T04:50:41.626Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T04:51:11.722Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T04:51:41.809Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T04:52:11.904Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T04:52:42.001Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T04:53:12.098Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T04:53:42.214Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T04:54:12.287Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T04:54:42.379Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T04:55:12.467Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T04:55:42.569Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T04:56:12.680Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T04:56:42.759Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T04:57:12.858Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T04:57:42.945Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T04:58:13.063Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T04:58:43.162Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T04:59:13.253Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T04:59:43.348Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T05:00:13.476Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T05:00:43.566Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T05:01:13.650Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T05:01:43.731Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T05:02:13.828Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T05:02:43.917Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T05:03:14.001Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T05:03:44.089Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T05:04:14.178Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T05:04:44.273Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T05:05:14.356Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T05:05:44.449Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T05:06:14.553Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T05:06:44.652Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T05:07:14.750Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T05:07:44.839Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T05:08:14.929Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T05:08:45.017Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T05:09:15.103Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T05:09:45.199Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T05:10:15.283Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T05:10:45.376Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T05:11:15.467Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T05:11:45.551Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T05:12:15.636Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T05:12:45.722Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T05:13:15.804Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T05:13:45.887Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T05:14:15.980Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T05:14:46.060Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T05:15:16.151Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T05:15:46.232Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T05:16:16.326Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T05:16:46.416Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T05:17:16.503Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T05:17:46.591Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T05:18:16.674Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T05:18:46.762Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T05:19:16.849Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T05:19:46.955Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T05:20:17.054Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T05:20:47.135Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T05:21:17.227Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T05:21:47.318Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T05:22:17.408Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T05:29:00.688Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T05:29:30.772Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T05:30:00.865Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T05:30:30.952Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T05:31:01.039Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T05:31:31.138Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T05:32:01.229Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T05:32:31.317Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T05:33:01.407Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T05:33:31.487Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T05:34:01.582Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T05:34:53.721Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T05:35:23.819Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T05:35:53.897Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T05:36:23.997Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T05:36:54.105Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T05:37:24.197Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T05:37:54.325Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T05:38:24.417Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T05:38:54.504Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T05:39:24.592Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T05:39:54.689Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T05:40:24.765Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T05:40:54.855Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T05:41:24.943Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T05:41:55.040Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T05:42:25.137Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T05:42:55.241Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T05:43:25.338Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T05:43:55.428Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T05:44:25.515Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T05:44:55.604Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T05:45:25.694Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T05:45:55.784Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T05:46:25.881Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T05:46:55.963Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T05:47:26.056Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T05:47:56.146Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T05:48:26.231Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T05:48:56.318Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T05:49:26.402Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T05:49:56.488Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T05:50:26.577Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T05:50:56.667Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T05:51:26.754Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T05:51:56.845Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T05:52:26.946Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T05:52:56.970Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T05:53:27.058Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T05:53:57.138Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T05:54:27.216Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T05:54:57.308Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T05:55:27.399Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T05:55:57.494Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T05:56:27.573Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T05:56:57.669Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T05:57:27.766Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T05:57:57.854Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T05:58:27.947Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T05:58:58.043Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T05:59:28.129Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T05:59:58.211Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T06:00:28.299Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T06:00:58.384Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T06:01:28.471Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T06:01:58.562Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T06:02:28.642Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T06:02:58.738Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T06:03:28.827Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T06:03:58.914Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T06:04:28.996Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T06:04:59.080Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T06:05:29.167Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T06:05:59.260Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T06:06:29.348Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T06:06:59.437Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T06:07:29.530Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T06:07:59.620Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T06:08:29.703Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T06:08:59.792Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T06:09:29.883Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T06:09:59.964Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T06:10:30.052Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T06:11:00.140Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T06:11:30.234Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T06:12:00.321Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T06:12:30.423Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T06:13:00.507Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T06:13:30.597Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T06:14:00.679Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T06:14:30.769Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T06:15:00.850Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T06:15:30.939Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T06:16:01.028Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T06:16:31.110Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T06:17:01.197Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T06:17:31.287Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T06:18:01.377Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T06:18:31.465Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T06:19:01.558Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T06:19:31.643Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T06:20:01.725Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T06:20:31.810Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T06:21:01.890Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T06:21:31.978Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T06:22:02.061Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T06:22:32.154Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T06:23:02.245Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T06:23:32.347Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T06:24:02.441Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T06:24:32.539Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T06:25:02.631Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T06:25:32.722Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T06:26:02.811Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T06:26:32.911Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T06:27:02.993Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T06:27:33.082Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T06:28:03.161Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T06:28:33.249Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T06:29:03.337Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T06:29:33.428Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T06:30:03.513Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T06:30:33.606Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T06:31:03.696Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T06:31:33.786Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T06:32:03.875Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T06:32:33.971Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T06:33:04.054Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T06:33:34.139Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T06:34:04.231Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T06:34:34.319Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T06:35:04.407Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T06:35:34.490Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T06:36:04.580Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T06:36:34.661Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T06:37:04.742Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T06:37:34.835Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T06:38:04.926Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T06:38:35.019Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T06:39:05.102Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T06:39:35.196Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T06:40:05.289Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T06:40:35.380Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T06:41:05.467Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T06:41:35.554Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T06:42:05.654Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T06:42:35.761Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T06:43:05.848Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T06:43:35.894Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T06:44:05.980Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T06:44:36.044Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T06:45:06.140Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T06:45:36.229Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T06:46:06.380Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T06:46:36.477Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T06:47:06.569Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T06:47:36.657Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T06:48:06.765Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T06:48:36.859Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T06:49:06.951Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T06:49:37.043Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T06:50:07.134Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T06:50:37.225Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T06:51:07.307Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T06:51:37.401Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T06:52:07.494Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T06:52:37.584Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T06:53:07.674Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T06:53:37.769Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T06:54:07.857Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T06:54:37.967Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T06:58:30.422Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T06:59:18.510Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T07:34:35.733Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T08:17:46.174Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T08:28:17.771Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T08:33:38.349Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T08:59:27.920Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T09:00:35.896Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T09:02:16.935Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T09:20:42.300Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T09:56:21.672Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T10:44:23.901Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T12:02:18.635Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T12:52:11.621Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T13:18:01.529Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T13:33:55.116Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T14:05:44.118Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T15:01:28.939Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T15:10:42.389Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T15:27:43.300Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T17:08:19.139Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T18:06:07.881Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T19:24:58.886Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T20:39:15.255Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T21:30:00.319Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T21:30:30.425Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T21:31:00.513Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T21:31:30.603Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T21:32:00.701Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T21:32:30.787Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T21:33:00.878Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T21:33:30.961Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T21:34:01.051Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T21:34:31.142Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T21:35:01.207Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T21:35:31.291Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T21:36:01.377Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T21:36:31.469Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T21:37:01.553Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T21:37:31.639Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T21:38:01.725Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T21:38:31.814Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T21:39:01.899Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T21:39:31.978Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T21:40:02.063Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T21:40:32.148Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T21:41:02.242Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T21:41:32.332Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T21:42:02.445Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T21:42:32.530Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T21:43:02.633Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T21:43:32.730Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T21:44:02.830Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T21:44:32.925Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T21:45:03.027Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T21:45:33.116Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T21:46:03.203Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T21:46:33.294Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T21:47:03.384Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T21:47:33.474Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T21:48:03.559Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T21:48:33.639Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T21:49:03.732Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T21:49:33.811Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T21:50:03.911Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T21:50:33.999Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T21:51:04.087Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T21:51:34.180Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T21:52:04.261Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T21:52:34.352Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T21:53:04.452Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T21:53:34.534Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T21:54:04.630Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T21:54:32.673Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T21:55:02.766Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T21:55:32.858Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T21:56:02.954Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T21:56:33.039Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T21:57:03.135Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T21:57:33.216Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T21:58:03.313Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T21:58:33.418Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T21:59:03.524Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T21:59:33.609Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T22:00:03.712Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T22:00:33.807Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T22:01:03.899Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T22:01:33.998Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T22:02:04.089Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T22:02:34.184Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T22:03:04.291Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T22:03:34.389Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T22:04:04.479Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T22:04:34.580Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T22:05:04.675Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T22:05:34.761Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T22:06:04.848Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T22:06:34.931Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T22:07:05.029Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T22:07:35.124Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T22:08:05.214Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T22:08:35.310Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T22:09:05.407Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T22:09:35.503Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T22:10:05.620Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T22:10:35.706Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T22:11:05.795Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T22:11:35.879Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T22:12:05.980Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T22:12:36.073Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T22:13:06.168Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T22:13:36.258Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T22:14:06.358Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T22:14:36.454Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T22:15:06.557Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T22:15:36.646Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T22:16:06.737Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T22:16:36.828Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T22:17:06.921Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T22:17:37.007Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T22:18:07.098Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T22:18:37.191Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T22:19:07.308Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T22:19:37.409Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T22:20:07.523Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T22:20:37.619Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T22:21:07.711Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T22:21:37.777Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T22:22:07.863Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T22:22:37.944Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T22:23:08.034Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T22:23:38.126Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T22:24:10.324Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T22:24:40.418Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T22:25:10.512Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T22:25:40.613Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T22:26:10.702Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T22:26:40.801Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T22:27:10.895Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T22:27:40.988Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T22:28:11.066Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T22:28:41.130Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T22:29:11.207Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T22:29:41.258Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T22:30:11.330Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T22:30:42.023Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T22:31:12.123Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T22:31:42.183Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T22:32:12.280Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T22:32:42.345Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T22:33:12.437Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T22:33:42.531Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T22:34:12.626Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T22:34:42.727Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T22:35:12.822Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T22:35:42.908Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T22:36:13.002Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T22:36:43.094Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T22:37:13.182Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T22:37:43.265Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T22:38:13.349Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T22:38:43.429Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T22:39:13.505Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T22:39:43.591Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T22:40:13.686Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T22:40:43.786Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T22:41:13.885Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T22:41:43.982Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T22:42:14.094Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T22:42:44.199Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T22:43:14.282Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T22:43:44.374Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T22:44:14.462Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T22:44:44.562Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T22:45:14.656Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T22:45:44.742Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T22:46:14.834Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T22:46:44.926Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T22:47:15.012Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T22:47:45.115Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T22:48:15.197Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T22:48:45.288Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T22:49:15.392Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T22:49:45.488Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T22:50:15.582Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T22:50:45.676Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T22:51:15.772Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T22:51:45.862Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T22:52:15.961Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T22:52:46.050Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T22:53:16.144Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T22:53:46.238Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T22:54:16.336Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T22:54:46.442Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T22:55:16.556Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T22:55:46.640Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T22:56:16.729Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T22:56:46.812Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T22:57:16.898Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T22:57:46.983Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T22:58:17.066Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T22:58:47.177Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T22:59:17.275Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T22:59:47.367Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T23:00:17.456Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T23:00:47.545Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T23:01:17.618Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T23:01:47.771Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T23:02:17.880Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T23:02:47.973Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T23:03:18.060Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T23:03:48.157Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T23:04:18.249Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T23:04:48.331Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T23:05:18.416Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T23:05:48.506Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T23:06:18.595Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T23:06:48.684Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T23:07:18.775Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T23:07:48.859Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T23:08:18.935Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T23:08:49.058Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T23:09:19.157Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T23:09:49.233Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T23:10:19.317Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T23:10:49.403Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T23:11:19.493Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T23:11:49.590Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T23:12:19.675Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T23:12:49.756Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T23:13:19.852Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T23:13:49.965Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T23:14:20.059Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T23:14:50.164Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T23:15:20.248Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T23:15:50.336Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T23:16:20.426Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T23:16:50.512Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T23:17:20.609Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T23:17:50.713Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T23:18:20.812Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T23:18:50.905Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T23:19:20.986Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T23:19:51.077Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T23:20:21.160Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T23:20:51.262Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T23:21:21.353Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T23:21:51.437Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T23:22:21.520Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T23:22:51.611Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T23:23:21.706Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T23:23:51.803Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T23:24:21.900Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T23:24:50.031Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T23:25:20.113Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T23:25:50.212Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T23:26:20.322Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T23:26:50.415Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T23:27:20.519Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T23:27:50.608Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T23:28:20.689Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T23:28:50.769Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T23:29:20.869Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T23:29:51.136Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T23:30:21.234Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T23:30:51.347Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T23:31:21.457Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T23:31:51.539Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T23:32:21.636Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T23:32:51.744Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T23:33:21.858Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T23:33:51.968Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T23:34:22.086Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "7ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T23:34:52.205Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T23:35:22.316Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T23:35:52.416Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T23:36:22.504Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T23:36:52.594Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T23:37:22.680Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T23:37:52.763Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T23:38:22.857Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T23:38:52.951Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T23:39:23.038Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T23:39:55.357Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T23:40:25.447Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T23:40:55.553Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T23:41:25.645Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T23:41:55.740Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T23:42:25.834Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T23:42:55.933Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T23:43:26.034Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T23:43:56.136Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T23:44:26.237Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T23:44:56.346Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T23:45:26.445Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T23:45:56.544Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T23:46:26.642Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T23:46:56.743Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T23:47:26.837Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T23:47:56.928Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T23:48:27.015Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T23:48:57.101Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T23:49:27.197Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T23:49:57.278Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T23:50:27.373Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T23:50:57.473Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T23:51:27.568Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T23:51:57.672Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T23:52:27.761Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T23:52:57.843Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T23:53:27.924Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T23:53:58.036Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T23:54:28.135Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T23:54:58.231Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T23:55:28.293Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T23:55:58.381Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T23:56:28.457Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T23:56:58.551Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T23:57:28.625Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T23:57:58.714Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T23:58:28.811Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T23:58:58.898Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T23:59:28.990Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-29T23:59:59.080Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T00:00:29.168Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T00:00:59.259Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T00:01:29.340Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T00:01:59.436Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T00:02:29.529Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T00:02:59.616Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T00:03:29.702Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T00:03:59.792Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T00:04:29.900Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T00:04:59.991Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T00:05:30.074Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T00:06:00.158Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T00:06:30.252Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T00:07:00.338Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T00:07:30.424Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T00:08:00.503Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T00:08:30.594Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T00:09:00.675Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T00:09:30.765Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T00:10:00.909Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T00:10:31.005Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T00:11:01.093Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T00:11:31.179Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T00:12:01.274Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T00:12:31.364Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T00:13:01.447Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T00:13:31.539Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T00:14:01.639Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T00:14:31.735Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T00:15:01.815Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T00:15:31.906Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T00:16:01.999Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T00:16:32.105Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T00:17:02.197Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T00:17:32.300Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T00:18:02.416Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T00:18:32.507Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T00:19:02.601Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T00:19:32.693Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T00:20:02.770Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T00:20:32.865Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T00:21:02.953Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T00:21:33.047Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T00:22:03.134Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T00:22:33.227Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T00:23:03.321Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T00:23:33.420Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T00:24:03.524Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T00:24:33.605Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T00:25:03.693Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T00:25:33.763Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T00:26:03.887Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T00:26:33.973Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T00:27:04.063Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T00:27:34.152Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T00:28:04.244Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T00:28:34.334Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T00:29:04.413Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T00:29:34.497Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T00:30:04.602Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T00:30:34.710Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T00:31:04.811Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T00:31:34.910Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T00:32:05.018Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T00:32:35.112Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T00:33:05.196Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T00:33:35.284Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T00:34:05.377Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T00:34:35.476Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T00:35:05.577Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T00:35:35.658Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T00:36:05.755Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T00:36:35.847Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T00:37:05.941Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T00:37:36.042Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T00:38:06.140Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T00:38:36.236Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T00:39:06.328Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T00:39:36.421Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T00:40:06.506Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T00:40:36.611Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T00:41:06.701Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T00:41:36.807Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T00:42:06.892Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T00:42:36.992Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T00:43:07.077Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T00:43:37.175Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T00:44:07.310Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T00:44:37.404Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T00:45:07.508Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T00:45:37.667Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T00:46:07.785Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T00:46:37.889Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T00:47:07.994Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T00:47:38.094Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T00:48:08.209Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T00:48:38.296Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T00:49:08.397Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T00:49:38.510Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T00:50:08.595Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T00:50:38.687Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T00:51:08.779Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T00:51:38.882Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T00:52:08.974Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T00:52:39.065Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T00:53:09.154Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T00:53:39.257Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T00:54:09.356Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T00:54:39.493Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T00:55:09.595Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T00:55:39.693Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T00:56:09.804Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T00:56:39.896Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T00:57:09.972Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T00:57:40.058Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T00:58:10.149Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T00:58:40.253Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T00:59:10.350Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T00:59:40.439Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T01:00:10.590Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T01:00:40.688Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T01:01:10.792Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T01:01:40.883Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T01:02:11.055Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T01:02:41.148Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T01:03:11.265Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T01:03:41.370Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T01:04:11.476Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T01:04:41.593Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T01:05:11.687Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T01:05:41.785Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T01:06:11.875Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T01:06:41.969Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T01:07:12.056Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T01:07:42.165Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T01:08:12.267Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T01:08:42.361Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T01:09:12.450Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T01:09:42.548Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T01:10:12.664Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T01:10:42.759Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T01:11:12.871Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T01:11:42.971Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T01:12:13.067Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T01:12:43.174Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T01:13:13.273Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T01:13:43.363Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T01:14:13.457Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T01:14:43.563Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T01:15:13.658Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T01:15:43.757Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T01:16:13.882Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T01:16:43.980Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T01:17:14.156Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T01:17:44.255Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T01:18:14.374Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T01:18:44.474Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T01:19:14.562Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T01:19:44.655Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T01:20:14.819Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "8ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T01:20:44.922Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T01:21:15.018Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T01:21:45.109Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T01:22:15.234Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T01:22:45.346Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T01:23:15.445Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T01:23:45.536Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T01:24:15.645Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T01:24:45.740Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T01:25:15.827Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T01:25:45.918Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T01:26:16.024Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T01:26:46.118Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T01:27:16.229Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T01:27:46.319Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T01:28:16.394Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T01:28:46.489Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T01:29:16.580Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T01:29:46.749Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T01:30:16.861Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T01:30:46.955Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T01:31:17.092Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T01:31:47.187Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T01:32:17.285Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T01:32:47.374Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T01:33:17.572Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T01:33:47.679Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T01:34:17.784Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T01:34:47.902Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T01:35:18.004Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T01:35:48.105Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T01:36:18.216Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T01:36:48.317Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T01:37:18.425Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T01:37:48.512Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T01:38:18.631Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T01:38:48.701Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T01:39:18.754Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T01:39:48.810Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T01:40:18.859Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T01:40:48.912Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T01:41:18.978Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T01:41:49.034Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T01:42:19.132Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T01:42:49.184Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T01:43:19.258Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T01:43:49.345Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T01:44:19.410Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T01:44:49.464Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T01:45:19.519Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T01:45:49.570Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T01:46:19.627Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T01:46:49.697Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T01:47:19.774Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T01:47:49.837Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T01:48:19.926Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T01:48:50.018Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T01:49:20.099Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T01:49:50.166Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T01:50:20.249Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T01:50:50.330Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T01:51:20.450Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T01:51:50.527Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T01:52:20.618Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T01:52:50.692Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T01:53:20.780Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T01:53:50.872Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T01:54:20.971Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T01:54:51.061Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T01:55:21.143Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T01:55:51.220Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T01:56:21.298Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T01:56:51.387Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T01:57:21.459Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T01:57:51.537Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T01:58:21.625Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T01:58:51.702Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T01:59:21.791Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T01:59:51.863Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T02:00:21.967Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T02:00:52.043Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T02:01:22.121Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T02:01:52.220Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T02:02:22.304Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T02:02:52.379Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T02:03:22.460Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T02:03:52.535Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T02:04:22.618Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T02:04:52.715Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T02:05:22.807Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T02:05:52.888Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T02:06:22.958Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T02:06:53.049Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T02:07:23.143Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T02:07:53.230Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T02:08:23.311Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T02:08:53.393Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T02:09:23.477Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T02:09:53.560Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T02:10:23.643Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T02:10:53.724Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T02:11:23.807Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T02:11:53.910Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T02:12:23.994Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T02:12:54.083Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T02:13:24.183Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T02:13:54.264Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T02:14:24.355Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T02:14:54.433Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T02:15:24.516Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T02:15:54.604Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T02:16:24.675Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T02:16:54.757Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T02:17:24.855Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T02:17:54.935Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T02:18:25.023Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T02:18:55.106Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T02:19:25.198Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T02:19:55.288Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T02:20:25.375Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T02:20:55.463Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T02:21:25.562Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T02:21:55.643Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T02:22:25.729Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T02:22:55.817Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T02:23:25.894Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T02:23:56.006Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T02:24:26.101Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T02:24:56.190Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T02:25:26.303Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T02:25:56.390Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T02:26:26.481Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T02:26:56.570Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T02:27:26.655Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T02:27:56.753Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T02:28:26.844Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T02:28:56.934Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T02:29:27.026Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T02:29:57.121Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T02:30:27.223Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T02:30:57.330Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T02:31:27.434Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T02:31:57.529Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T02:32:27.610Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T02:32:57.696Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T02:33:27.809Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T02:33:57.906Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T02:34:28.001Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T02:34:58.100Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T02:35:28.188Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T02:35:58.279Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T02:36:28.367Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T02:36:58.459Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T02:37:28.551Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T02:37:58.641Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T02:38:28.746Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T02:38:58.839Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T02:39:28.937Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T02:39:59.030Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T02:40:29.080Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T02:40:59.160Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T02:41:29.243Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T02:41:59.446Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T02:42:29.568Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T02:42:59.661Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T02:43:29.779Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T02:43:59.867Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T02:44:29.973Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T02:45:00.083Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T02:45:30.172Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T02:46:00.263Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T02:46:30.372Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T02:47:00.472Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T02:47:30.566Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T02:48:00.657Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T02:48:30.762Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T02:49:00.850Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T02:49:30.946Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T02:50:01.032Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T02:50:31.172Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T02:51:01.294Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T02:51:31.403Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T02:52:01.527Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T02:52:31.627Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T02:53:01.715Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T02:53:31.816Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T02:54:01.915Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T02:54:32.010Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T02:55:02.119Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T02:55:32.210Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T02:56:02.302Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T02:56:32.403Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T02:57:02.493Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T02:57:32.582Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T02:58:02.681Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T02:58:32.766Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T02:59:02.886Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T02:59:32.983Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T03:00:03.091Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T03:00:33.188Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T03:01:03.286Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T03:01:33.359Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T03:02:03.446Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T03:02:33.529Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T03:03:03.658Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T03:03:33.761Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T03:04:03.862Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T03:04:33.949Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T03:05:04.377Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T03:05:34.480Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T03:06:04.574Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T03:06:34.685Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T03:07:04.782Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T03:07:34.878Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T03:08:04.967Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T03:08:35.057Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T03:09:05.177Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T03:09:35.274Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T03:10:05.370Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T03:10:35.457Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T03:11:05.583Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T03:11:35.679Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T03:12:05.768Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T03:12:35.861Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T03:13:05.983Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T03:13:36.094Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T03:14:06.218Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T03:14:36.310Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T03:15:06.393Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T03:15:36.515Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T03:16:06.611Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T03:16:36.701Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T03:17:06.824Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T03:17:36.914Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T03:18:07.015Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T03:18:37.104Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T03:19:07.220Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T03:19:37.325Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T03:20:07.422Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T03:20:37.517Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T03:21:07.602Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T03:21:37.697Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T03:22:07.798Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T03:22:37.903Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T03:23:07.997Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T03:23:38.085Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T03:24:08.177Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T03:24:38.271Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T03:25:08.363Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T03:25:38.447Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T03:26:08.534Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T03:26:38.642Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T03:27:08.753Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T03:27:38.873Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T03:28:08.991Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T03:28:39.065Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T03:29:09.183Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T03:29:39.270Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T03:30:09.366Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T03:30:39.455Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T03:31:09.552Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T03:31:39.642Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T03:32:09.741Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T03:32:39.745Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T03:33:09.844Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T03:33:39.939Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T03:34:10.035Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T03:34:40.121Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T03:35:10.240Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T03:35:40.341Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T03:36:10.433Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T03:36:40.519Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T03:37:10.609Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T03:37:40.700Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T03:38:10.793Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T03:38:40.888Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T03:39:10.973Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T03:39:41.070Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T03:40:11.150Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T03:40:41.223Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T03:41:11.293Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T03:41:41.386Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T03:42:11.454Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T03:42:41.546Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T03:43:11.621Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T03:43:41.699Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T03:44:11.792Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T03:44:41.888Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T03:45:11.977Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T03:45:42.087Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T03:46:12.173Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T03:46:42.257Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T03:47:12.348Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T03:47:42.440Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T03:48:12.534Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T03:48:42.622Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T03:49:12.738Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T03:49:42.829Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T03:50:12.938Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T03:50:43.038Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T03:51:13.134Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T03:51:43.221Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T03:52:13.323Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T03:52:43.448Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T03:53:13.543Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T03:53:43.640Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T03:54:13.755Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T03:54:43.869Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T03:55:13.970Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T03:55:44.070Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T03:56:14.154Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T03:56:44.252Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T03:57:14.342Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T03:57:44.426Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T03:58:14.510Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T03:58:44.598Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T03:59:14.682Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T03:59:44.758Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T04:00:14.853Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T04:00:44.953Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T04:01:15.049Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T04:01:45.142Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T04:02:15.233Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T04:02:45.328Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T04:03:15.424Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T04:03:45.521Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T04:04:15.628Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T04:04:45.719Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T04:05:15.800Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T04:05:45.894Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T04:06:15.991Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T04:06:46.083Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T04:07:16.178Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T04:07:46.274Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T04:08:16.385Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T04:08:46.489Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T04:09:16.627Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T04:09:46.727Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T04:10:16.856Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T04:10:46.956Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T04:11:17.040Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T04:11:47.141Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T04:12:17.242Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T04:12:47.342Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T04:13:17.458Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T04:13:47.653Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T04:14:17.754Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T04:14:47.867Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T04:15:17.978Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T04:15:48.087Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T04:16:18.179Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T04:16:48.274Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T04:17:18.403Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "6ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T04:17:48.495Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T04:18:18.582Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T04:18:48.671Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T04:19:18.779Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T04:19:48.878Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T04:20:18.969Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T04:20:49.101Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T04:21:19.220Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T04:21:49.336Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T04:22:19.438Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T04:22:49.538Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T04:23:19.625Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T04:23:49.730Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T04:24:19.813Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T04:24:49.904Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T04:25:20.020Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T04:25:50.107Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T04:26:20.208Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T04:26:50.321Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T04:27:20.419Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T04:27:50.500Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T04:28:20.589Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T04:30:29.270Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T04:30:59.362Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T04:31:29.446Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T04:31:59.536Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T04:32:29.617Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T04:32:59.704Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T04:33:29.791Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T04:33:59.883Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T04:34:29.971Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T04:35:00.059Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T04:35:30.163Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T04:36:00.248Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T04:36:30.339Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T04:37:00.430Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T04:37:30.521Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T04:38:00.611Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T04:38:30.694Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T04:39:00.792Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T04:39:30.888Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T04:40:00.980Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T04:40:31.077Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T04:41:01.178Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T04:41:31.285Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T04:42:01.374Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T04:42:31.465Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T04:43:01.593Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T04:43:31.682Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T04:44:01.771Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T04:44:31.867Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T04:45:01.953Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T04:45:32.037Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T04:46:50.611Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T04:47:20.709Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T04:47:50.807Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T04:48:20.902Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T04:48:50.990Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T04:49:21.085Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T04:49:51.186Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T04:50:21.252Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T04:50:51.350Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T04:51:21.455Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T04:51:51.538Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T04:52:21.631Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T04:52:51.730Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T04:53:21.829Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T04:53:51.913Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T04:54:22.014Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T04:54:52.111Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T04:55:22.196Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T04:55:52.292Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T04:56:22.384Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T04:56:52.480Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T04:57:22.593Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T04:57:52.697Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T04:58:22.785Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T04:58:52.875Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T04:59:22.960Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T04:59:53.058Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T05:00:23.159Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T05:00:53.250Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T05:01:23.343Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T05:01:53.479Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T05:02:23.550Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T05:02:53.643Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T05:03:23.732Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T05:03:53.831Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T05:04:23.927Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T05:04:54.033Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T05:05:24.120Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T05:05:54.219Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T05:06:24.315Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T05:06:54.405Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T05:07:24.496Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T05:07:54.584Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T05:08:24.684Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T05:08:54.775Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T05:09:24.867Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T05:09:54.973Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T05:10:25.065Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T05:10:55.158Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T05:11:25.248Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T05:11:55.338Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T05:12:25.424Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T05:12:55.514Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T05:13:25.600Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T05:13:55.693Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T05:14:25.784Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T05:14:55.870Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T05:15:25.968Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T05:15:56.065Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T05:16:26.154Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T05:16:56.254Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T05:17:26.357Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T05:17:56.438Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T05:18:26.528Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T05:18:56.620Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T05:19:26.711Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T05:19:56.802Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T05:20:26.918Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T05:20:57.028Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T05:21:27.110Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T05:21:57.199Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T05:22:27.285Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T05:22:57.366Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T05:23:27.458Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T05:23:57.552Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T05:24:27.640Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T05:24:57.726Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T05:25:27.813Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T05:25:57.901Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T05:26:27.992Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T05:26:58.088Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T05:27:28.172Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T05:27:58.258Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T05:28:28.356Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T05:28:58.436Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T05:29:28.523Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T05:29:58.618Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T05:30:28.713Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T05:30:58.804Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T05:31:28.895Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T05:31:58.989Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T05:32:29.076Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T05:32:59.172Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T05:33:29.261Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T05:33:59.356Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T05:34:29.443Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T05:34:59.536Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T05:35:29.625Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T05:35:59.710Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T05:36:29.803Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T05:36:59.909Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T05:37:30.000Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T05:38:00.106Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T05:38:30.197Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T05:39:00.291Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T05:39:30.387Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T05:40:00.499Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T05:40:30.585Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T05:41:00.671Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T05:41:30.761Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T05:42:00.853Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T05:42:30.947Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T05:43:01.046Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T05:43:31.137Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T05:44:01.225Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T05:44:31.313Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T05:45:01.400Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T05:45:31.483Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T05:46:01.580Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T05:46:31.669Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T05:47:01.749Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T05:47:31.849Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T05:48:01.969Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T05:48:32.060Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T05:49:02.154Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T05:49:32.237Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T05:50:02.318Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T05:50:32.397Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T05:51:02.482Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T05:51:32.572Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T05:52:02.677Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T05:52:32.752Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T05:53:02.845Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T05:53:32.954Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T05:54:03.058Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T05:54:33.157Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T05:55:03.243Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T05:55:33.335Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T05:56:03.446Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T05:56:33.538Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T05:57:03.657Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T05:57:33.751Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T05:58:03.835Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T05:58:33.917Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T05:59:04.028Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T05:59:34.097Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T06:00:04.195Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T06:00:34.263Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T06:01:04.345Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T06:01:34.426Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T06:02:04.504Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T06:02:34.609Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T06:03:04.720Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T06:03:34.816Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T06:04:04.903Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T06:04:35.122Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T06:05:05.283Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T06:05:35.515Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T06:06:05.743Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "6ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T06:06:35.903Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T06:07:06.038Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T06:07:36.235Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T06:08:06.481Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T06:08:36.707Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T06:09:06.862Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T06:09:37.022Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "11ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T06:10:07.185Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T06:10:37.343Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T06:11:07.482Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T06:11:37.651Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T06:12:07.794Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T06:12:37.988Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "9ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T06:13:08.137Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T06:13:38.297Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T06:14:08.453Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T06:14:38.635Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T06:15:08.809Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T06:15:38.997Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T06:16:09.135Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T06:16:39.229Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T06:17:09.315Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T06:17:39.503Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T06:18:09.636Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T06:18:39.722Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T06:19:09.888Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T06:19:39.988Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T06:20:10.083Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T06:20:40.195Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T06:21:10.281Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T06:21:40.377Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T06:22:10.454Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T06:22:40.526Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T06:23:10.605Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T06:23:40.684Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T06:24:10.767Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T06:24:40.883Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T06:25:10.959Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T06:25:41.042Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T06:26:11.162Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T06:26:41.281Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T06:27:11.401Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T06:27:41.535Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T06:28:11.660Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T06:28:41.788Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T06:29:11.883Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T06:29:42.033Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T06:30:12.205Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T06:30:42.344Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T06:31:12.470Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "5ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T06:31:42.574Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T06:32:12.712Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T06:32:42.888Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T06:33:13.091Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T06:33:43.186Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T06:34:13.314Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T06:34:43.434Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T06:35:13.566Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T06:35:43.655Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T06:36:13.763Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T06:36:43.857Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T06:37:13.983Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T06:37:44.125Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T06:38:14.262Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "14ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T06:38:44.382Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T06:39:14.468Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T06:39:44.578Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "5ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T06:40:14.776Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T06:40:44.923Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T06:41:15.056Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T06:41:45.150Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T06:42:15.291Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T06:42:45.415Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T06:43:15.562Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "9ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T06:43:45.700Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T06:44:15.840Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T06:44:45.967Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T06:45:16.116Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T06:45:46.260Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "5ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T06:46:16.353Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T06:46:46.481Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T06:47:16.599Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T06:47:46.675Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T06:48:16.757Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T06:48:46.829Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T06:49:16.905Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T06:49:46.985Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T06:50:17.096Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T06:50:47.166Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T06:51:17.293Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T06:51:47.420Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T06:52:17.561Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T06:52:47.726Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T06:53:17.873Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T06:53:48.023Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T06:54:18.193Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T06:54:48.335Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T06:55:18.451Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "12ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T06:55:48.749Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "5ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T07:13:53.352Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T07:17:39.007Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T08:01:27.857Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T08:55:32.663Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "7ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T09:56:45.560Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T11:31:20.464Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "23ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T12:37:39.412Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T13:55:48.175Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T15:06:42.077Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T16:29:54.043Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T17:38:20.392Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T18:59:51.296Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T19:55:32.620Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T21:12:48.412Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T21:19:08.476Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "6ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T21:29:11.372Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T21:29:41.520Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T21:30:11.620Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T21:30:41.781Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T21:31:11.906Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T21:31:42.008Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T21:32:12.149Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T21:32:42.333Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T21:33:12.480Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T21:33:42.708Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T21:34:12.854Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T21:34:43.014Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T21:35:13.139Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T21:35:43.285Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T21:36:13.432Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T21:36:43.614Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T21:37:13.816Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T21:37:43.905Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T21:38:13.981Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T21:38:44.083Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T21:39:14.160Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T21:39:44.243Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T21:40:14.329Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T21:40:44.444Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T21:41:14.555Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T21:41:44.669Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T21:42:14.777Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T21:42:44.992Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T21:43:15.152Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T21:43:45.296Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T21:44:15.491Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T21:44:45.678Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T21:45:15.883Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T21:45:46.055Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T21:46:16.178Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T21:46:46.310Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T21:47:16.450Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T21:47:46.592Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T21:48:16.691Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T21:48:46.800Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T21:49:16.947Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T21:49:47.071Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T21:50:17.192Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T21:50:47.331Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T21:51:17.527Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T21:51:47.657Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T21:52:17.791Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T21:52:47.892Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T21:53:18.003Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "7ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T21:53:48.100Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T21:54:18.202Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T21:54:48.281Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T21:55:18.381Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T21:55:48.474Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T21:56:18.597Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T21:56:48.734Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T21:57:18.896Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T21:57:49.040Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "6ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T21:58:19.180Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T21:58:49.279Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T21:59:19.420Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T21:59:49.601Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T22:00:19.731Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T22:00:49.830Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T22:01:19.940Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T22:01:50.097Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T22:02:20.226Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T22:02:50.335Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T22:03:20.465Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T22:03:50.613Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T22:04:20.742Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T22:04:50.878Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T22:05:21.027Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T22:05:51.152Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T22:06:21.262Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T22:06:51.424Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "7ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T22:07:21.599Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T22:07:51.746Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T22:08:21.860Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T22:08:51.994Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T22:09:22.123Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T22:09:52.220Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T22:10:22.298Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T22:10:52.390Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T22:11:22.484Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T22:11:52.590Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T22:12:22.722Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T22:12:52.863Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T22:13:23.001Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T22:13:53.164Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T22:14:23.312Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T22:14:53.396Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T22:15:23.504Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T22:15:53.591Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T22:16:23.702Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T22:16:53.779Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T22:17:23.895Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T22:17:53.992Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T22:18:24.125Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T22:18:54.218Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T22:19:24.308Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T22:19:54.392Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T22:20:24.499Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T22:20:54.580Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T22:21:24.688Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T22:21:54.775Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T22:22:24.873Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T22:22:55.068Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T22:23:25.218Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T22:23:55.369Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T22:24:25.516Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T22:24:55.619Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T22:25:25.734Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T22:25:55.859Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T22:26:25.983Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T22:26:56.107Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T22:27:26.243Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "9ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T22:27:56.403Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T22:28:26.685Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T22:28:56.832Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "5ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T22:29:26.948Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T22:29:57.030Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T22:30:27.103Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T22:30:57.233Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T22:31:27.366Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T22:31:57.521Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T22:32:27.679Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T22:32:57.751Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T22:33:27.826Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T22:33:57.896Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T22:34:27.989Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T22:34:58.049Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T22:35:28.108Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T22:35:58.161Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T22:36:28.227Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T22:36:58.307Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T22:37:28.380Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T22:37:58.448Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T22:38:28.497Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T22:38:58.626Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T22:39:28.695Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T22:39:58.766Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T22:40:28.823Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T22:40:58.875Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T22:41:28.941Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T22:41:59.052Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T22:42:29.124Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T22:42:59.197Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T22:43:29.320Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T22:43:59.388Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T22:44:29.448Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T22:44:59.506Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T22:45:29.574Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T22:45:59.629Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T22:46:29.759Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T22:46:59.970Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T22:47:30.115Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "9ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T22:48:00.181Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T22:48:30.314Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T22:49:00.385Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T22:49:30.542Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T22:50:00.614Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T22:50:30.710Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T22:51:00.764Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T22:51:30.809Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T22:52:00.942Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T22:52:31.000Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T22:53:01.141Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T22:53:31.195Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T22:54:01.265Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T22:54:31.326Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T22:55:01.497Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T22:55:31.571Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T22:56:01.639Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T22:56:31.708Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T22:57:01.830Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T22:57:31.906Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T22:58:02.034Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "8ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T22:58:32.109Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T22:59:02.206Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T22:59:32.288Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T23:00:02.375Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T23:00:32.463Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T23:01:02.556Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T23:01:32.640Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T23:02:02.723Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T23:02:32.824Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T23:03:02.918Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T23:03:33.024Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T23:04:03.123Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T23:04:33.233Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T23:05:03.324Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T23:05:33.451Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T23:06:03.556Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T23:06:33.657Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T23:07:03.756Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T23:07:33.879Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T23:08:03.982Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T23:08:34.090Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T23:09:04.187Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T23:09:34.293Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T23:10:04.405Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T23:10:34.498Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T23:11:04.608Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T23:11:34.765Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T23:12:04.887Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T23:12:34.981Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T23:13:05.078Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T23:13:35.184Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T23:14:05.194Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T23:14:35.278Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T23:15:05.346Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T23:15:35.447Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T23:16:05.535Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T23:16:35.646Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T23:17:05.747Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T23:17:35.828Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T23:18:05.926Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T23:18:36.019Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T23:19:06.122Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T23:19:36.246Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T23:20:06.339Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T23:20:36.426Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T23:21:06.516Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T23:21:36.620Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T23:22:06.692Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T23:22:36.784Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T23:23:06.866Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T23:23:36.984Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T23:24:07.072Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T23:24:37.214Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "16ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T23:25:07.309Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T23:25:37.439Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "7ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T23:26:07.538Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T23:26:37.631Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T23:27:07.776Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T23:27:37.879Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T23:28:07.985Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T23:28:38.123Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T23:29:08.220Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T23:29:38.365Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T23:30:08.469Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T23:30:38.592Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T23:31:08.686Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T23:31:38.787Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T23:32:08.890Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T23:32:38.979Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T23:33:09.077Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T23:33:39.178Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T23:34:09.279Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T23:34:39.371Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T23:35:09.470Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T23:35:39.555Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T23:36:09.646Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T23:36:39.732Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T23:37:09.817Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T23:37:39.882Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T23:38:09.985Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T23:38:40.075Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T23:39:10.168Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T23:39:40.261Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T23:40:10.358Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T23:40:40.449Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T23:41:10.551Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T23:41:40.645Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T23:42:10.737Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T23:42:40.830Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T23:43:10.920Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T23:43:41.006Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T23:44:11.102Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T23:44:41.205Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T23:45:11.344Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T23:45:41.449Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T23:46:11.548Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T23:46:41.652Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T23:47:11.738Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T23:47:41.841Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T23:48:11.942Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T23:48:42.034Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T23:49:12.123Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T23:49:42.217Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T23:50:12.309Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T23:50:42.397Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T23:51:12.491Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T23:51:42.576Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T23:52:12.674Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T23:52:42.775Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T23:53:12.865Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T23:53:42.961Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T23:54:13.056Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T23:54:43.141Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T23:55:13.252Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T23:55:43.347Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T23:56:13.446Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T23:56:43.543Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T23:57:13.635Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T23:57:43.721Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T23:58:13.803Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T23:58:43.897Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T23:59:14.000Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-30T23:59:44.089Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T00:00:14.190Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T00:00:44.281Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T00:01:14.376Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T00:01:44.463Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T00:02:14.545Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T00:02:44.620Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T00:03:14.727Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T00:03:44.817Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T00:04:14.905Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T00:04:45.000Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T00:05:15.145Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T00:05:45.250Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T00:06:15.336Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T00:06:45.428Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T00:07:15.528Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T00:07:45.610Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T00:08:15.695Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T00:08:45.781Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T00:09:15.877Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T00:09:45.973Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T00:10:16.056Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T00:10:46.154Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T00:11:16.251Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T00:11:46.340Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T00:12:16.439Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T00:12:46.526Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T00:13:16.662Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T00:13:46.755Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T00:14:16.859Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T00:14:46.955Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T00:15:17.052Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T00:15:47.145Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T00:16:17.238Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T00:16:47.352Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T00:17:17.479Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T00:17:47.598Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T00:18:17.722Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T00:18:47.829Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T00:19:17.926Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T00:19:48.039Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T00:20:18.148Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T00:20:48.282Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T00:21:18.432Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T00:21:48.539Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "6ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T00:22:18.640Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T00:22:48.733Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T00:23:18.842Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T00:23:48.933Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T00:24:19.037Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T00:24:49.134Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T00:25:19.253Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T00:25:49.365Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T00:26:19.478Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T00:26:49.563Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T00:27:19.667Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T00:27:49.775Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T00:28:19.874Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T00:28:49.970Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T00:29:20.085Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T00:29:50.185Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T00:30:20.327Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T00:30:50.425Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T00:31:20.552Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T00:31:50.630Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T00:32:20.742Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T00:32:50.863Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T00:33:20.978Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T00:33:51.089Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T00:34:21.207Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T00:34:51.297Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T00:35:21.407Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T00:35:51.498Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T00:36:21.591Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T00:36:51.736Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T00:37:21.873Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T00:37:51.977Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T00:38:22.078Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T00:38:52.190Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T00:39:22.288Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T00:39:52.399Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T00:40:22.491Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T00:40:52.618Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T00:41:22.747Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T00:41:52.849Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T00:42:22.951Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T00:42:53.055Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T00:43:23.198Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T00:43:53.299Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T00:44:23.414Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T00:44:53.509Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T00:45:23.602Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T00:45:53.698Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T00:46:23.792Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T00:46:53.884Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T00:47:23.996Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "5ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T00:47:54.093Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T00:48:24.218Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T00:48:54.314Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T00:49:24.411Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T00:49:54.512Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T00:50:24.608Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T00:50:54.705Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T00:51:24.811Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T00:51:54.924Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T00:52:25.051Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T00:52:55.147Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T00:53:25.272Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T00:53:55.369Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T00:54:25.524Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T00:54:55.626Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T00:55:25.778Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T00:55:55.871Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T00:56:25.955Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T00:56:56.064Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T00:57:26.160Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T00:57:56.263Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T00:58:26.382Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T00:58:56.482Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T00:59:26.602Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T00:59:56.707Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T01:00:26.814Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T01:00:56.910Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T01:01:27.004Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T01:01:57.087Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T01:02:27.204Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T01:02:57.304Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T01:03:27.414Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T01:03:57.508Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T01:04:27.640Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T01:04:57.731Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T01:05:27.867Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T01:05:57.969Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T01:06:28.067Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T01:06:58.153Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T01:07:28.249Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T01:07:58.343Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T01:08:28.431Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T01:08:58.522Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T01:09:28.627Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T01:09:58.741Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T01:10:28.850Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T01:10:58.946Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T01:11:29.040Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T01:11:59.135Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T01:12:29.229Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T01:12:59.317Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T01:13:29.426Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T01:13:59.517Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T01:14:29.608Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T01:14:59.694Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T01:15:29.823Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T01:15:59.932Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T01:16:30.033Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T01:17:00.142Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T01:17:30.240Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T01:18:00.341Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T01:18:30.453Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T01:19:00.562Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T01:19:30.659Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T01:20:00.743Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T01:20:30.844Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T01:21:00.914Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T01:21:30.987Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T01:22:01.065Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T01:22:31.167Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T01:23:01.252Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T01:23:31.362Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T01:24:01.456Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T01:24:31.557Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T01:25:01.642Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T01:25:31.748Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T01:26:01.842Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T01:26:31.923Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T01:27:02.015Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T01:27:32.104Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T01:28:02.200Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T01:28:32.293Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T01:29:02.381Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T01:29:32.476Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T01:30:02.570Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T01:30:32.664Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T01:31:02.753Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T01:31:32.835Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T01:32:02.919Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T01:32:33.010Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T01:33:03.103Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T01:33:33.193Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T01:34:03.299Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T01:34:33.385Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T01:35:03.480Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T01:35:33.572Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T01:36:03.685Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T01:36:33.894Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T01:37:03.995Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T01:37:34.101Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T01:38:04.204Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T01:38:34.308Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T01:39:04.405Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T01:39:34.498Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T01:40:04.606Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T01:40:34.709Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T01:41:04.816Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T01:41:34.933Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T01:42:05.029Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T01:42:35.120Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T01:43:05.208Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T01:43:35.302Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T01:44:05.389Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T01:44:35.490Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T01:45:05.584Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T01:45:35.678Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T01:46:05.748Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T01:46:35.834Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T01:47:05.896Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T01:47:35.982Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T01:48:06.069Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T01:48:36.172Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T01:49:06.264Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T01:49:36.357Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T01:50:06.451Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T01:50:36.541Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T01:51:06.624Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T01:51:36.698Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T01:52:06.779Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T01:52:36.874Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T01:53:06.967Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T01:53:37.055Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T01:54:07.150Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T01:54:37.251Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T01:55:07.344Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T01:55:37.434Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T01:56:07.531Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T01:56:37.622Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T01:57:07.716Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T01:57:37.811Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T01:58:07.914Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T01:58:37.999Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T01:59:08.092Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T01:59:38.186Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T02:00:08.270Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T02:00:38.358Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T02:01:08.454Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T02:01:38.548Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T02:02:08.634Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T02:02:38.724Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T02:03:08.819Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T02:03:38.910Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T02:04:09.000Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T02:04:39.093Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T02:05:09.192Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T02:05:39.283Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T02:06:09.376Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T02:06:39.468Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T02:07:09.558Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T02:07:39.673Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T02:08:09.773Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T02:08:39.866Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T02:09:09.976Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T02:09:40.072Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T02:10:10.164Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T02:10:40.239Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T02:11:10.319Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T02:11:40.427Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T02:12:10.527Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T02:12:40.623Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T02:13:10.725Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T02:13:40.826Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T02:14:10.923Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T02:14:41.029Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T02:15:11.159Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T02:15:41.268Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T02:16:11.375Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T02:16:41.468Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T02:17:11.573Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T02:17:41.665Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T02:18:11.752Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T02:18:41.843Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T02:19:11.934Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T02:19:42.029Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T02:20:12.114Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T02:20:42.221Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T02:21:33.798Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T02:22:03.892Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T02:38:23.013Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T02:38:53.109Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T02:39:46.357Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T02:53:20.301Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T03:42:33.437Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T04:15:54.678Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T04:56:50.000Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T05:42:01.439Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T07:16:19.199Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T07:37:09.241Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T07:39:32.542Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T07:49:12.166Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T08:15:19.729Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T09:01:43.352Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T09:12:13.965Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T09:12:44.057Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T09:13:14.148Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T09:13:44.254Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T09:14:14.351Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T09:14:44.431Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T09:15:14.532Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T09:15:44.632Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T09:16:14.731Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T09:16:44.820Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T09:17:14.922Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T09:17:45.032Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T09:18:15.122Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T09:18:45.187Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T09:19:15.278Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T09:19:45.348Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T09:20:15.441Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T09:20:45.890Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T09:21:15.998Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T09:21:46.089Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T09:22:16.164Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T09:22:46.272Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T09:23:16.359Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T09:23:46.456Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T09:24:16.551Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T09:24:46.641Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T09:25:16.730Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T09:25:46.834Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T09:26:16.927Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T09:26:47.006Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T09:27:17.103Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T09:27:47.209Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T09:28:17.378Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "6ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T09:28:47.480Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T09:29:17.581Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T09:29:47.673Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T09:30:17.764Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T09:30:47.854Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T09:31:17.943Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T09:31:48.040Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T09:32:18.128Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T09:32:48.214Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T09:33:18.305Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T09:33:48.392Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T09:34:18.483Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T09:34:48.599Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T09:35:18.740Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T09:35:48.849Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T09:36:18.969Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T09:36:49.091Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T09:37:19.185Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T09:37:49.283Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T09:38:19.376Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T09:38:49.490Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T09:39:19.580Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T09:39:49.673Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T09:40:19.786Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T09:40:49.881Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T09:41:19.995Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T09:41:50.065Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T09:42:20.147Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T09:42:50.238Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T09:43:20.391Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T09:43:50.505Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T09:44:20.613Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T09:44:50.694Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T09:45:20.778Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T09:45:50.852Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T09:46:20.916Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T09:46:50.997Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T09:47:21.075Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T09:47:51.170Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T09:48:21.246Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T09:48:51.318Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T09:49:21.393Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T09:49:51.467Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T09:50:21.545Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T09:50:51.623Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T09:51:21.701Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T09:51:51.787Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T09:52:21.863Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T09:52:51.940Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T09:53:22.020Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T09:53:52.088Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T09:54:22.169Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T09:54:52.242Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T09:55:22.317Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T09:55:52.397Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T09:56:22.481Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T09:56:52.554Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T09:57:22.659Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T09:57:52.758Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T09:58:22.830Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T09:58:52.920Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T09:59:23.003Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T09:59:53.079Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T10:00:23.165Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T10:00:53.247Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T10:01:23.344Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T10:01:53.419Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T10:02:23.494Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T10:02:53.561Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T10:03:23.631Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T10:03:53.700Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T10:04:23.776Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T10:04:53.845Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T10:05:23.920Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T10:05:53.983Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T10:06:24.069Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T10:06:54.141Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T10:07:24.211Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T10:07:54.293Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T10:08:24.367Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T10:08:54.438Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T10:09:24.517Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T10:09:54.593Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T10:10:24.668Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T10:10:54.739Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T10:11:24.817Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T10:11:54.902Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T10:12:24.976Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T10:12:55.053Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T10:13:25.140Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T10:13:55.219Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T10:14:25.300Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T10:14:55.376Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T10:15:25.456Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T10:15:55.541Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T10:16:25.623Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T10:16:55.708Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T10:17:25.790Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T10:17:55.870Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T10:18:25.958Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T10:18:56.039Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T10:19:26.168Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T10:19:56.238Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T10:20:26.317Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T10:20:56.397Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T10:21:26.468Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T10:21:56.550Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T10:22:26.634Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T10:22:56.710Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T10:23:26.798Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T10:23:56.893Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T10:24:26.978Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T10:24:57.068Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T10:25:27.155Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T10:25:57.239Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T10:26:27.321Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T10:26:57.400Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T10:27:27.483Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T10:27:57.564Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T10:28:27.648Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T10:28:57.731Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T10:29:27.815Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T10:29:57.915Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T10:40:51.653Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T10:41:21.805Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T10:41:51.947Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T10:42:22.085Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T10:42:52.215Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T10:43:22.353Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T10:43:52.489Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T10:44:22.638Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T10:44:52.764Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T10:45:22.890Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T10:45:53.010Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T10:46:23.149Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T10:46:53.291Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T10:47:23.441Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T10:47:53.580Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T10:48:23.703Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T10:48:53.833Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T10:49:23.966Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T10:49:54.099Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T10:50:24.239Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T10:50:54.352Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T10:51:24.495Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T10:51:54.629Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T10:52:24.753Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T10:52:54.904Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T10:53:25.027Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T10:53:55.164Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T10:54:25.515Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T10:54:55.653Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T10:55:25.772Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T10:55:55.908Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T10:56:26.052Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T10:56:56.182Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T10:57:26.339Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T10:57:56.492Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T10:58:26.622Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T10:58:56.764Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T10:59:26.897Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T10:59:57.027Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T11:00:27.163Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T11:00:57.290Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T11:01:27.444Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T11:01:57.606Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T11:02:27.741Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T11:02:57.879Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T11:03:28.026Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T11:03:58.151Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T11:04:28.281Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T11:04:58.407Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T11:05:28.553Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T11:05:58.681Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T11:06:28.825Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T11:06:58.955Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T11:07:29.098Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T11:07:59.246Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T11:08:29.367Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T11:08:59.508Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T11:09:29.636Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T11:09:59.784Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T11:10:29.930Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T11:11:00.061Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T11:11:30.214Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T11:12:00.360Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T11:12:30.473Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T11:13:00.613Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T11:13:30.744Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T11:14:00.885Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T11:14:31.035Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T11:15:01.161Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T11:15:31.311Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T11:16:01.440Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T11:16:31.594Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T11:17:01.715Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T11:17:31.864Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T11:18:01.996Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T11:18:32.134Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T11:19:02.267Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T11:19:32.420Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T11:20:02.554Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T11:20:32.691Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T11:21:02.825Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T11:21:32.968Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T11:22:03.094Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T11:22:33.223Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T11:23:03.377Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T11:23:33.521Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T11:24:03.649Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T11:24:33.793Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T11:25:03.924Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T11:25:34.052Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T11:26:04.184Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T11:26:34.334Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T11:27:04.463Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T11:27:34.606Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T11:28:04.740Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T11:28:34.863Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T11:29:05.009Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T11:29:35.292Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T11:30:05.420Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T11:30:35.632Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T11:31:05.794Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T11:31:35.935Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T11:32:06.073Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T11:32:36.225Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T11:33:06.353Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T11:33:36.496Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T11:34:06.644Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T11:34:36.774Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T11:35:06.920Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T11:35:37.062Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T11:36:07.188Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T11:36:37.338Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T11:37:07.458Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T11:37:37.594Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T11:38:07.728Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T11:38:38.127Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T11:39:08.270Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T11:39:38.416Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T11:40:08.552Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T11:40:38.704Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T11:41:08.843Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T11:41:38.976Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T11:42:09.129Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T11:42:39.271Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T11:43:09.426Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T11:43:39.576Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T11:44:09.707Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T11:44:39.852Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T11:45:09.995Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T11:45:40.121Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T11:46:10.252Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T11:46:40.398Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T11:47:10.544Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T11:47:40.673Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T11:48:10.822Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T11:48:40.966Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T11:49:11.127Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T11:49:41.269Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T11:50:11.413Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T11:50:41.550Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T11:51:11.676Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T11:51:41.923Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T11:52:12.068Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T11:52:42.205Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T11:53:12.371Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T11:53:42.514Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T11:54:12.648Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T11:54:42.798Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T11:55:12.935Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T11:55:43.080Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T11:56:13.202Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T11:56:43.342Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T11:57:13.480Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T11:57:43.616Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T11:58:13.771Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T11:58:43.899Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T11:59:14.038Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T11:59:44.182Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T12:00:14.305Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T12:00:44.455Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T12:01:14.580Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T12:01:44.722Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T12:02:14.859Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T12:02:44.987Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T12:03:15.375Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T12:03:45.510Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T12:04:15.657Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T12:04:45.788Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T12:05:15.923Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T12:05:46.051Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T12:06:16.190Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T12:06:46.333Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T12:07:16.458Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T12:07:46.600Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T12:08:16.729Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T12:08:46.866Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T12:09:17.010Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T12:09:47.151Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T12:10:17.304Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T12:10:47.431Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T12:11:17.573Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T12:11:47.710Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T12:12:17.840Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T12:12:47.993Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T12:13:18.234Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T12:13:48.383Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T12:14:18.525Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T12:14:48.645Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T12:15:18.780Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T12:15:48.910Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T12:16:19.027Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T12:16:49.168Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T12:17:19.292Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T12:17:49.435Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T12:18:19.842Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T12:18:50.007Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T12:19:20.134Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T12:19:50.499Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T12:20:20.647Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T12:20:50.776Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T12:21:21.096Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T12:21:51.241Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T12:22:21.355Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T12:22:51.503Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T12:23:21.651Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T12:23:51.778Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T12:24:21.924Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T12:24:52.073Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T12:25:22.205Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T12:25:52.334Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T12:26:22.487Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T12:26:52.624Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T12:27:22.751Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T12:27:52.893Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T12:28:23.025Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T12:28:53.160Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T12:29:23.297Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T12:29:53.426Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T12:30:23.570Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T12:30:53.716Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T12:31:23.840Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T12:31:53.980Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T12:32:24.126Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T12:32:54.260Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T12:33:24.408Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T12:33:54.553Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T12:34:24.690Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T12:34:54.851Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T12:35:24.978Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T12:35:55.112Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T12:36:25.302Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T12:36:55.432Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T12:37:25.538Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T12:37:55.626Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T12:38:25.736Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T12:38:55.903Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "11ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T12:39:26.003Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T12:39:56.105Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T12:40:26.199Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T12:40:56.300Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T12:41:26.392Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T12:41:56.481Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T12:42:26.570Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T12:42:56.662Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T12:43:26.763Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T12:43:56.888Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T12:44:27.333Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T12:44:57.527Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T12:45:27.643Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T12:45:57.761Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T12:46:27.875Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T12:46:57.966Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T12:47:28.090Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T12:47:58.302Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T12:48:28.417Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T12:48:58.546Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T12:49:28.647Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T12:49:58.739Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T12:50:28.834Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T12:50:58.930Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T12:51:29.045Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T12:51:59.145Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T12:52:29.287Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T12:52:59.389Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T12:53:29.476Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T12:53:59.588Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T12:54:29.687Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T12:54:59.774Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T12:55:29.867Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T12:55:59.954Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T12:56:30.043Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T12:57:00.136Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T12:57:30.226Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T12:58:00.303Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T12:58:30.389Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T12:59:00.483Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T12:59:30.573Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T13:00:00.671Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T13:00:30.760Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T13:01:00.858Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T13:01:30.945Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T13:02:01.048Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T13:02:31.150Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T13:03:01.231Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T13:03:31.329Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T13:04:01.435Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T13:04:31.559Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T13:05:01.678Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T13:05:31.772Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T13:06:01.867Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T13:06:31.947Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T13:07:02.032Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T13:07:32.135Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T13:08:02.229Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T13:08:32.342Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T13:09:02.437Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T13:09:32.579Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T13:10:02.684Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T13:10:32.822Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T13:11:02.925Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T13:11:33.017Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T13:12:03.127Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T13:12:33.299Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T13:13:03.457Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T13:13:33.574Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T13:14:03.682Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T13:14:33.774Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T13:15:03.935Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T13:15:34.035Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T13:16:04.137Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T13:16:34.215Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T13:17:04.313Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T13:17:34.420Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T13:18:04.498Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T13:18:34.588Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T13:19:04.674Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T13:19:34.776Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T13:20:04.891Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T13:20:35.003Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T13:21:05.091Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T13:21:35.187Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T13:22:05.279Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T13:22:35.373Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T13:23:05.482Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T13:23:35.616Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T13:24:05.693Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T13:24:35.797Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T13:25:05.914Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T13:25:36.005Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T13:26:06.074Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T13:26:36.146Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T13:27:06.220Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T13:27:36.293Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T13:28:06.368Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T13:28:36.458Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T13:29:06.528Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T13:29:36.604Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T13:30:06.684Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T13:30:36.761Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T13:31:06.835Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T13:31:36.901Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T13:32:06.980Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T13:32:37.083Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T13:33:07.157Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T13:33:37.253Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T13:34:07.343Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T13:34:37.438Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T13:35:07.512Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2025-12-31T13:35:37.579Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T06:34:43.600Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-06T06:34:45.357Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-01-06T06:34:45.997Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2026-01-06T06:34:46.006Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-01-06T06:34:47.138Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "10ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T06:35:17.314Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T06:35:47.394Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T06:36:17.492Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T06:36:47.586Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T06:37:17.683Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T06:37:47.773Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T06:38:17.867Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T06:38:47.988Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T06:39:18.093Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T06:39:48.196Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T06:40:18.325Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T06:40:48.452Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T06:41:18.528Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T06:41:37.702Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:172.20.0.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36" -} -[2026-01-06T06:41:41.870Z] [INFO] ℹ️ MariaDB 연결 성공 - Context: { - "connection": "db:3306", - "database": "hyungi", - "connectionLimit": 10 -} -[2026-01-06T06:41:41.949Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 200, - "duration": "97ms", - "ip": "::ffff:172.20.0.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36" -} -[2026-01-06T06:41:42.343Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-06", - "requester": 3, - "isAdmin": false -} -[2026-01-06T06:41:42.356Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-06T06:41:42.357Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-06&view_all=true", - "statusCode": 200, - "duration": "18ms", - "ip": "::ffff:172.20.0.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36" -} -[2026-01-06T06:41:42.366Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "33ms", - "ip": "::ffff:172.20.0.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36" -} -[2026-01-06T06:41:43.286Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:172.20.0.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36" -} -[2026-01-06T06:41:47.894Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:172.20.0.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36" -} -[2026-01-06T06:41:47.911Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:172.20.0.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36" -} -[2026-01-06T06:41:47.916Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/tasks", - "method": "GET" -} -[2026-01-06T06:41:47.917Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/tasks", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:172.20.0.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36" -} -[2026-01-06T06:41:48.599Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T06:41:48.855Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:172.20.0.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36" -} -[2026-01-06T06:41:50.134Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "21ms", - "ip": "::ffff:172.20.0.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36" -} -[2026-01-06T06:41:51.108Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:172.20.0.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36" -} -[2026-01-06T06:41:55.859Z] [ERROR] ❌ 작업자 수정 중 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 작업자 수정 중 오류가 발생했습니다\n at /usr/src/app/controllers/workerController.js:121:23\n at Object.update (/usr/src/app/models/workerModel.js:119:4)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "url": "/api/workers/7", - "method": "PUT", - "user": "김두수" -} -[2026-01-06T06:41:55.863Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "PUT", - "url": "/api/workers/7", - "statusCode": 500, - "duration": "8ms", - "ip": "::ffff:172.20.0.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36" -} -[2026-01-06T06:41:58.859Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:172.20.0.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36" -} -[2026-01-06T06:41:59.851Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::ffff:172.20.0.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36" -} -[2026-01-06T06:42:08.280Z] [ERROR] ❌ 작업자 수정 중 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 작업자 수정 중 오류가 발생했습니다\n at /usr/src/app/controllers/workerController.js:121:23\n at Object.update (/usr/src/app/models/workerModel.js:119:4)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "url": "/api/workers/7", - "method": "PUT", - "user": "김두수" -} -[2026-01-06T06:42:08.282Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "PUT", - "url": "/api/workers/7", - "statusCode": 500, - "duration": "5ms", - "ip": "::ffff:172.20.0.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36" -} -[2026-01-06T06:42:18.676Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T06:42:48.760Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T06:43:18.847Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T06:43:48.928Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T06:44:19.017Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T06:44:49.111Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T06:45:19.192Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T06:45:49.289Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T06:46:19.403Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T06:46:32.448Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:172.20.0.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36" -} -[2026-01-06T06:46:33.450Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:172.20.0.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36" -} -[2026-01-06T06:46:36.983Z] [ERROR] ❌ 작업자 수정 중 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 작업자 수정 중 오류가 발생했습니다\n at /usr/src/app/controllers/workerController.js:121:23\n at Object.update (/usr/src/app/models/workerModel.js:119:4)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "url": "/api/workers/7", - "method": "PUT", - "user": "김두수" -} -[2026-01-06T06:46:36.985Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "PUT", - "url": "/api/workers/7", - "statusCode": 500, - "duration": "7ms", - "ip": "::ffff:172.20.0.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36" -} -[2026-01-06T06:46:40.770Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:172.20.0.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36" -} -[2026-01-06T06:46:40.794Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:172.20.0.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36" -} -[2026-01-06T06:46:40.801Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/tasks", - "method": "GET" -} -[2026-01-06T06:46:40.803Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/tasks", - "statusCode": 404, - "duration": "4ms", - "ip": "::ffff:172.20.0.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36" -} -[2026-01-06T06:46:41.766Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:172.20.0.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36" -} -[2026-01-06T06:46:43.086Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:172.20.0.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36" -} -[2026-01-06T06:46:44.077Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:172.20.0.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36" -} -[2026-01-06T06:46:48.115Z] [INFO] ℹ️ 프로젝트 수정 성공 - Context: { - "project_id": 11 -} -[2026-01-06T06:46:48.118Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "PUT", - "url": "/api/projects/11", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:172.20.0.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36" -} -[2026-01-06T06:46:48.128Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:172.20.0.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36" -} -[2026-01-06T06:46:49.521Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T06:47:00.535Z] [INFO] ℹ️ 프로젝트 생성 요청 - Context: {} -[2026-01-06T06:47:00.540Z] [INFO] ℹ️ 프로젝트 생성 성공 - Context: { - "project_id": 15 -} -[2026-01-06T06:47:00.541Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/projects", - "statusCode": 201, - "duration": "9ms", - "ip": "::ffff:172.20.0.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36" -} -[2026-01-06T06:47:00.551Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:172.20.0.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36" -} -[2026-01-06T06:47:19.609Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T06:47:49.698Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T06:48:19.782Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T06:48:49.884Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T06:49:19.983Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T06:49:50.084Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T06:50:20.178Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T06:50:50.265Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T06:51:20.359Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T06:51:50.447Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T06:52:20.542Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T06:52:50.631Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T06:53:20.731Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T06:53:50.810Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T06:54:20.910Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T06:54:51.011Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T06:55:21.103Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T06:55:51.196Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T06:56:21.294Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T06:56:51.408Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T07:13:03.648Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T07:14:59.249Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T07:27:59.698Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T08:06:54.064Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T08:07:24.204Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T08:07:54.309Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T08:08:24.436Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T08:08:54.512Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T08:09:24.602Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T08:09:54.709Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T08:10:24.874Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T08:10:54.984Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T08:11:25.142Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T08:11:55.233Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T08:12:25.328Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T08:12:55.432Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T08:13:25.529Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T08:13:55.633Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T08:14:25.742Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T08:14:55.838Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T08:15:25.943Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T08:15:56.068Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T08:16:26.155Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T08:16:56.249Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T08:17:26.343Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T08:17:56.445Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T08:18:26.543Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T08:18:56.636Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T08:19:26.730Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T08:19:56.820Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T08:20:26.903Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T08:20:57.006Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T08:21:27.099Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T08:21:57.182Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T08:22:27.289Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T08:22:57.394Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T08:23:27.481Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T08:23:57.588Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T08:24:27.681Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T08:24:57.788Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T08:25:27.879Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T08:25:57.975Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T08:26:28.101Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T08:26:58.186Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T08:27:28.301Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T08:27:58.381Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T08:28:28.488Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T08:28:58.585Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T08:29:28.688Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T08:29:58.806Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T08:30:28.940Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T08:30:59.039Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T08:31:29.132Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T08:31:59.225Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T08:32:29.339Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T08:32:59.444Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T08:33:29.552Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T08:33:59.674Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T08:34:29.766Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T08:34:59.864Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T08:35:29.957Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T08:36:00.046Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T08:36:30.137Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T08:37:00.227Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T08:37:30.307Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T08:38:00.396Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T08:38:30.485Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T08:39:00.603Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T08:39:30.718Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T08:40:00.802Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T08:40:30.915Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T08:41:01.012Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T08:41:31.122Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T08:42:01.225Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T08:42:31.312Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T08:43:01.406Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T08:43:31.498Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T08:44:01.590Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T08:44:31.695Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T08:45:01.787Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T08:45:31.880Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T08:46:02.014Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T08:46:32.108Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T08:47:02.201Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T08:47:32.295Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T08:48:02.397Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T08:48:32.480Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T08:49:02.579Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T08:49:32.657Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T08:50:02.743Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T08:50:32.857Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T08:51:02.970Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T08:51:33.043Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T08:52:03.184Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T08:59:17.064Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T08:59:47.184Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T09:13:29.982Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T09:14:00.079Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T09:27:16.626Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T09:28:38.889Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "6ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T09:41:35.067Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T09:42:05.177Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T09:42:35.285Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T09:43:05.403Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T09:43:35.497Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T09:44:05.611Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T09:44:35.711Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T09:45:05.799Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T09:45:35.897Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T09:46:06.002Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T09:46:36.114Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T09:47:06.208Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T09:47:36.307Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T09:48:06.408Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T09:48:36.516Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T09:49:06.623Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T09:49:36.714Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T09:50:06.828Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T09:50:36.953Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T09:51:07.073Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T09:51:37.158Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T09:52:07.250Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T09:52:37.347Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T09:53:07.437Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T09:53:37.534Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T09:54:07.620Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T09:54:37.724Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T09:55:07.841Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T09:55:37.947Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T09:56:08.053Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T09:56:38.159Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T09:57:08.259Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T09:57:38.360Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T09:58:08.469Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T09:58:38.574Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T09:59:08.686Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T09:59:38.830Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T10:00:08.938Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T10:00:39.025Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T10:01:09.127Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T10:01:39.215Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T10:02:09.310Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T10:02:39.391Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T10:03:09.491Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T10:03:39.583Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T10:04:09.672Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T10:04:39.763Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T10:05:09.851Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T10:05:39.945Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T10:06:10.039Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T10:06:40.121Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T10:07:10.205Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T10:07:40.297Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T10:08:10.394Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T10:08:40.485Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T10:09:10.572Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T10:09:40.664Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T10:10:10.747Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T10:10:40.833Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T10:11:10.913Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T10:11:41.006Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T10:12:11.085Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T10:12:41.178Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T10:13:11.285Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T10:13:41.364Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T10:14:11.415Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T10:14:41.473Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T10:15:11.552Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T10:15:41.639Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T10:16:11.736Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T10:16:41.821Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T10:17:11.916Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T10:17:42.015Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T10:18:12.109Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T10:18:42.206Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T10:19:12.294Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T10:19:42.388Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T10:20:12.465Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T10:20:42.561Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T10:21:12.650Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T10:21:42.724Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T10:22:12.811Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T10:22:42.894Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T10:23:12.990Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T10:23:43.084Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T10:24:13.166Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T10:24:43.255Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T10:25:13.339Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T10:25:43.426Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T10:26:13.507Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T10:26:43.594Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T10:27:13.687Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T10:27:43.787Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T10:28:13.855Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T10:28:43.929Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T10:29:13.992Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T10:29:44.060Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T10:30:14.164Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T10:30:44.266Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T10:31:14.353Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T10:31:44.451Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T10:32:14.546Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T10:32:44.641Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T10:33:14.741Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T10:33:44.837Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T10:34:14.934Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T10:34:45.017Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T10:35:15.114Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T10:35:45.197Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T10:36:15.280Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T10:36:45.369Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T10:37:15.462Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T10:37:45.557Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T10:38:15.652Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T10:38:45.748Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T10:39:15.842Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T10:39:45.925Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T10:40:16.025Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T10:40:46.114Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T10:41:16.204Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T10:41:46.296Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T10:42:16.407Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T10:42:46.505Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T10:43:16.601Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T10:43:46.703Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T10:44:16.792Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T10:44:46.880Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T10:45:16.990Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T10:45:47.080Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T10:46:17.171Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T10:46:47.271Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T10:47:17.366Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T10:47:47.456Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T10:48:17.549Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T10:48:47.639Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T10:49:17.730Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T10:49:47.820Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T10:50:17.933Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T10:50:48.028Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T10:51:18.127Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T10:51:48.226Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T10:52:18.327Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T10:52:48.411Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T10:53:18.505Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T10:53:48.592Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T10:54:18.690Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T10:54:48.789Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T10:55:18.887Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T10:55:48.977Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T10:56:19.071Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T11:56:08.754Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T12:04:39.567Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T12:06:29.012Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T12:34:47.858Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T12:35:17.951Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T12:35:48.050Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T12:36:18.122Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T12:36:48.199Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T12:37:18.284Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T12:37:48.367Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T12:38:18.500Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T12:38:48.587Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T12:39:18.655Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T12:39:48.739Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T12:40:18.810Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T12:40:48.908Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T12:41:18.994Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T12:41:49.084Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T12:42:19.168Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T12:42:49.244Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T12:43:19.321Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T12:43:49.413Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T12:44:19.513Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T12:44:49.597Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T12:45:19.686Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T12:45:49.769Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T12:46:19.846Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T12:46:49.936Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T12:47:20.019Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T12:47:50.080Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T12:48:20.138Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T12:48:50.201Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T12:49:20.269Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T12:49:50.358Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T12:50:20.434Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T12:50:50.514Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T12:51:20.606Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T12:51:50.682Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T12:52:20.764Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T12:52:50.852Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T12:53:20.933Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T12:53:51.011Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T12:54:21.105Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T12:54:51.191Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T12:55:21.278Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T12:55:51.345Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T12:56:21.431Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T12:56:51.502Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T12:57:21.584Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T12:57:51.666Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T12:58:21.758Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T12:58:51.838Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T12:59:21.920Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T12:59:52.054Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T13:00:22.147Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T13:00:52.226Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T13:01:22.304Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T13:01:52.389Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T13:02:22.458Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T13:02:52.523Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T13:03:22.599Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T13:03:52.681Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T13:04:22.802Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T13:04:52.900Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T13:05:22.987Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T13:05:53.064Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T13:06:23.146Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T13:06:53.231Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T13:07:23.320Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T13:07:53.399Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T13:08:23.474Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T13:08:53.576Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T13:09:23.657Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T13:09:53.736Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T13:10:23.834Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T13:10:53.920Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T13:11:24.002Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T13:11:54.081Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T13:12:24.166Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T13:12:54.244Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T13:13:24.341Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T13:13:54.430Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T13:14:24.507Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T13:14:54.594Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T13:15:24.676Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T13:15:54.755Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T13:16:24.850Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T13:16:54.927Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T13:17:25.010Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T13:17:55.082Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T13:18:25.162Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T13:18:55.244Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T13:19:25.334Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T13:19:55.411Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T13:20:25.485Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T13:20:55.563Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T13:21:25.650Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T13:21:55.727Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T13:22:25.801Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T13:22:55.888Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T13:23:25.959Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T13:23:56.032Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T13:24:26.125Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T13:24:56.192Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T13:25:26.274Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T13:25:56.423Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T13:26:26.501Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T13:26:56.579Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T13:27:26.664Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T13:27:56.749Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T13:28:26.862Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T13:28:56.949Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T13:29:27.044Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T13:29:57.125Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T13:30:27.211Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T13:30:57.316Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T13:31:27.402Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T13:31:57.484Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T13:32:27.591Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T13:32:57.689Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T13:33:27.770Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T13:33:57.861Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T13:34:27.959Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T13:34:58.060Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T13:35:28.156Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T13:35:58.239Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T13:36:28.333Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T13:36:58.429Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T13:37:28.515Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T13:37:58.595Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T13:38:28.678Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T13:38:58.774Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T13:39:28.853Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T13:39:58.938Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T13:40:29.018Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T13:40:59.085Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T13:41:29.159Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T13:41:59.246Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T13:42:29.320Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T13:42:59.399Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T13:43:29.485Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T13:43:59.587Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T13:44:29.664Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T13:44:59.766Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T13:45:29.848Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T13:45:59.930Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T13:46:30.001Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T13:47:00.067Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T13:47:30.142Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T13:48:00.213Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T13:48:30.303Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T13:49:00.384Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T13:49:30.472Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T13:50:00.546Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T13:50:30.622Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T13:51:00.696Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T13:51:30.768Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T13:52:00.843Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T13:52:30.922Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T13:53:01.012Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T13:53:31.091Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T13:54:01.170Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T13:54:31.244Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T13:55:01.347Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T13:55:31.413Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T13:56:01.505Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T13:56:31.565Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T13:57:01.637Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T13:57:31.704Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T13:58:01.785Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T13:58:31.874Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T13:59:01.947Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T13:59:32.054Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T14:00:02.128Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T14:00:32.219Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T14:01:02.297Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T14:01:32.392Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T14:02:02.616Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T14:02:32.719Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T14:03:02.793Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T14:03:32.882Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T14:04:02.967Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T14:04:33.057Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T14:05:03.139Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T14:05:33.234Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T14:06:03.339Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T14:06:33.425Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T14:07:03.527Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T14:07:33.607Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T14:08:03.702Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T14:08:33.789Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T14:09:03.866Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T14:09:33.940Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T14:10:04.009Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T14:10:34.111Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T14:11:04.191Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T14:11:34.269Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T14:12:04.346Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T14:12:34.420Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T14:13:04.511Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T14:13:34.601Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T14:14:04.687Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T14:14:34.796Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T14:15:04.886Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T14:15:35.149Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T14:16:05.245Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T14:16:35.354Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T14:17:05.503Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T14:17:35.614Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T14:18:05.695Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T14:18:35.789Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T14:19:05.882Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T14:20:29.945Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T14:21:00.057Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T14:29:13.794Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T14:29:43.889Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T14:32:52.855Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T14:33:56.728Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T14:34:26.822Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T14:42:54.361Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T14:43:24.454Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T15:30:20.668Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T15:30:50.763Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T15:33:38.608Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T15:34:08.695Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T16:00:26.218Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T16:18:36.983Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T16:20:53.908Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T16:37:37.399Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T17:21:45.699Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T17:22:15.795Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T17:30:52.632Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T17:58:59.993Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T17:59:30.079Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T18:22:38.339Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T18:23:08.435Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T18:33:58.656Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T18:34:28.753Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T18:46:53.534Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T19:34:07.554Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T19:34:37.652Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T20:03:46.953Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T20:04:17.048Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T20:11:48.599Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T20:12:18.696Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T20:24:00.386Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T20:28:28.118Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T20:28:58.204Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T20:33:49.498Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T20:34:19.605Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T21:19:23.865Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T21:19:53.959Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T21:20:24.227Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T21:21:12.349Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T21:21:42.506Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T21:22:14.468Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T21:29:40.583Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T21:30:38.139Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T21:31:08.237Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T21:31:38.332Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T21:32:08.424Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T21:32:38.513Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T21:33:08.608Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T21:33:38.701Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T21:34:08.795Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T21:34:38.881Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T21:35:08.965Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T21:35:39.057Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T21:36:09.156Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T21:36:39.241Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T21:37:09.329Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T21:37:39.418Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T21:38:09.506Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T21:38:39.592Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T21:39:09.692Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T21:39:39.788Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T21:40:09.874Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T21:40:39.961Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T21:41:10.051Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T21:41:40.138Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T21:42:10.231Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T21:42:40.321Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T21:43:10.405Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T21:43:40.495Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T21:44:10.580Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T21:44:40.679Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T21:45:10.774Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T21:45:40.866Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T21:46:10.955Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T21:46:41.032Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T21:47:11.113Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T21:47:41.193Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T21:48:11.287Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T21:48:41.378Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T21:49:11.461Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T21:49:41.541Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T21:50:11.631Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T21:50:41.723Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T21:51:11.815Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T21:51:41.907Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T21:52:11.999Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T21:52:42.090Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T21:53:12.182Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T21:53:42.267Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T21:54:12.374Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T21:54:42.472Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T21:55:12.560Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T21:55:42.653Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T21:56:12.743Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T21:56:42.839Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T21:57:12.934Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T21:57:43.020Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T21:58:13.104Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T21:58:43.193Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T21:59:13.286Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T21:59:43.370Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T22:00:13.449Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T22:00:43.536Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T22:01:13.627Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T22:01:43.718Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T22:02:13.808Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T22:02:43.916Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T22:03:14.008Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T22:03:44.101Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T22:04:14.203Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T22:04:44.293Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T22:05:14.382Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T22:05:44.476Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T22:06:14.563Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T22:06:44.654Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T22:07:14.744Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T22:07:44.828Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T22:08:14.913Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T22:08:45.001Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T22:09:15.091Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T22:09:45.214Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T22:10:15.323Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T22:10:45.417Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T22:11:15.488Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T22:11:45.553Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T22:12:15.626Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T22:12:45.716Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T22:13:15.806Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T22:13:45.897Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T22:14:15.990Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T22:14:46.096Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T22:15:16.190Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T22:15:46.265Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T22:16:16.353Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T22:16:46.439Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T22:17:16.528Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T22:17:46.612Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T22:18:16.706Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T22:18:46.784Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T22:19:16.889Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T22:19:46.978Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T22:20:17.060Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T22:20:47.147Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T22:21:17.235Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T22:21:47.324Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T22:22:17.404Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T22:22:47.513Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T22:23:17.599Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T22:23:47.684Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T22:24:17.786Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T22:24:47.872Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T22:25:17.969Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T22:25:48.059Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T22:26:18.144Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T22:26:48.235Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T22:27:18.355Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T22:27:48.462Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T22:28:18.554Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T22:28:48.653Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T22:29:18.748Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T22:29:48.839Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T22:30:18.924Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T22:30:49.033Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T22:31:19.139Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T22:31:49.233Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T22:32:19.353Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T22:32:49.465Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T22:33:19.596Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T22:33:49.695Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T22:34:19.851Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "6ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T22:34:49.942Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T22:35:20.038Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T22:35:50.120Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T22:36:20.205Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T22:36:50.325Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T22:37:20.415Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T22:37:50.531Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T22:38:20.627Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T22:38:50.747Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T22:39:20.837Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T22:39:50.959Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T22:40:21.046Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T22:40:51.154Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T22:41:21.252Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T22:41:51.380Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T22:42:21.473Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T22:42:51.578Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T22:43:21.680Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T22:43:51.777Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T22:44:21.870Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T22:44:51.976Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T22:45:22.092Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T22:45:52.201Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T22:46:22.288Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T22:46:52.392Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T22:47:22.483Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T22:47:52.581Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T22:48:22.673Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T22:48:52.759Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T22:49:22.870Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T22:49:52.955Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T22:50:23.051Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T22:50:53.151Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T22:51:23.236Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T22:51:53.339Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T22:52:23.438Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T22:52:53.536Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T22:53:23.617Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T22:53:53.714Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T22:54:23.806Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T22:54:53.911Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T22:55:24.001Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T22:55:54.115Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T22:56:24.202Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T22:56:54.289Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T22:57:24.393Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T22:57:54.492Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T22:58:24.571Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T22:58:54.673Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T22:59:24.761Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T22:59:54.922Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T23:00:25.017Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T23:00:55.112Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T23:01:25.203Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T23:01:55.313Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T23:02:25.404Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T23:02:55.496Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T23:03:25.607Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T23:03:55.720Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T23:04:25.808Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T23:04:55.916Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T23:05:26.000Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T23:05:56.109Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T23:06:26.205Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T23:06:56.304Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T23:07:26.403Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T23:07:56.506Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T23:08:26.608Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T23:08:56.694Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T23:09:26.752Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T23:09:56.835Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T23:10:26.908Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T23:10:56.999Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T23:11:27.086Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T23:11:57.183Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T23:12:27.253Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T23:12:57.304Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T23:13:27.362Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T23:13:57.414Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T23:14:27.484Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T23:14:57.532Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T23:15:27.598Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T23:15:57.647Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T23:16:27.714Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T23:16:57.781Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T23:17:27.855Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T23:17:57.931Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T23:18:27.983Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T23:18:58.064Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T23:19:28.169Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T23:19:58.232Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T23:20:28.309Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T23:20:58.354Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T23:21:28.438Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T23:21:58.511Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T23:22:28.584Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T23:22:58.647Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T23:23:28.726Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T23:23:58.801Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T23:24:28.891Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T23:24:59.011Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T23:25:29.116Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T23:25:59.217Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T23:26:29.333Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T23:26:59.427Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T23:27:29.512Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T23:27:59.612Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T23:28:29.721Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T23:28:59.811Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T23:29:29.906Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T23:30:00.010Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T23:30:30.091Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T23:31:00.178Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T23:31:30.275Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T23:32:00.372Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T23:32:30.463Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T23:33:00.559Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T23:33:30.656Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T23:34:00.747Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T23:34:30.823Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T23:35:00.908Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T23:35:30.999Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T23:36:01.084Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T23:36:31.164Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T23:37:01.260Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T23:37:31.355Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T23:38:01.444Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T23:38:31.524Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T23:39:01.599Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T23:39:31.689Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T23:40:01.778Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T23:40:31.856Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T23:41:01.951Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T23:41:32.034Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T23:42:02.120Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T23:42:32.199Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T23:43:02.294Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T23:43:32.379Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T23:44:02.479Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T23:44:32.569Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T23:45:02.666Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T23:45:32.760Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T23:46:02.853Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T23:46:32.948Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T23:48:27.244Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T23:48:57.339Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T23:49:27.430Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T23:49:57.522Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T23:50:27.598Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T23:50:57.697Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T23:51:27.788Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T23:51:57.883Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T23:52:27.970Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T23:52:58.057Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T23:53:28.159Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T23:53:58.232Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T23:54:28.313Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T23:54:58.396Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T23:55:28.486Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T23:55:58.577Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T23:56:28.671Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T23:56:58.769Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T23:58:09.657Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T23:58:39.747Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T23:59:09.835Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-06T23:59:39.928Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T00:00:10.019Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T00:00:40.112Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T00:01:10.205Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T00:01:40.296Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T00:02:10.385Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T00:02:40.462Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T00:03:10.527Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T00:03:40.604Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T00:04:10.697Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T00:04:40.792Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T00:05:10.867Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T00:05:40.935Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T00:06:11.023Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T00:06:41.092Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T00:07:11.167Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T00:07:41.240Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T00:08:11.331Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T00:08:41.409Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T00:09:11.512Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T00:09:41.634Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T00:10:11.732Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T00:10:41.843Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T00:11:11.942Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T00:11:42.036Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T00:12:12.128Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T00:12:42.217Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T00:13:12.298Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T00:13:42.367Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T00:14:12.453Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T00:14:42.542Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T00:15:12.636Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T00:15:42.749Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "9ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T00:16:12.832Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T00:19:22.906Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T00:19:52.997Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T00:28:30.409Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T00:30:13.436Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T00:30:43.529Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T01:05:03.903Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T01:05:33.981Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T01:33:48.324Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T01:34:21.933Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T01:34:52.023Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T01:36:20.710Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T01:36:50.794Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T01:37:44.677Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T01:46:19.987Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T01:46:50.098Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T01:48:32.763Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T02:17:02.717Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T02:17:32.817Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T02:34:17.716Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T02:34:47.802Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T02:58:38.782Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T02:59:08.891Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T02:59:39.033Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T03:00:09.150Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T03:00:39.242Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T03:01:09.359Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T03:01:39.468Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T03:02:09.561Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T03:02:39.656Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T03:03:09.720Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T03:03:39.787Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T03:04:09.879Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T03:04:39.968Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T03:05:10.057Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T03:05:40.149Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T03:06:10.240Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T03:06:40.332Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T03:07:10.413Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T03:07:40.486Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T03:08:10.577Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T03:08:40.666Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T03:09:10.774Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T03:09:40.870Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T03:10:10.941Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T03:10:41.024Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T03:11:11.107Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T03:11:41.222Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T03:12:11.310Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T03:12:41.408Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T03:13:11.534Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T03:13:41.641Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T03:14:11.752Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T03:14:41.858Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T03:15:11.976Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T03:15:42.064Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T03:16:12.153Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T03:16:42.254Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T03:17:12.343Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T03:17:42.431Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T03:18:12.522Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T03:18:42.613Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T03:19:12.700Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T03:19:42.786Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T03:20:12.874Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T03:20:42.986Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T03:21:13.096Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T03:21:43.184Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T03:22:13.290Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T03:22:43.385Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T03:23:13.476Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T03:23:43.557Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T03:24:13.655Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T03:24:43.735Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T03:25:13.833Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T03:25:43.914Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T03:26:14.006Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T03:26:44.091Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T03:27:14.188Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T03:27:44.283Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T03:28:14.378Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T03:28:44.462Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T03:29:14.558Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T03:29:44.650Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T03:30:14.748Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T03:30:44.831Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T03:31:14.915Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T03:31:44.997Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T03:32:15.080Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T03:32:45.172Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T03:33:15.264Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T03:33:45.353Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T03:34:15.447Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T03:34:45.543Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T03:35:15.644Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T03:35:45.719Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T03:36:15.803Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T03:36:45.885Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T03:37:15.976Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T03:37:46.066Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T03:38:16.158Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T03:38:46.250Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T03:39:16.344Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T03:39:46.443Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T03:40:16.555Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T03:40:46.641Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T03:41:16.733Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T03:41:46.832Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T03:42:16.920Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T03:42:47.013Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T03:43:17.103Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T03:43:47.197Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T03:44:17.285Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T03:44:47.385Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T03:45:17.478Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T03:45:47.559Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T03:46:17.661Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T03:46:47.751Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T03:47:17.840Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T03:47:47.930Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T03:48:18.018Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T03:48:48.113Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T03:49:18.206Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T03:49:48.299Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T03:50:18.397Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T03:50:48.481Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T03:51:18.589Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T03:56:40.547Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T03:57:10.645Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T03:57:40.736Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T03:58:10.833Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T03:58:40.920Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T03:59:11.008Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T03:59:41.103Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T04:00:11.196Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T04:00:41.284Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T04:01:11.382Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T04:01:41.474Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T04:02:11.603Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T04:02:41.701Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T04:03:11.790Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T04:03:41.877Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T04:04:11.973Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T04:04:42.094Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T04:06:52.313Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T04:07:22.418Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T04:07:52.522Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T04:08:22.609Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T04:08:52.728Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T04:09:22.809Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T04:09:52.893Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T04:10:22.983Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T04:10:53.078Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T04:11:23.237Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "5ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T04:11:53.337Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T04:12:23.443Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T04:12:53.541Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T04:13:23.640Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T04:13:53.732Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T04:14:23.824Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T04:14:53.951Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T04:15:24.040Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T04:15:54.122Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T04:16:24.232Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T04:16:54.321Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T04:17:24.429Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T04:17:54.522Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T04:18:24.609Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T04:18:54.699Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T04:19:24.781Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T04:19:54.879Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T04:20:24.972Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T04:20:55.078Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T04:21:25.164Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T04:21:55.248Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T04:22:25.354Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T04:22:55.448Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T04:23:25.532Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T04:23:55.622Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T04:24:25.711Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T04:24:55.816Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T04:25:25.900Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T04:25:55.988Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T04:26:26.080Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T04:26:56.180Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T04:27:26.277Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T04:27:56.374Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T04:28:26.466Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T04:28:56.557Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T04:29:26.651Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T04:29:56.739Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T04:30:26.808Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T04:30:56.897Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T04:31:26.991Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T04:31:57.073Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T04:32:27.168Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T04:32:57.266Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T04:33:27.351Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T04:33:57.442Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T04:34:27.527Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T04:34:57.609Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T04:35:27.694Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T04:35:57.775Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T04:36:27.870Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T04:36:57.963Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T04:37:28.072Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T04:37:58.164Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T04:38:28.251Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T04:38:58.348Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T04:39:28.442Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T04:39:58.535Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T04:40:28.635Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T04:40:58.736Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T04:41:28.797Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T04:41:58.905Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T04:42:28.980Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T04:42:59.084Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T04:44:50.676Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T04:45:20.802Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T04:45:50.887Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T04:46:20.990Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T04:46:51.101Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T04:47:21.189Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T04:47:51.294Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T04:48:21.400Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T04:48:51.499Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T04:49:21.606Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T04:49:51.718Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T04:50:21.814Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T04:50:51.930Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T04:51:22.031Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T04:51:52.138Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T04:52:22.230Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T04:52:52.338Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T04:53:22.465Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T04:53:52.564Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T04:54:22.703Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T04:54:52.798Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T04:55:22.895Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T04:55:52.987Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T04:56:23.084Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T04:56:53.577Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T04:57:23.687Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T04:57:53.688Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T04:58:23.854Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T04:58:53.968Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T04:59:24.056Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T04:59:54.145Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T05:00:24.259Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T05:00:54.363Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T05:01:24.468Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T05:01:54.616Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T05:02:24.734Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T05:02:54.825Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T05:03:24.937Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T05:03:55.050Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T05:04:25.189Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T05:04:55.306Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T05:05:25.392Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T05:05:55.509Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T05:06:25.616Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T05:06:55.732Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T05:07:25.829Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T05:07:55.950Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T05:08:26.041Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T05:08:56.152Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T05:09:26.258Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T05:09:56.358Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T05:10:26.463Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T05:10:56.568Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T05:11:26.660Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T05:11:56.756Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T05:12:26.877Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T05:12:56.967Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T05:13:27.080Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T05:13:57.178Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T05:14:27.267Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T05:14:57.372Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T05:15:27.472Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T05:15:57.561Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T05:16:27.633Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T05:16:57.725Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T05:17:27.815Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T05:17:57.907Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T05:18:28.009Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T05:18:58.113Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T05:19:28.201Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T05:19:58.300Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T05:20:28.401Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T05:20:58.510Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T05:21:28.610Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T05:21:58.711Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T05:22:28.810Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T05:22:58.911Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T05:23:29.026Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T05:23:59.125Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T05:24:29.230Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T05:24:59.326Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T05:25:29.425Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T05:25:59.518Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T05:26:29.622Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T05:26:59.712Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T05:27:29.784Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T05:27:59.883Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T05:28:29.963Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T05:29:00.056Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T05:29:30.152Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T05:30:00.261Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T05:30:30.341Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T05:31:00.433Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T05:31:30.490Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T05:32:00.586Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T05:32:30.642Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T05:33:00.727Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T05:33:30.798Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T05:34:00.880Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T05:34:30.963Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T05:35:01.058Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T05:35:31.156Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T05:36:01.253Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T05:36:31.336Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T05:37:01.424Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T05:37:31.511Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T05:38:01.610Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T05:38:31.693Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T05:39:01.779Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T05:39:31.880Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T05:40:01.962Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T05:40:32.064Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T05:41:02.155Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T05:41:32.252Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T05:42:02.351Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T05:42:32.439Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T05:43:02.548Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T05:43:32.637Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T05:44:02.717Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T05:44:32.802Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T05:45:02.896Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T05:45:33.004Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T05:46:03.096Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T05:46:33.191Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T05:47:03.295Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T05:47:33.384Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T05:48:03.465Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T05:48:33.564Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T05:49:03.661Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T05:49:33.761Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T05:50:03.856Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T05:50:33.970Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T05:51:04.075Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T05:51:34.221Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T05:52:04.321Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T05:52:34.428Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T05:53:04.527Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T05:53:34.618Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T05:54:04.708Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T05:54:34.838Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T05:55:04.941Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T05:55:35.074Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T05:56:05.146Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T05:56:35.232Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T05:57:05.319Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T05:57:35.415Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T05:58:05.511Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T05:58:35.602Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T05:59:05.697Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T05:59:35.789Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T06:00:05.860Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T06:00:35.951Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T06:01:06.040Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T06:01:36.138Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T06:02:06.228Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T06:02:36.310Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T06:03:06.397Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T06:03:36.486Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T06:04:06.573Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T06:04:36.666Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T06:05:06.755Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T06:05:36.843Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T06:06:06.941Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T06:07:16.790Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T06:07:46.874Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T06:08:16.978Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T06:08:47.079Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T06:09:17.168Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T06:09:47.251Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T06:10:17.344Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T06:10:47.436Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T06:11:17.522Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T06:11:47.623Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T06:12:17.725Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T06:12:47.822Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T06:13:17.906Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T06:13:48.011Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T06:14:18.148Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "8ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T06:14:48.239Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T06:15:18.354Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T06:15:48.455Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T06:16:18.576Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T06:16:48.680Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T06:17:18.783Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T06:17:48.904Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T06:18:18.994Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T06:18:49.080Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T06:19:19.179Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T06:19:49.277Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T06:20:19.359Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T06:20:49.450Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T06:25:49.433Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T06:26:19.512Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T06:26:49.635Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T06:27:19.732Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T06:27:49.820Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T06:28:19.924Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T06:28:50.010Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T06:29:20.104Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T06:29:50.200Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T06:30:20.287Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T06:30:50.371Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T06:31:20.469Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T06:31:50.577Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T06:32:20.671Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T06:32:50.755Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T06:33:20.850Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T06:33:50.939Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T06:34:21.032Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T06:34:51.130Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T06:35:21.213Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T06:35:51.332Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T06:36:21.472Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T06:36:51.577Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T06:37:21.665Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T06:37:51.770Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T06:38:00.301Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:172.20.0.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36" -} -[2026-01-07T06:38:03.084Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 200, - "duration": "112ms", - "ip": "::ffff:172.20.0.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36" -} -[2026-01-07T06:38:03.451Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-07", - "requester": 3, - "isAdmin": false -} -[2026-01-07T06:38:03.461Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-07T06:38:03.464Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-07&view_all=true", - "statusCode": 200, - "duration": "15ms", - "ip": "::ffff:172.20.0.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36" -} -[2026-01-07T06:38:03.483Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "38ms", - "ip": "::ffff:172.20.0.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36" -} -[2026-01-07T06:38:04.418Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:172.20.0.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36" -} -[2026-01-07T06:38:12.667Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:172.20.0.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36" -} -[2026-01-07T06:38:12.683Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:172.20.0.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36" -} -[2026-01-07T06:38:12.690Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/tasks", - "method": "GET" -} -[2026-01-07T06:38:12.691Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/tasks", - "statusCode": 404, - "duration": "1ms", - "ip": "::ffff:172.20.0.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36" -} -[2026-01-07T06:38:13.651Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:172.20.0.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36" -} -[2026-01-07T06:38:14.798Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:172.20.0.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36" -} -[2026-01-07T06:38:15.793Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:172.20.0.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36" -} -[2026-01-07T06:38:19.704Z] [ERROR] ❌ 작업자 수정 중 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 작업자 수정 중 오류가 발생했습니다\n at /usr/src/app/controllers/workerController.js:121:23\n at Object.update (/usr/src/app/models/workerModel.js:119:4)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "url": "/api/workers/7", - "method": "PUT", - "user": "김두수" -} -[2026-01-07T06:38:19.707Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "PUT", - "url": "/api/workers/7", - "statusCode": 500, - "duration": "7ms", - "ip": "::ffff:172.20.0.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36" -} -[2026-01-07T06:38:21.884Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T06:38:51.996Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T06:39:22.115Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T06:39:52.211Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T06:40:22.311Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T06:40:52.389Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T06:41:22.493Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T06:41:52.588Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T06:42:22.678Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T06:42:52.740Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T06:43:22.818Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T06:43:52.910Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T06:44:23.014Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T06:44:53.106Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T06:45:23.229Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T06:45:53.324Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T06:46:23.434Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T06:46:53.549Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T06:47:23.668Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T06:47:53.778Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T06:48:23.867Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T06:48:53.951Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T06:49:24.042Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T06:49:54.131Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T06:50:24.215Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T06:50:54.311Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T06:51:24.412Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T06:51:54.505Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T06:52:24.590Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T06:52:54.674Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T06:53:24.757Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T06:53:54.849Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T06:54:24.953Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T06:54:55.058Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T06:55:25.150Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T06:55:55.254Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T06:56:25.347Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T06:56:55.452Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T06:57:25.545Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T06:57:55.634Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T06:58:25.746Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T07:12:47.472Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T07:29:11.991Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T08:17:59.789Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T08:59:40.248Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T09:46:10.552Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T09:46:40.663Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T09:47:10.779Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T09:47:40.883Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T09:48:10.969Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T09:48:41.051Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T09:49:11.139Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T09:49:41.229Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T09:50:11.329Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T09:50:41.418Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T09:51:11.533Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T09:51:41.617Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T09:52:11.701Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T09:52:41.795Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T09:53:11.874Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T09:53:41.975Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T09:54:12.057Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T09:54:42.148Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T09:55:12.249Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T09:55:42.335Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T09:56:12.428Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T09:56:42.538Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T09:57:12.631Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T09:57:42.722Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T09:58:12.807Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T09:58:42.906Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T10:14:49.535Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T10:49:38.533Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T11:15:30.298Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T11:34:06.320Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T12:04:11.069Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T12:14:35.883Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T12:15:05.937Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T12:15:36.026Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T12:16:06.102Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T12:18:01.023Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T12:23:14.316Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T12:23:44.416Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T12:24:14.502Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T12:24:44.589Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T12:25:14.675Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T12:25:44.766Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T12:26:14.841Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T12:26:44.926Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T12:27:15.019Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T12:27:45.108Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T12:28:15.199Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T12:28:45.277Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T12:29:15.374Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T12:29:45.457Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T12:30:15.544Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T12:30:45.635Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T12:31:15.737Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T12:31:45.828Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T12:32:15.909Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T12:32:46.001Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T12:33:16.095Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T12:33:46.187Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T12:34:16.271Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T12:34:46.364Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T12:35:16.446Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T12:35:46.538Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T12:36:16.628Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T12:36:46.715Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T12:37:16.802Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T12:37:46.888Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T12:38:16.978Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T12:38:47.067Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T12:39:17.156Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T12:39:47.241Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T12:40:17.331Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T12:40:47.421Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T12:41:17.508Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T12:41:47.600Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T12:42:17.697Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T12:42:47.781Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T12:43:17.865Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T12:43:47.953Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T12:44:18.040Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T12:44:48.148Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T12:45:18.234Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T12:45:48.323Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T12:46:18.402Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T12:46:48.508Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T12:47:18.597Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T12:47:48.687Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T12:48:18.776Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T12:48:48.864Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T12:49:18.952Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T12:49:49.037Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T12:50:19.137Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T12:50:49.234Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T12:51:19.315Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T12:51:49.402Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T12:52:19.501Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T12:52:49.577Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T12:53:19.665Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T12:53:49.758Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T12:54:19.845Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T12:54:49.944Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T12:55:20.033Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T12:55:50.120Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T12:56:20.211Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T12:56:50.297Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T12:57:20.394Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T12:57:50.471Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T12:58:20.554Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T12:58:50.641Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T12:59:20.721Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T12:59:50.812Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T13:00:20.898Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T13:00:50.993Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T13:01:21.073Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T13:01:51.163Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T13:02:21.245Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T13:02:51.333Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T13:03:21.426Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T13:03:51.510Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T13:04:21.594Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T13:04:51.679Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T13:05:21.762Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T13:05:51.849Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T13:06:21.947Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T13:06:52.029Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T13:07:22.085Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T13:07:52.143Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T13:08:22.208Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T13:08:52.287Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T13:09:22.376Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T13:09:52.466Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T13:10:22.555Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T13:10:52.648Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T13:11:22.742Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T13:11:52.828Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T13:12:22.919Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T13:12:53.009Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T13:13:23.098Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T13:13:53.203Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T13:14:23.290Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T13:14:53.369Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T13:15:23.473Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T13:15:53.559Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T13:16:23.651Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T13:16:53.737Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T13:17:23.829Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T13:17:53.927Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T13:18:24.018Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T13:18:54.120Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T13:19:24.206Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T13:19:54.305Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T13:20:24.398Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T13:20:54.490Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T13:21:24.573Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T13:21:54.665Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T13:22:24.755Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T13:22:54.849Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T13:23:24.939Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T13:23:55.026Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T13:24:25.144Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T13:24:55.225Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T13:25:25.322Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T13:25:55.403Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T13:26:25.488Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T13:26:55.579Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T13:27:25.688Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T13:27:55.782Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T13:28:25.873Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T13:28:55.957Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T13:29:26.047Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T13:29:56.138Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T13:30:26.230Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T13:30:56.320Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T13:31:26.425Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T13:31:56.515Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T13:32:26.607Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T13:32:56.705Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T13:33:26.821Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T13:38:06.940Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T13:38:37.018Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T13:43:18.445Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T13:43:48.533Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T13:48:29.676Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T13:48:59.786Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T13:49:29.876Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T13:49:59.960Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T13:50:30.061Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T13:51:00.152Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T13:51:30.236Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T13:52:00.329Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T13:52:30.424Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T13:53:00.527Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T13:53:30.617Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T13:54:00.707Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T13:54:30.797Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T13:55:00.887Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T13:55:30.986Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T13:56:01.078Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T13:56:31.169Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T13:57:01.258Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T13:57:31.352Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T13:58:01.439Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T13:58:31.530Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T13:59:01.626Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T13:59:31.717Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T14:00:01.796Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T14:00:31.897Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T14:01:01.997Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T14:01:32.084Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T14:02:02.172Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T14:02:32.268Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T14:03:02.372Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T14:03:32.469Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T14:04:02.556Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T14:04:32.646Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T14:05:02.740Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T14:05:32.833Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T14:06:02.927Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T14:06:33.030Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T14:07:03.132Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T14:07:33.219Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T14:08:03.323Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T14:08:33.420Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T14:09:03.508Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T14:09:33.608Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T14:25:18.373Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T14:25:48.455Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T14:41:37.740Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T14:59:04.170Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T14:59:34.267Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T15:15:27.355Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T15:15:57.455Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T15:32:00.307Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T15:32:30.425Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T15:47:58.321Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T15:48:28.416Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T16:05:28.404Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T16:05:58.501Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T16:23:27.990Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T16:39:07.239Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T16:39:37.321Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T16:56:44.911Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T16:57:15.023Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T17:12:59.422Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T17:13:29.510Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T17:30:29.983Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T17:46:14.853Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T17:46:44.945Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T18:02:54.679Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T18:03:24.768Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T18:09:46.146Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T18:10:16.242Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T18:27:30.404Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T18:28:00.511Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T18:43:52.388Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T18:59:47.275Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T19:00:17.370Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T19:00:47.457Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T19:17:42.385Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T19:25:39.375Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T19:26:09.440Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T19:41:57.369Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T19:42:27.457Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T19:58:28.460Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T19:58:58.553Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T20:14:45.542Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T20:15:15.630Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T20:32:19.837Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T20:48:05.177Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T20:48:35.280Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T21:04:34.408Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T21:04:59.918Z] [ERROR] ❌ 작업자 수정 중 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 작업자 수정 중 오류가 발생했습니다\n at /usr/src/app/controllers/workerController.js:121:23\n at Object.update (/usr/src/app/models/workerModel.js:119:4)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "url": "/api/workers/7", - "method": "PUT", - "user": "김두수" -} -[2026-01-07T21:04:59.922Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "PUT", - "url": "/api/workers/7", - "statusCode": 500, - "duration": "13ms", - "ip": "::ffff:172.20.0.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36" -} -[2026-01-07T21:05:04.523Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T21:05:34.618Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T21:06:04.702Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T21:19:39.186Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T21:30:57.223Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T21:35:28.318Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T21:35:58.412Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T21:36:28.538Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T21:36:58.632Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T21:37:28.723Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T21:37:58.816Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T21:38:28.903Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T21:38:58.982Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T21:39:29.072Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T21:39:59.166Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T21:40:29.252Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T21:40:59.343Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T21:41:29.423Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T21:41:59.510Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T21:42:29.603Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T21:42:59.704Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T21:43:29.795Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T21:43:59.890Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T21:44:29.985Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T21:45:00.080Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T21:45:30.169Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T21:46:00.259Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T21:46:30.336Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T21:47:00.429Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T21:47:30.512Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T21:48:00.602Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T21:48:30.692Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T21:49:00.771Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T21:49:30.867Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T21:50:00.957Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T21:50:31.045Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T21:51:01.147Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T21:51:31.231Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T21:52:01.325Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T21:52:31.415Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T21:53:01.512Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T21:53:31.618Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T21:54:01.707Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T21:54:31.809Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T21:55:01.900Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T21:55:32.061Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T21:56:02.165Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T21:56:32.265Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T21:57:02.368Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T21:57:32.462Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T21:58:02.553Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T21:59:21.218Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T22:00:20.843Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T22:00:50.937Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T22:01:21.041Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T22:01:51.134Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T22:02:21.240Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T22:02:51.330Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T22:03:21.440Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T22:03:51.513Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T22:04:21.615Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T22:04:51.703Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T22:05:21.798Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T22:05:51.891Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T22:06:21.998Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T22:06:52.085Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T22:07:22.181Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T22:07:52.278Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T22:08:22.352Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T22:08:52.442Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T22:09:22.530Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T22:09:52.618Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T22:10:22.725Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T22:10:52.822Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T22:11:22.892Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T22:11:52.967Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T22:12:23.060Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T22:12:53.148Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T22:13:23.239Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T22:13:53.318Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T22:14:23.406Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T22:14:53.512Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T22:15:23.611Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T22:15:53.703Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T22:16:23.797Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T22:16:53.898Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T22:23:52.346Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T22:24:22.439Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T22:24:52.536Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T22:25:22.632Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T22:25:52.729Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T22:26:22.820Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T22:26:52.912Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T22:27:23.001Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T22:27:53.101Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T22:28:23.213Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T22:28:53.294Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T22:29:23.383Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T22:29:53.436Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T22:30:23.497Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T22:30:53.573Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T22:31:23.629Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T22:31:53.677Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T22:32:23.742Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T22:32:53.802Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T22:33:23.869Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T22:33:53.931Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T22:34:23.996Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T22:34:54.066Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T22:35:24.131Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T22:35:54.198Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T22:36:24.262Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T22:36:54.321Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T22:37:24.394Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T22:40:21.249Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T22:40:51.308Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T22:41:21.366Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T22:41:51.428Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T22:42:21.513Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T22:42:51.576Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T22:43:21.656Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T22:43:51.726Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T22:44:21.801Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T22:44:51.875Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T22:45:21.945Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T22:45:52.039Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T22:46:22.127Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T22:46:52.222Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T22:47:22.300Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T22:47:52.389Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T22:48:22.481Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T22:48:52.563Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T22:49:22.655Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T22:49:52.746Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T22:50:22.831Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T22:50:52.921Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T22:51:23.003Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T22:51:53.089Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T22:52:23.181Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T22:52:53.297Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T23:01:57.694Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T23:03:14.383Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T23:03:44.469Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T23:04:14.563Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T23:04:44.654Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T23:05:14.741Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T23:05:44.837Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T23:06:14.922Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T23:06:45.009Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T23:07:15.098Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T23:07:45.186Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T23:08:15.271Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T23:08:45.354Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T23:09:15.434Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T23:09:45.516Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T23:10:15.599Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T23:10:45.687Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T23:11:15.769Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T23:11:45.852Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T23:12:15.934Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T23:12:46.012Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T23:13:16.097Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T23:13:46.187Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T23:14:16.294Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T23:14:46.386Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T23:15:16.474Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T23:15:46.559Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T23:16:16.640Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T23:16:46.729Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T23:17:16.831Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T23:17:46.922Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T23:18:17.013Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T23:18:47.108Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T23:19:17.186Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T23:19:47.275Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T23:20:17.377Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T23:20:47.470Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T23:21:17.557Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T23:21:47.648Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T23:22:17.732Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T23:22:47.810Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T23:23:17.869Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T23:23:47.934Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T23:24:17.999Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T23:24:48.084Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T23:25:18.165Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T23:25:48.248Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T23:26:18.342Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T23:26:48.430Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T23:27:18.521Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T23:27:48.601Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T23:28:18.693Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T23:28:48.775Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T23:29:18.866Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T23:29:48.951Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T23:30:19.037Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T23:30:49.120Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T23:31:19.219Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T23:31:49.321Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T23:32:19.401Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T23:32:49.501Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T23:33:19.590Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T23:33:49.678Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T23:34:19.772Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T23:34:49.860Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T23:35:19.945Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T23:35:50.036Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T23:36:20.126Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T23:36:50.253Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T23:37:20.349Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T23:37:50.432Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T23:38:20.526Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T23:38:50.613Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T23:39:20.707Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T23:39:50.804Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T23:40:20.893Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T23:40:50.982Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T23:41:21.066Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T23:41:51.154Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T23:42:21.248Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T23:42:51.339Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T23:43:21.426Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T23:43:51.509Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T23:44:21.597Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T23:44:51.689Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T23:45:21.779Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T23:45:51.877Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T23:46:21.960Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T23:46:52.043Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T23:47:22.133Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T23:47:52.240Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T23:48:22.317Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T23:48:52.396Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-07T23:58:01.820Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T00:02:25.550Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T00:14:11.928Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T00:32:06.389Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T00:32:36.475Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T00:33:06.589Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T00:33:36.702Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T00:34:06.796Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T00:34:36.882Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T00:35:06.973Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T00:35:37.077Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T00:36:07.169Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T00:36:37.267Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T00:37:07.362Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T00:37:37.463Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T00:38:07.547Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T00:38:37.642Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T00:39:07.739Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T00:39:37.816Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T00:40:07.870Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T00:40:37.932Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T00:41:08.014Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T00:41:38.104Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T00:42:08.204Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T00:42:38.295Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T00:43:08.391Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T00:43:38.481Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T00:44:08.568Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T00:44:38.665Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T00:45:08.771Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T00:45:38.863Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T00:46:08.964Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T00:46:39.050Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T00:47:09.127Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T00:47:39.228Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T00:48:09.307Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T00:48:39.389Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T00:49:09.523Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T00:50:39.400Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T00:51:09.483Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T00:51:39.572Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T00:52:09.654Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T00:52:39.743Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T00:53:09.833Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T00:53:39.914Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T00:54:09.996Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T00:54:40.089Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T00:55:10.184Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T00:55:40.274Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T00:56:10.369Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T00:56:40.477Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T00:57:10.572Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T00:57:40.662Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T00:58:10.759Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T00:58:40.851Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T00:59:10.955Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T00:59:41.037Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T01:00:11.128Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T01:00:41.226Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T01:01:11.320Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T01:01:41.423Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T01:02:11.520Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T01:02:41.612Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T01:03:11.693Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T01:03:41.793Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T01:04:11.911Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T01:04:41.998Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T01:05:12.096Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T01:05:42.210Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T01:06:12.326Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T01:06:42.434Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T01:07:12.526Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T01:07:42.623Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T01:08:12.729Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T01:08:42.816Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T01:09:12.917Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T01:09:43.007Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T01:10:13.105Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T01:10:43.198Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T01:11:13.294Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T01:11:43.393Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T01:12:13.495Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T01:12:43.572Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T01:13:13.665Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T01:13:43.758Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T01:14:13.839Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T01:14:43.937Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T01:15:14.037Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T01:15:44.128Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T01:16:14.244Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T01:16:44.385Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T01:17:14.469Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T01:17:44.564Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T01:18:14.674Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T01:18:44.764Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T01:19:14.852Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T01:19:44.959Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T01:20:15.056Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T01:20:45.150Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T01:21:15.242Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T01:21:45.328Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T01:22:15.435Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T01:22:45.519Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T01:23:15.633Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T01:23:45.740Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T01:24:15.832Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T01:24:45.929Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T01:25:16.030Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T01:25:46.117Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T01:26:16.235Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T01:26:46.333Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T01:27:16.414Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T01:27:46.502Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T01:28:16.610Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T01:28:46.703Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T01:29:16.803Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T01:29:46.895Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T01:30:16.995Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T01:30:47.063Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T01:31:17.189Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T01:31:47.269Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T01:32:17.376Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T01:32:47.474Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T01:33:17.586Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T01:33:47.673Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T01:34:17.791Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T01:34:47.909Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T01:35:18.022Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T01:35:48.112Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T01:36:18.207Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T01:36:48.280Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T01:37:18.373Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T01:37:48.468Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T01:38:18.591Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T01:38:48.686Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T01:39:18.784Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T01:39:48.897Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T01:40:19.010Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T01:40:49.103Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T01:41:19.200Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T01:41:49.316Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T01:42:19.445Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "5ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T01:42:49.539Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T01:43:19.645Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T01:43:49.714Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T01:44:19.845Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T01:44:49.944Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T01:45:20.053Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T01:45:50.146Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T01:46:20.252Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T01:46:50.337Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T01:47:20.442Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T01:47:50.543Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T01:48:20.635Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T01:48:50.752Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T01:49:20.857Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T01:49:50.957Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T01:50:21.047Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T01:50:51.144Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T01:51:21.259Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T01:51:51.350Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T01:52:21.441Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T01:52:51.544Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T01:53:21.642Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T01:53:51.740Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T01:54:21.843Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T01:54:51.934Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T01:55:22.021Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T01:55:52.129Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T01:56:22.245Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T01:56:52.345Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T01:57:22.440Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T01:57:52.534Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T01:58:22.646Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T01:58:52.734Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T01:59:22.835Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T01:59:52.932Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T02:00:23.060Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T02:00:53.164Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T02:01:23.252Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T02:01:53.345Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T02:02:23.435Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T02:02:53.543Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T02:03:23.645Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T02:03:53.734Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T02:04:23.826Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T02:04:53.912Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T02:05:24.057Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T02:05:54.165Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T02:06:24.259Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T02:06:54.369Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T02:07:24.471Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T02:07:54.556Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T02:08:24.653Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T02:08:54.745Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T02:09:24.847Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T02:09:54.935Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T02:10:25.037Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T02:10:55.141Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T02:11:25.231Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T02:11:55.323Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T02:12:25.433Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T02:12:55.530Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T02:13:25.633Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T02:13:55.739Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T02:14:25.846Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T02:14:55.937Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T02:15:26.046Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T02:15:56.168Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T02:16:26.264Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T02:16:56.362Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T02:17:26.455Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T02:17:56.555Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T02:18:26.646Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T02:18:56.736Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T02:19:26.832Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T02:19:56.931Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T02:20:27.028Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T02:20:57.117Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T02:21:27.207Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T02:21:57.300Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T02:22:27.391Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T02:22:57.476Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T02:23:27.565Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T02:23:57.651Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T02:24:27.732Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T02:24:57.802Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T02:25:27.899Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T02:25:57.986Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T02:26:28.087Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T02:26:58.180Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T02:27:28.265Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T02:27:58.367Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T02:28:28.462Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T02:28:58.563Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T02:29:28.657Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T02:29:58.728Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T02:30:28.813Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T02:30:58.915Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T02:31:29.007Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T02:31:59.106Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T02:32:29.182Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T02:32:59.283Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T02:33:29.378Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T02:33:59.477Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T02:34:29.576Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T02:34:59.687Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T02:35:29.774Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T02:35:59.878Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T02:36:29.967Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T02:37:00.058Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T02:37:30.158Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T02:38:00.262Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T02:38:30.359Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T02:39:00.446Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T02:39:30.555Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T02:40:00.668Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T02:40:30.785Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T02:41:00.879Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T02:41:30.971Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T02:42:01.062Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T02:42:31.155Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T02:43:01.253Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T02:43:31.344Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T02:44:01.454Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T02:44:31.560Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T02:45:01.654Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T02:45:31.747Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T02:46:01.894Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T02:46:31.991Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T02:47:02.085Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T02:47:32.175Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T02:48:02.269Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T02:48:32.380Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T02:49:02.472Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T02:49:32.561Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T02:50:02.650Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T02:50:32.741Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T02:51:02.824Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T02:51:32.922Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T02:52:03.004Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T02:52:33.105Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T02:53:03.191Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T02:53:33.273Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T02:54:03.363Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T02:54:33.451Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T02:55:03.568Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T02:55:33.666Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T02:56:03.765Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T02:56:33.859Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T02:57:03.951Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T02:57:34.032Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T02:58:04.118Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T02:58:34.202Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T02:59:04.305Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T02:59:34.392Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T03:00:04.479Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T03:00:34.572Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T03:01:04.673Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T03:01:34.766Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T03:02:04.865Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T03:02:34.951Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T03:03:05.039Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T03:03:35.137Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T03:04:05.230Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T03:04:35.309Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T03:05:05.405Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T03:05:35.510Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T03:06:05.589Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T03:06:35.680Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T03:07:05.772Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T03:07:35.869Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T03:08:05.959Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T03:08:36.047Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T03:09:06.150Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T03:09:36.251Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T03:10:06.346Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T03:10:36.436Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T03:11:06.519Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T03:11:36.615Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T03:12:06.706Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T03:12:36.802Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T03:13:06.892Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T03:13:36.980Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T03:14:07.105Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T03:14:37.198Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T03:15:07.295Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T03:15:37.393Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T03:16:07.484Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T03:16:37.573Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T03:17:07.678Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T03:17:37.769Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T03:18:07.864Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T03:18:37.956Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T03:19:08.048Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T03:19:38.163Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T03:20:08.272Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T03:20:38.363Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T03:21:08.468Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T03:21:38.549Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T03:22:08.637Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T03:22:38.744Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T03:23:08.846Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T03:23:38.949Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T03:24:09.048Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T03:24:39.158Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T03:25:09.250Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T03:25:39.362Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T03:26:09.463Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T03:26:39.552Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T03:27:09.647Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T03:27:39.731Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T03:28:09.836Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T03:28:39.935Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T03:29:10.025Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T03:29:40.113Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T03:30:10.218Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T03:30:40.335Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T03:31:10.428Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T03:31:40.521Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T03:32:10.633Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T03:32:40.739Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T03:33:10.844Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T03:33:40.942Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T03:34:11.032Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T03:34:41.115Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T03:35:11.213Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T03:35:41.312Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T03:36:11.415Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T03:36:41.512Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T03:37:11.597Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T03:37:41.701Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T03:38:11.799Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T03:38:41.892Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T03:39:11.982Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T03:39:42.076Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T03:40:12.164Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T03:40:42.259Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T03:41:12.350Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T03:41:42.442Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T03:42:12.533Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T03:42:42.620Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T03:43:12.709Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T03:43:42.796Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T03:44:12.905Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T03:44:42.996Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T03:45:13.085Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T03:45:43.183Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T03:46:13.273Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T03:46:43.364Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T03:47:13.457Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T03:47:43.550Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T03:48:13.642Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T03:48:43.734Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T03:49:13.821Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T03:49:43.910Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T03:50:14.007Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T03:50:44.104Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T03:51:14.189Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T03:51:44.283Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T03:52:14.379Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T03:52:44.466Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T03:53:14.555Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T03:53:44.655Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T03:54:14.749Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T03:54:44.847Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T03:55:14.938Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T03:55:45.057Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T03:56:15.151Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T03:56:45.233Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T03:57:15.332Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T03:57:45.429Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T03:58:15.516Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T03:58:45.594Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T03:59:15.675Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T03:59:45.763Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T04:00:15.874Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T04:00:45.972Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T04:01:16.066Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T04:01:46.151Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T04:02:16.243Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T04:02:46.359Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T04:03:16.446Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T04:03:46.536Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T04:04:16.623Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T04:04:46.711Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T04:05:16.795Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T04:05:46.885Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T04:06:16.971Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T04:06:47.057Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T04:07:17.147Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T04:07:47.240Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T04:08:17.328Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T04:08:47.487Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T04:13:00.237Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T04:13:30.331Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T04:14:05.901Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T04:22:08.233Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T04:22:38.348Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T04:24:03.624Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T04:24:33.724Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T04:25:03.818Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T04:32:32.127Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T04:34:14.730Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T04:37:05.375Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T05:02:39.029Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T05:03:09.149Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T05:03:39.237Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T05:04:09.325Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T05:04:39.415Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T05:05:09.506Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T05:05:39.589Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T05:06:09.687Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T05:06:39.763Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T05:07:09.828Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T05:07:39.910Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T05:08:09.984Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T05:08:40.101Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T05:09:10.194Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T05:09:40.279Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T05:10:10.382Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T05:10:40.468Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T05:11:10.577Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T05:11:40.687Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T05:12:10.781Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T05:12:40.866Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T05:13:10.956Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T05:13:41.096Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T05:14:11.200Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T05:14:41.304Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T05:15:11.388Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T05:15:41.474Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T05:16:11.564Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T05:16:41.656Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T05:17:11.747Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T05:17:41.828Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T05:18:11.922Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T05:18:42.007Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T05:19:12.103Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T05:19:42.193Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T05:20:12.282Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T05:20:42.365Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T05:21:12.450Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T05:21:42.542Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T05:22:12.630Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T05:22:42.722Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T05:23:12.803Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T05:23:42.914Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T05:24:13.015Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T05:24:43.113Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T05:25:13.205Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T05:25:43.294Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T05:26:13.383Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T05:26:43.472Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T05:27:13.567Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T05:27:43.668Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T05:28:13.753Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T05:28:43.850Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T05:29:14.002Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T05:29:44.134Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T05:30:14.234Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T05:30:44.338Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T05:31:14.445Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T05:31:44.530Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T05:32:14.623Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T05:32:44.711Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T05:33:14.801Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T05:33:44.884Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T05:34:14.971Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T05:34:45.056Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T05:35:15.145Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T05:35:45.223Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T05:36:15.302Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T05:36:45.379Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T05:37:15.451Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T05:37:45.541Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T05:38:15.638Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T05:38:45.709Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T05:39:15.784Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T05:39:45.959Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T05:40:16.043Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T05:40:46.126Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T05:41:16.205Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T05:41:46.287Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T05:42:16.363Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T05:42:46.452Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T05:43:16.529Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T05:43:46.612Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T05:44:16.691Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T05:44:46.771Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T05:45:16.856Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T05:45:46.941Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T05:46:17.027Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T05:46:47.108Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T05:47:17.191Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T05:47:47.277Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T05:48:17.369Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T05:48:47.449Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T05:49:17.529Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T05:49:47.686Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T05:50:17.773Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T05:50:47.855Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T05:51:17.963Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T05:51:48.044Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T05:52:18.127Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T05:52:48.206Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T05:53:18.280Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T05:53:48.366Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T05:54:18.446Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T05:54:48.536Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T05:55:18.616Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T05:55:48.708Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T05:56:18.798Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T05:56:48.875Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T05:57:18.945Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T05:57:49.019Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T05:58:19.104Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T05:58:49.184Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T05:59:19.273Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T05:59:49.378Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T06:00:19.460Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T06:00:49.529Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T06:01:19.617Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T06:01:49.699Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T06:02:19.772Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T06:02:49.853Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T06:03:19.938Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T06:03:50.012Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T06:04:20.100Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T06:04:50.195Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T06:05:20.287Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T06:05:50.394Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T06:06:20.501Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T06:06:50.584Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T06:07:20.684Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T06:07:50.774Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T06:08:20.869Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T06:08:50.959Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T06:09:21.064Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T06:09:51.155Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T06:10:21.264Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T06:10:51.356Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T06:11:21.452Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T06:11:51.548Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T06:12:21.642Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T06:12:51.739Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T06:13:21.830Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T06:13:51.936Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T06:14:22.024Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T06:14:52.124Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T06:15:22.210Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T06:15:52.302Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T06:16:22.395Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T06:16:52.499Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T06:17:22.595Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T06:17:52.688Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T06:18:22.787Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T06:18:52.860Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T06:19:22.953Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T06:19:53.044Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T06:20:23.150Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T06:20:53.235Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T06:21:23.326Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T06:21:53.414Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T06:22:23.501Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T06:22:53.592Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T06:23:23.685Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T06:23:53.791Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T06:24:23.888Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T06:24:53.985Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T06:25:24.074Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T06:25:54.171Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T06:26:24.269Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T06:26:54.376Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T06:27:24.472Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T06:27:54.568Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T06:28:24.662Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T06:28:54.752Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T06:29:24.838Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T06:29:54.928Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T06:30:25.013Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T06:30:55.102Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T06:31:25.192Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T06:31:55.283Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T06:32:25.376Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T06:32:55.464Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T06:33:25.556Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T06:33:55.644Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T06:34:25.731Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T06:34:55.819Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T06:35:25.910Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T06:35:55.998Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T06:36:26.082Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T06:36:56.161Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T06:37:26.250Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T06:37:56.374Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T06:38:26.459Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T06:38:56.555Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T06:39:26.644Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T06:39:56.728Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T06:40:26.818Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T06:40:56.907Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T06:41:27.004Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T06:41:57.099Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T06:42:27.197Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T06:42:57.295Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T06:43:27.399Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T06:43:57.489Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T06:44:27.584Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T06:44:57.686Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T06:45:27.766Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T06:45:57.850Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T06:46:27.940Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T06:46:58.025Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T06:47:28.133Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T06:47:58.219Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T06:48:28.320Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T06:48:58.431Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T06:49:28.528Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T06:49:58.621Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T06:50:28.715Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T06:50:58.796Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T06:51:28.897Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T06:51:58.986Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T06:52:29.077Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T06:52:59.177Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T06:53:29.266Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T06:53:59.363Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T06:54:29.451Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T06:54:59.575Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T06:55:29.671Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T06:55:59.767Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T06:56:29.829Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T07:00:53.612Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T07:01:23.702Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T07:02:16.602Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T07:02:46.701Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T07:03:40.806Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T07:14:13.337Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T07:15:06.153Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T07:16:29.528Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T07:16:59.669Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T07:37:21.838Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T07:37:51.939Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T07:38:22.052Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T07:38:52.166Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T07:39:22.301Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T07:39:52.408Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T07:40:22.501Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T07:40:52.598Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T07:41:22.698Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T07:41:52.797Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T07:42:22.897Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T07:42:52.992Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T07:43:23.090Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T07:43:53.189Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T07:44:23.302Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T07:44:53.392Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T07:45:23.487Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T07:45:53.572Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T07:46:23.667Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T07:46:53.762Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T07:47:23.863Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T07:47:53.962Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T07:48:24.048Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T07:48:54.154Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T07:49:24.268Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T07:49:54.401Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T07:50:24.504Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T07:50:54.596Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T07:51:24.693Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T07:51:54.784Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T07:52:24.880Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T07:52:54.983Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T07:53:25.086Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T07:53:55.179Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T07:54:25.267Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T07:54:55.376Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T07:55:25.478Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T07:55:55.569Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T07:56:25.664Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T07:56:55.765Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T07:57:25.872Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T07:57:55.964Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T07:58:26.073Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T07:58:56.164Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T07:59:26.272Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T07:59:56.375Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T08:00:26.474Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T08:00:56.573Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T08:01:26.659Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T08:01:56.742Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T08:02:26.881Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "6ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T08:02:57.011Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T08:03:27.115Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T08:03:57.223Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T08:04:27.332Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T08:04:57.446Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T08:05:27.545Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T08:05:57.636Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T08:06:27.736Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T08:06:57.823Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T08:07:27.927Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T08:07:58.028Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T08:08:28.118Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T08:08:58.225Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T08:09:28.315Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T08:09:58.440Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T08:10:28.541Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T08:10:58.640Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T08:11:28.729Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T08:11:58.846Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T08:12:28.966Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T08:12:59.057Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T08:13:29.178Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T08:13:59.289Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T08:14:29.385Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T08:14:59.504Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T08:15:29.604Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T08:15:59.688Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T08:16:29.798Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T08:16:59.883Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T08:17:29.970Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T08:18:00.057Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T08:18:30.157Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T08:19:00.254Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T08:19:30.360Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T08:20:00.458Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T08:20:30.567Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T08:21:00.662Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T08:21:30.752Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T08:22:00.845Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T08:22:30.944Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T08:23:01.036Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T08:23:31.129Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T08:24:01.221Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T08:24:31.333Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T08:25:01.424Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T08:25:31.515Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T08:26:01.611Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T08:26:31.703Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T08:27:01.787Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T08:27:31.894Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T08:28:01.974Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T08:28:32.067Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T08:29:02.157Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T08:29:32.246Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T08:30:02.347Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T08:30:32.444Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T08:31:02.546Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T08:31:32.642Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T08:32:02.728Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T08:32:32.786Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T08:33:02.870Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T08:33:32.924Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T08:34:02.981Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T08:34:33.036Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T08:35:03.102Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T08:35:33.161Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T08:36:03.221Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T08:36:33.271Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T08:37:03.363Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T08:37:33.420Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T08:38:03.476Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T08:38:33.532Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T08:39:03.592Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T08:39:33.678Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T08:40:03.729Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T08:40:33.785Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T08:41:03.851Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T08:41:33.905Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T08:42:03.971Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T08:42:34.029Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T08:43:04.083Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T08:43:34.135Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T08:44:04.197Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T08:44:34.254Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T08:45:04.303Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T08:45:34.370Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T08:46:04.432Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T08:46:34.491Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T08:47:04.542Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T08:47:34.604Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T08:48:04.661Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T08:48:34.720Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T08:49:04.773Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T08:49:34.838Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T08:50:04.893Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T08:50:34.949Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T08:51:05.004Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T08:51:35.076Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T08:52:05.129Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T08:52:35.187Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T08:53:05.250Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T08:53:35.303Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T08:54:05.361Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T08:54:35.433Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T08:55:05.500Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T08:55:35.555Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T08:56:05.610Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T08:56:35.670Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T08:57:05.724Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T08:57:35.784Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T08:58:05.837Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T08:58:35.889Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T08:59:05.940Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T08:59:35.995Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T09:00:06.066Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T09:00:36.123Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T09:01:06.177Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T09:01:36.230Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T09:02:06.298Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T09:02:36.350Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T09:03:06.402Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T09:03:36.453Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T09:04:06.504Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T09:04:36.554Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T09:05:06.629Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T09:05:36.681Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T09:06:06.736Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T09:06:36.789Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T09:07:06.855Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T09:07:36.918Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T09:08:06.972Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T09:08:37.025Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T09:09:07.080Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T09:09:37.128Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T09:10:07.192Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T09:10:37.249Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T09:11:07.313Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T09:11:37.364Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T09:12:07.418Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T09:12:37.470Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T09:13:07.529Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T09:13:37.598Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T09:14:07.658Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T09:14:37.710Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T09:15:07.771Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T09:15:37.830Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T09:16:07.886Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T09:16:37.940Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T09:17:07.997Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T09:17:38.047Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T09:18:08.106Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T09:18:38.164Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T09:19:08.218Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T09:19:38.286Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T09:20:08.345Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T09:20:38.392Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T09:21:08.445Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T09:21:38.518Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T09:22:08.563Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T09:22:38.620Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T09:23:08.665Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T09:23:38.713Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T09:24:08.771Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T09:24:38.822Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T09:25:08.882Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T09:25:38.936Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T09:26:08.984Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T09:26:39.055Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T09:27:09.108Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T09:27:39.160Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T09:28:09.200Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T09:28:39.275Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T09:29:09.313Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T09:29:39.385Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T09:30:09.431Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T09:30:39.497Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T09:31:09.534Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T09:31:39.593Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T09:32:09.632Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T09:32:39.688Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T09:33:09.724Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T09:33:39.791Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T09:34:09.832Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T09:34:39.884Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T09:35:09.941Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T09:35:40.004Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T09:36:10.049Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T09:36:40.099Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T09:37:10.139Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T09:37:40.192Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T09:38:10.228Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T09:38:40.290Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T09:39:10.326Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T09:39:40.393Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T09:40:10.434Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T09:40:40.484Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T09:41:10.522Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T09:41:40.577Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T09:42:10.620Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T09:42:40.668Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T09:43:10.711Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T09:43:40.763Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T09:44:10.806Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T09:44:40.867Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T09:45:10.906Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T09:45:40.960Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T09:46:10.998Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T09:46:41.059Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T09:47:11.099Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T09:47:41.152Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T09:48:11.190Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T09:48:41.244Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T09:49:11.281Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T09:49:41.334Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T09:50:11.375Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T09:50:41.431Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T09:51:11.471Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T09:51:41.538Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T09:52:11.576Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T09:52:41.627Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T09:53:11.670Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T09:53:41.734Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T09:54:11.782Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T09:54:41.834Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T09:55:11.882Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T09:55:41.932Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T09:56:11.974Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T09:56:42.044Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T09:57:12.083Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T09:57:42.161Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T09:58:12.198Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T09:58:42.258Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T09:59:12.296Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T09:59:42.353Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T10:00:12.395Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T10:00:42.452Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T10:01:12.493Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T10:01:42.555Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T10:02:12.593Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T10:02:42.663Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T10:03:12.706Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T10:03:42.766Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T10:04:12.815Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T10:04:42.875Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T10:05:12.950Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T10:05:43.010Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T10:06:13.050Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T10:06:43.100Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T10:07:13.139Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T10:07:43.203Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T10:08:13.240Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T10:08:43.308Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T10:09:13.343Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T10:09:43.413Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T10:10:13.463Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T10:10:43.513Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T10:11:13.550Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T10:11:43.617Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T10:12:13.657Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T10:12:43.704Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T10:13:13.742Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T10:13:43.809Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T10:14:13.847Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T10:14:43.901Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T10:15:13.939Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T10:15:43.991Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T10:16:14.027Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T10:16:44.085Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T10:17:14.125Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T10:17:44.181Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T10:18:14.217Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T10:18:44.267Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T10:19:14.308Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T10:19:44.361Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T10:20:14.411Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T10:20:44.465Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T10:21:14.504Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T10:21:44.561Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T10:22:14.600Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T10:22:44.668Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T10:23:14.705Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T10:23:44.767Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T10:24:14.809Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T10:24:44.865Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T10:25:14.902Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T10:25:44.952Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T10:26:14.990Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T10:26:45.050Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T10:27:15.101Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T10:27:45.152Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T10:28:15.192Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T10:28:45.257Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T10:29:15.293Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T10:29:45.351Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T10:30:15.388Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T10:30:45.449Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T10:31:15.489Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T10:31:45.545Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T10:32:15.583Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T10:32:45.772Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T10:33:15.819Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T10:33:45.888Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T10:34:15.960Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T10:34:46.029Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T10:35:16.099Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T10:35:46.178Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T10:36:16.259Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T10:36:46.348Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T10:37:16.449Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T10:37:46.543Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T10:38:16.637Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T10:38:46.732Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T10:39:16.819Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T10:39:46.883Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T10:40:16.977Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T10:40:47.051Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T10:41:17.138Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T10:41:47.240Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T10:42:17.341Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T10:42:47.445Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T10:43:17.541Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T10:43:47.631Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T10:44:17.733Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T10:44:47.819Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T10:45:17.909Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T10:45:48.002Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T10:46:18.094Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T10:46:48.195Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T10:47:18.284Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T10:47:48.379Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T10:48:18.487Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T10:48:48.584Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T10:49:18.662Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T10:49:48.752Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T10:50:18.840Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T10:50:48.933Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T10:51:19.035Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T10:51:49.122Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T10:52:19.212Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T10:52:49.301Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T10:53:19.395Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T10:53:49.482Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T10:54:19.578Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T10:54:49.672Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T10:55:19.765Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T10:55:49.876Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T10:56:19.997Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T10:56:50.104Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T10:57:20.202Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T10:57:50.298Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T10:58:20.393Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T10:58:50.495Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T10:59:20.591Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T10:59:50.690Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T11:00:20.787Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T11:00:50.877Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T11:01:20.967Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T11:01:51.053Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T11:02:21.145Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T11:02:51.245Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T11:03:21.337Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T11:03:51.423Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T11:04:21.503Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T11:04:51.599Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T11:05:21.692Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T11:05:51.783Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T11:06:21.871Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T11:06:51.990Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T11:07:22.077Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T11:07:52.163Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T11:08:22.287Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T11:08:52.373Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T11:09:22.463Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T11:09:52.579Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T11:10:22.672Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T11:10:52.767Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T11:11:22.847Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T11:11:52.934Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T11:12:23.038Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T11:12:53.137Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T11:13:23.244Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T11:13:53.355Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T11:14:23.446Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T11:14:53.545Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T11:15:23.638Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T11:15:53.733Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T11:16:23.824Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T11:16:53.906Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T11:17:24.005Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T11:17:54.099Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T11:18:24.189Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T11:18:54.287Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T11:19:24.382Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T11:19:54.471Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T11:20:24.574Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T11:20:54.669Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T11:21:24.764Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T11:21:54.857Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T11:22:24.936Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T11:22:55.025Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T11:23:25.124Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T11:23:55.211Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T11:24:25.308Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T11:24:55.417Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T11:25:25.515Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T11:25:55.607Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T11:26:25.700Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T11:26:55.801Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T11:27:25.892Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T11:27:55.980Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T11:28:26.086Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T11:28:56.176Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T11:29:26.267Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T11:29:56.357Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T11:30:26.450Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T11:30:56.542Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T11:31:26.635Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T11:31:56.728Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T11:32:26.838Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T11:32:56.934Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T11:33:27.026Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T11:33:57.135Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T11:34:27.219Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T11:34:57.322Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T11:35:27.431Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T11:35:57.542Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T11:36:27.639Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T11:36:57.752Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T11:37:27.848Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T11:37:57.943Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T11:38:28.031Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T11:38:58.122Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T11:39:28.220Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T11:39:58.318Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T11:40:28.412Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T11:40:58.506Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T11:41:28.621Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T11:41:58.720Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T11:42:28.817Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T11:42:58.895Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T11:43:28.993Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T11:43:59.089Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T11:44:29.200Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T11:44:59.292Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T11:45:29.414Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T11:45:59.507Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T11:46:29.609Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T11:46:59.703Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T11:47:29.794Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T11:47:59.888Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T11:48:29.986Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T11:49:00.077Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T11:49:30.179Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T11:50:00.276Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T11:50:30.371Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T11:51:00.455Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T11:51:30.541Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T11:52:00.631Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T11:52:30.731Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T11:53:00.819Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T11:53:30.912Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T11:54:01.013Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T11:54:31.109Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T11:55:01.201Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T11:55:31.291Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T11:56:01.381Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T11:56:31.475Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T11:57:01.572Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T11:57:31.662Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T11:58:01.755Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T11:58:31.862Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T11:59:01.946Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T11:59:32.041Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T12:00:02.142Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T12:00:32.230Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T12:01:02.327Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T12:01:32.413Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T12:02:02.508Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T12:02:32.594Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T12:03:02.716Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T12:03:32.808Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T12:04:02.910Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T12:04:33.003Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T12:05:03.102Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T12:05:33.196Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T12:06:03.296Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T12:06:33.399Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T12:07:03.488Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T12:07:33.581Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T12:08:03.682Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T12:08:33.776Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T12:09:03.870Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T12:09:33.963Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T12:10:04.054Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T12:10:34.151Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T12:11:04.258Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T12:11:34.338Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T12:12:04.436Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T12:12:34.525Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T12:13:04.607Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T12:13:34.703Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T12:14:04.796Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T12:14:34.892Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T12:15:04.988Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T12:15:35.091Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T12:16:05.182Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T12:16:35.277Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T12:17:05.382Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T12:17:35.488Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T12:18:05.581Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T12:18:35.676Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T12:19:05.780Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T12:19:35.865Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T12:20:05.956Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T12:20:36.060Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T12:21:06.160Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T12:21:36.248Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T12:22:06.343Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T12:22:36.435Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T12:23:06.537Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T12:23:36.630Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T12:24:06.738Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T12:24:36.832Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T12:25:06.939Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T12:25:37.035Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T12:26:07.127Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T12:26:37.228Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T12:27:07.317Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T12:27:37.408Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T12:28:07.506Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T12:28:37.607Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T12:29:07.695Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T12:29:37.781Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T12:30:07.868Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T12:30:37.951Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T12:31:08.038Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T12:31:38.120Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T12:32:08.220Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T12:32:38.319Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T12:33:08.418Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T12:33:38.505Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T12:34:08.608Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T12:34:38.715Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T12:35:08.815Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T12:35:38.904Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T12:36:08.991Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T12:36:39.096Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T12:37:09.198Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T12:37:39.287Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T12:38:09.380Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T12:38:39.472Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T12:39:09.567Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T12:39:39.671Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T12:40:09.772Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T12:40:39.866Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T12:41:09.966Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T12:41:40.061Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T12:42:10.149Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T12:42:40.218Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T12:43:10.334Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T12:43:40.436Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T12:44:10.521Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T12:44:40.648Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T12:45:10.748Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T12:45:40.854Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T12:46:10.947Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T12:46:41.033Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T12:47:11.130Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T12:47:41.216Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T12:48:11.313Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T12:48:41.397Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T12:49:11.489Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T12:49:41.580Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T12:50:11.669Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T12:50:41.754Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T12:51:11.843Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T12:51:41.924Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T12:52:12.020Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T12:52:42.107Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T12:53:12.203Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T12:53:42.305Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T12:54:12.393Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T12:54:42.483Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T12:55:12.577Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T12:55:42.668Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T12:56:12.771Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T12:56:42.866Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T12:57:12.952Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T12:57:43.040Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T12:58:13.122Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T12:58:43.207Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T12:59:13.296Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T12:59:43.392Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T13:00:13.482Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T13:00:43.564Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T13:01:13.656Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T13:01:43.743Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T13:02:13.836Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T13:02:43.921Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T13:03:14.010Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T13:03:44.105Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T13:04:14.198Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T13:04:44.292Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T13:05:14.381Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T13:05:44.474Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T13:06:14.578Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T13:06:44.670Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T13:07:14.760Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T13:07:44.859Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T13:08:14.952Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T13:08:45.035Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T13:09:15.130Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T13:09:45.211Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T13:10:15.302Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T13:10:45.382Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T13:11:15.484Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T13:11:45.570Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T13:12:15.672Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T13:12:45.772Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T13:13:15.868Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T13:13:45.975Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T13:14:16.062Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T13:14:46.153Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T13:15:16.247Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T13:15:46.346Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T13:16:16.441Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T13:16:46.540Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T13:17:16.643Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T13:17:46.749Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T13:18:16.847Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T13:18:46.933Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T13:19:17.036Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T13:19:47.129Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T13:20:17.221Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T13:20:47.322Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T13:21:17.419Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T13:21:47.507Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T13:22:17.613Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T13:22:47.704Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T13:23:17.793Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T13:23:47.869Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T13:24:17.960Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T13:24:48.028Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T13:25:18.118Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T13:25:48.213Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T13:26:18.311Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T13:26:48.399Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T13:27:18.489Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T13:27:48.573Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T13:28:18.653Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T13:28:48.751Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T13:29:18.835Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T13:29:48.936Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T13:30:19.029Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T13:30:49.127Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T13:31:19.216Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T13:31:49.319Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T13:32:19.405Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T13:32:49.499Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T13:33:19.588Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T13:33:49.679Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T13:34:19.769Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T13:34:49.865Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T13:35:19.962Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T13:35:50.043Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T13:36:20.141Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T13:36:50.227Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T13:37:20.318Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T13:37:50.408Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T13:38:20.504Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T13:38:50.594Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T13:39:20.695Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T13:39:50.790Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T13:40:20.874Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T13:40:50.984Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T13:41:21.065Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T13:41:51.151Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T13:42:21.245Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T13:42:51.344Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T13:43:21.437Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T13:43:51.529Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T13:44:21.624Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T13:44:51.716Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T13:45:21.808Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T13:45:51.900Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T13:46:21.999Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T13:46:52.097Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T13:47:22.190Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T13:47:52.305Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T13:48:22.439Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T13:48:52.533Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T13:49:22.624Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T13:49:52.731Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T13:50:22.820Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T13:50:52.926Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T13:51:23.014Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T13:51:53.132Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T13:52:23.214Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T13:52:53.301Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T13:53:23.412Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T13:53:53.509Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T13:54:23.614Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T13:54:53.724Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T13:55:23.817Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T13:55:53.898Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T13:56:23.987Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T13:56:54.087Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T13:57:24.178Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T13:57:54.273Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T13:58:24.357Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T13:58:54.452Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T13:59:24.543Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T13:59:54.644Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T14:00:24.743Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T14:00:54.840Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T14:01:24.939Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T14:01:55.035Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T14:02:25.137Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T14:02:55.223Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T14:03:25.332Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T14:03:55.415Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T14:04:25.518Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T14:04:55.613Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T14:05:25.704Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T14:05:55.799Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T14:06:25.881Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T14:06:55.968Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T14:07:26.056Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T14:07:56.158Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T14:08:26.255Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T14:08:56.355Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T14:09:26.447Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T14:09:56.566Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T14:10:26.672Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T14:10:56.761Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T14:11:26.845Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T14:11:56.947Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T14:12:27.041Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T14:12:57.134Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T14:13:27.226Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T14:13:57.322Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T14:14:27.415Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T14:14:57.505Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T14:15:27.597Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T14:15:57.679Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T14:16:27.770Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T14:16:57.858Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T14:17:27.947Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T14:17:58.037Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T14:18:28.135Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T14:18:58.224Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T14:19:28.317Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T14:19:58.409Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T14:20:28.501Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T14:20:58.594Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T14:21:28.686Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T14:21:58.788Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T14:22:28.884Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T14:22:58.982Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T14:23:29.066Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T14:23:59.165Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T14:24:29.258Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T14:24:59.343Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T14:25:29.439Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T14:25:59.536Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T14:26:29.628Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T14:26:59.717Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T14:27:29.806Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T14:27:59.904Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T14:28:29.999Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T14:29:00.088Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T14:29:30.166Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T14:30:00.257Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T14:30:30.358Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T14:31:00.451Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T14:31:30.552Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T14:32:00.653Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T14:32:30.744Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T14:33:00.844Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T14:33:30.938Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T14:34:01.019Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T14:34:31.108Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T14:35:01.199Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T14:35:31.295Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T14:36:01.380Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T14:36:31.474Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T14:37:01.566Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T14:37:31.652Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T14:38:01.745Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T14:38:31.823Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T14:39:01.921Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T14:39:32.011Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T14:40:02.098Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T14:40:32.212Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T14:41:02.302Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T14:41:32.396Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T14:42:02.484Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T14:42:32.572Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T14:43:02.674Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T14:43:32.758Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T14:44:02.862Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T14:44:32.956Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T14:45:03.054Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T14:45:33.143Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T14:46:03.228Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T14:46:33.331Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T14:47:03.419Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T14:47:33.511Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T14:48:03.595Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T14:48:33.698Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T14:49:03.789Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T14:49:33.871Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T14:50:03.966Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T14:50:34.052Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T14:51:04.142Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T14:51:34.228Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T14:52:04.315Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T14:52:34.390Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T14:53:04.480Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T14:53:34.568Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T14:54:04.672Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T14:54:34.772Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T14:55:04.866Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T14:55:34.959Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T14:56:05.056Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T14:56:35.150Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T14:57:05.234Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T14:57:35.325Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T14:58:05.420Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T14:58:35.514Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T14:59:05.614Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T14:59:35.697Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T15:00:05.786Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T15:00:35.868Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T15:01:05.949Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T15:01:36.047Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T15:02:06.136Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T15:02:36.227Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T15:03:06.324Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T15:03:36.425Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T15:04:06.518Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T15:04:36.625Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T15:05:06.716Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T15:05:36.794Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T15:06:06.898Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T15:06:36.984Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T15:07:07.093Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T15:07:37.177Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T15:08:07.275Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T15:08:37.364Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T15:09:07.450Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T15:09:37.555Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T15:10:07.645Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T15:10:37.741Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T15:11:07.834Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T15:11:37.926Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T15:12:08.024Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T15:12:38.103Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T15:13:08.208Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T15:13:38.298Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T15:14:08.382Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T15:14:38.467Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T15:15:08.573Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T15:15:38.659Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T15:16:08.751Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T15:16:38.834Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T15:17:08.940Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T15:17:39.031Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T15:18:09.114Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T15:18:39.205Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T15:19:09.302Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T15:19:39.399Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T15:20:09.497Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T15:20:39.586Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T15:21:09.684Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T15:21:39.788Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T15:22:09.878Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T15:22:39.965Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T15:23:10.060Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T15:23:40.152Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T15:24:10.240Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T15:24:40.329Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T15:25:10.420Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T15:25:40.510Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T15:26:10.600Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T15:26:40.686Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T15:27:10.778Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T15:27:40.867Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T15:28:10.961Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T15:28:41.051Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T15:29:11.151Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T15:29:41.255Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T15:30:11.348Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T15:30:41.434Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T15:31:11.528Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T15:31:41.633Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T15:32:11.733Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T15:32:41.831Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T15:33:11.920Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T15:33:42.009Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T15:34:12.098Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T15:34:42.198Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T15:35:12.302Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T15:35:42.397Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T15:36:12.487Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T15:36:42.584Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T15:37:12.676Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T15:37:42.774Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T15:38:12.867Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T15:38:42.972Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T15:39:13.074Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T15:39:43.166Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T15:40:13.251Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T15:40:43.338Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T15:41:13.443Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T15:41:43.532Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T15:42:13.622Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T15:42:43.709Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T15:43:13.801Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T15:43:43.892Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T15:44:13.980Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T15:44:44.065Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T15:45:14.146Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T15:45:44.231Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T15:46:14.326Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T15:46:44.429Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T15:47:14.520Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T15:47:44.612Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T15:48:14.709Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T15:48:44.797Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T15:49:14.898Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T15:49:44.987Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T15:50:15.066Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T15:50:45.158Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T15:51:15.248Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T15:51:45.342Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T15:52:15.428Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T15:52:45.520Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T15:53:15.606Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T15:53:45.708Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T15:54:15.788Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T15:54:45.871Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T15:55:15.951Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T15:55:46.033Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T15:56:16.127Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T15:56:46.219Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T15:57:16.314Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T15:57:46.413Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T15:58:16.507Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T15:58:46.598Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T15:59:16.697Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T15:59:46.780Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T16:00:16.869Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T16:00:46.956Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T16:01:17.046Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T16:01:47.138Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T16:02:17.239Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T16:02:47.336Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T16:03:17.433Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T16:03:47.528Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T16:04:17.622Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T16:04:47.725Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T16:05:17.810Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T16:05:47.908Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T16:06:18.005Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T16:06:48.086Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T16:07:18.185Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T16:07:48.265Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T16:08:18.350Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T16:08:48.444Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T16:09:18.539Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T16:09:48.643Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T16:10:18.745Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T16:10:48.838Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T16:11:18.935Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T16:11:49.011Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T16:12:19.102Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T16:12:49.159Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T16:13:19.256Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T16:13:49.342Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T16:14:19.460Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T16:14:49.557Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T16:15:19.652Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T16:15:49.736Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T16:16:19.830Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T16:16:49.923Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T16:17:20.012Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T16:17:50.113Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T16:18:20.209Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T16:18:50.302Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T16:19:20.394Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T16:19:50.478Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T16:20:20.568Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T16:20:50.666Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T16:21:20.745Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T16:21:50.823Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T16:22:20.898Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T16:22:50.958Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T16:23:21.028Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T16:23:51.115Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T16:24:21.216Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T16:24:51.319Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T16:25:21.419Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T16:25:51.503Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T16:26:21.599Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T16:26:51.693Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T16:27:21.780Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T16:27:51.871Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T16:28:21.963Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T16:28:52.053Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T16:29:22.149Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T16:29:52.241Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T16:30:22.334Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T16:30:52.414Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T16:31:22.502Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T16:31:52.581Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T16:32:22.675Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T16:32:52.748Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T16:33:22.855Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T16:33:52.919Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T16:34:23.008Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T16:34:53.089Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T16:35:23.181Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T16:35:53.273Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T16:36:23.370Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T16:36:53.469Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T16:37:23.559Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T16:37:53.657Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T16:38:23.756Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T16:38:53.843Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T16:39:23.938Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T16:39:54.029Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T16:40:24.118Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T16:40:54.230Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T16:41:24.326Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T16:41:54.410Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T16:42:24.503Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T16:42:54.590Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T16:43:24.690Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T16:43:54.776Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T16:44:24.865Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T16:44:54.957Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T16:45:25.046Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T16:45:55.134Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T16:46:25.231Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T16:46:55.323Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T16:47:25.417Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T16:47:55.515Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T16:48:25.612Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T16:48:55.703Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T16:49:25.799Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T16:49:55.888Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T16:50:25.986Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T16:50:56.083Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T16:51:26.176Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T16:51:56.261Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T16:52:26.350Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T16:52:56.451Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T16:53:26.545Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T16:53:56.633Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T16:54:26.718Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T16:54:56.802Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T16:55:26.895Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T16:55:56.986Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T16:56:27.079Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T16:56:57.173Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T16:57:27.263Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T16:57:57.364Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T16:58:27.466Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T16:58:57.545Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T16:59:27.645Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T16:59:57.744Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T17:00:27.835Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T17:00:57.931Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T17:01:28.025Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T17:01:58.116Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T17:02:28.220Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T17:02:58.310Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T17:03:28.402Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T17:03:58.495Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T17:04:28.587Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T17:04:58.689Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T17:05:28.796Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T17:05:58.876Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T17:06:28.959Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T17:06:59.055Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T17:07:29.149Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T17:07:59.242Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T17:08:29.341Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T17:08:59.431Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T17:09:29.534Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T17:09:59.621Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T17:10:29.715Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T17:10:59.804Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T17:11:29.906Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T17:11:59.989Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T17:12:30.084Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T17:13:00.177Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T17:13:30.268Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T17:14:00.359Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T17:14:30.440Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T17:15:00.535Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T17:15:30.636Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T17:16:00.726Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T17:16:30.821Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T17:17:00.913Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T17:17:31.003Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T17:18:01.101Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T17:18:31.190Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T17:19:01.286Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T17:19:31.380Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T17:20:01.468Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T17:20:31.562Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T17:21:01.657Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T17:21:31.756Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T17:22:01.850Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T17:22:31.946Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T17:23:02.033Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T17:23:32.123Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T17:24:02.227Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T17:24:32.306Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T17:25:02.401Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T17:25:32.490Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T17:26:02.571Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T17:26:32.663Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T17:27:02.762Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T17:27:32.848Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T17:28:02.949Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T17:28:33.035Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T17:29:03.118Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T17:29:33.204Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T17:30:03.298Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T17:30:33.387Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T17:31:03.476Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T17:31:33.571Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T17:32:03.665Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T17:32:33.754Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T17:33:03.845Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T17:33:33.934Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T17:34:04.016Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T17:34:34.108Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T17:35:04.214Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T17:35:34.305Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T17:36:04.397Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T17:36:34.487Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T17:37:04.588Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T17:37:34.679Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T17:38:04.769Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T17:38:34.858Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T17:39:04.955Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T17:39:35.043Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T17:40:05.130Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T17:40:35.232Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T17:41:05.321Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T17:41:35.412Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T17:42:05.511Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T17:42:35.596Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T17:43:05.688Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T17:43:35.771Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T17:44:05.861Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T17:44:35.961Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T17:45:06.058Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T17:45:36.150Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T17:46:06.236Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T17:46:36.323Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T17:47:06.422Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T17:47:36.528Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T17:48:06.618Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T17:48:36.718Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T17:49:06.812Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T17:49:36.901Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T17:50:07.002Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T17:50:37.103Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T17:51:07.193Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T17:51:37.283Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T17:52:07.363Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T17:52:37.446Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T17:53:07.530Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T17:53:37.619Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T17:54:07.717Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T17:54:37.805Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T17:55:07.902Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T17:55:37.986Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T17:56:08.080Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T17:56:38.169Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T17:57:08.262Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T17:57:38.359Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T17:58:08.462Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T17:58:38.554Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T17:59:08.642Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T17:59:38.730Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T18:00:08.822Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T18:00:38.923Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T18:01:09.013Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T18:01:39.122Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T18:02:09.207Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T18:02:39.302Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T18:03:09.394Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T18:03:39.485Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T18:04:09.577Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T18:04:39.669Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T18:05:09.757Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T18:05:39.856Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T18:06:09.949Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T18:06:40.059Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T18:07:10.154Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T18:07:40.242Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T18:08:10.342Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T18:08:40.433Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T18:09:10.533Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T18:09:40.631Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T18:10:10.724Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T18:10:40.812Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T18:11:10.921Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T18:11:41.021Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T18:12:11.119Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T18:12:41.223Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T18:13:11.312Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T18:13:41.410Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T18:14:11.495Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T18:14:41.592Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T18:15:11.691Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T18:15:41.778Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T18:16:11.879Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T18:16:41.971Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T18:17:12.062Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T18:17:42.146Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T18:18:12.240Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T18:18:42.338Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T18:19:12.443Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T18:19:42.550Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T18:20:12.644Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T18:20:42.749Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T18:21:12.844Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T18:21:42.934Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T18:22:13.023Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T18:22:43.106Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T18:23:13.213Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T18:23:43.300Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T18:24:13.393Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T18:24:43.481Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T18:25:13.574Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T18:25:43.680Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T18:26:13.778Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T18:26:43.880Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T18:27:13.970Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T18:27:44.059Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T18:28:14.141Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T18:28:44.231Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T18:29:14.317Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T18:29:44.396Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T18:30:14.504Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T18:30:44.587Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T18:31:14.683Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T18:31:44.786Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T18:32:14.882Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T18:32:44.976Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T18:33:15.072Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T18:33:45.165Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T18:34:15.256Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T18:34:45.346Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T18:35:15.435Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T18:35:45.519Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T18:36:15.608Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T18:36:45.688Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T18:37:15.782Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T18:37:45.877Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T18:38:15.967Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T18:38:46.053Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T18:39:16.122Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T18:39:46.229Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T18:40:16.325Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T18:40:46.429Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T18:41:16.523Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T18:41:46.607Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T18:42:16.705Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T18:42:46.805Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T18:43:16.893Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T18:43:46.990Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T18:44:17.088Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T18:44:47.173Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T18:45:17.260Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T18:45:47.356Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T18:46:17.444Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T18:46:47.534Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T18:47:17.625Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T18:47:47.717Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T18:48:17.809Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T18:48:47.896Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T18:49:17.986Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T18:49:48.087Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T18:50:18.182Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T18:50:48.278Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T18:51:18.372Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T18:51:48.468Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T18:52:18.571Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T18:52:48.652Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T18:53:18.727Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T18:53:48.790Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T18:54:18.844Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T18:54:48.902Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T18:55:18.962Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T18:55:49.026Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T18:56:19.089Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T18:56:49.143Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T18:57:19.198Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T18:57:49.252Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T18:58:19.300Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T18:58:49.363Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T18:59:19.427Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T18:59:49.493Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T19:00:19.547Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T19:00:49.606Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T19:01:19.666Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T19:01:49.729Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T19:02:19.786Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T19:02:49.838Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T19:03:19.891Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T19:03:49.945Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T19:04:20.013Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T19:04:50.073Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T19:05:20.152Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T19:05:50.224Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T19:06:20.274Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T19:06:50.311Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T19:07:20.365Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T19:07:50.407Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T19:08:20.478Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T19:08:50.537Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T19:09:20.611Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T19:09:50.666Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T19:10:20.719Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T19:10:50.792Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T19:11:20.849Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T19:11:50.901Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T19:12:20.968Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T19:12:51.034Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T19:13:21.088Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T19:13:51.150Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T19:14:21.205Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T19:14:51.279Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T19:15:21.333Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T19:15:51.394Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T19:16:21.447Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T19:16:51.504Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T19:17:21.562Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T19:17:51.630Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T19:18:21.687Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T19:18:51.759Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T19:19:21.818Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T19:19:51.890Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T19:20:21.939Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T19:20:51.989Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T19:21:22.054Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T19:21:52.109Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T19:22:22.169Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T19:22:52.231Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T19:23:22.282Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T19:23:52.349Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T19:24:22.405Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T19:24:52.463Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T19:25:22.518Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T19:25:52.582Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T19:26:22.637Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T19:26:52.709Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T19:27:22.770Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T19:27:52.830Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T19:28:22.883Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T19:28:52.951Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T19:29:23.025Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T19:29:53.089Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T19:30:23.149Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T19:30:53.214Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T19:31:23.284Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T19:31:53.348Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T19:32:23.403Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T19:32:53.452Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T19:33:23.499Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T19:33:53.551Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T19:34:23.604Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T19:34:53.666Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T19:35:23.721Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T19:35:53.779Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T19:36:23.846Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T19:36:53.900Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T19:37:23.957Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T19:37:54.015Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T19:38:24.064Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T19:38:54.118Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T19:39:24.185Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T19:39:54.242Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T19:40:24.296Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T19:40:54.351Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T19:41:24.422Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T19:41:54.470Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T19:42:24.533Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T19:42:54.592Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T19:43:24.645Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T19:43:54.700Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T19:44:24.759Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T19:44:54.811Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T19:45:24.870Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T19:45:54.941Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T19:46:24.998Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T19:46:55.058Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T19:47:25.111Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T19:47:55.161Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T19:48:25.228Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T19:48:55.283Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T19:49:25.335Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T19:49:55.389Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T19:50:25.451Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T19:50:55.517Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T19:51:25.574Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T19:51:55.629Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T19:52:25.678Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T19:52:55.734Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T19:53:25.799Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T19:53:55.858Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T19:54:25.905Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T19:54:55.956Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T19:55:26.014Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T19:55:56.071Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T19:56:26.137Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T19:56:56.191Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T19:57:26.258Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T19:57:56.319Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T19:58:26.376Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T19:58:56.428Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T19:59:26.478Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T19:59:56.528Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T20:00:26.579Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T20:00:56.636Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T20:01:26.692Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T20:01:56.744Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T20:02:26.801Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T20:02:56.871Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T20:03:26.930Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T20:03:56.990Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T20:04:27.043Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T20:04:57.102Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T20:05:27.157Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T20:05:57.217Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T20:06:27.278Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T20:06:57.329Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T20:07:27.378Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T20:07:57.440Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T20:08:27.506Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T20:08:57.560Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T20:09:27.628Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T20:09:57.682Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T20:10:27.731Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T20:10:57.797Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T20:11:27.855Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T20:11:57.930Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T20:12:27.991Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T20:12:58.055Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T20:13:28.110Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T20:13:58.167Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T20:14:28.233Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T20:14:58.292Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T20:15:28.348Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T20:15:58.417Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T20:16:28.468Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T20:16:58.521Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T20:17:28.576Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T20:17:58.630Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T20:18:28.683Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T20:18:58.741Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T20:19:28.802Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T20:19:58.862Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T20:20:28.917Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T20:20:58.973Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T20:21:29.036Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T20:21:59.091Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T20:22:29.146Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T20:22:59.198Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T20:23:29.249Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T20:23:59.302Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T20:24:29.363Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T20:24:59.418Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T20:25:29.468Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T20:25:59.524Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T20:26:29.581Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T20:26:59.647Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T20:27:29.702Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T20:27:59.762Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T20:28:29.812Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T20:28:59.863Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T20:29:29.917Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T20:29:59.980Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T20:30:30.032Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T20:31:00.096Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T20:31:30.143Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T20:32:00.210Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T20:32:30.275Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T20:33:00.336Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T20:33:30.386Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T20:34:00.445Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T20:34:30.500Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T20:35:00.553Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T20:35:30.614Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T20:36:00.693Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T20:36:30.742Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T20:37:00.799Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T20:37:30.854Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T20:38:00.909Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T20:38:30.970Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T20:39:01.045Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T20:39:31.110Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T20:40:01.183Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T20:40:31.242Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T20:41:01.292Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T20:41:31.341Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T20:42:01.394Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T20:42:31.447Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T20:43:01.494Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T20:43:31.549Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T20:44:01.619Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T20:44:31.676Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T20:45:01.740Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T20:45:31.803Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T20:46:01.880Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T20:46:31.931Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T20:47:01.990Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T20:47:32.042Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T20:48:02.111Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T20:48:32.166Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T20:49:02.216Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T20:49:32.274Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T20:50:02.341Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T20:50:32.405Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T20:51:02.460Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T20:51:32.527Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T20:52:02.587Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T20:52:32.642Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T20:53:02.696Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T20:53:32.756Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T20:54:02.823Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T20:54:32.888Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T20:55:02.951Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T20:55:33.009Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T20:56:03.065Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T20:56:33.130Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T20:57:03.187Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T20:57:33.242Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T20:58:03.306Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T20:58:33.357Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T20:59:03.420Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T20:59:33.468Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T21:00:03.524Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T21:00:33.583Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T21:01:03.643Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T21:01:33.701Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T21:02:03.758Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T21:02:33.813Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T21:03:03.865Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T21:03:33.915Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T21:04:03.967Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T21:04:34.025Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T21:05:04.080Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T21:05:34.130Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T21:06:04.186Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T21:06:34.238Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T21:07:04.295Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T21:07:34.351Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T21:08:04.404Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T21:08:34.461Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T21:09:04.526Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T21:09:34.590Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T21:10:04.647Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T21:10:34.713Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T21:11:27.810Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T21:11:57.871Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T21:15:43.580Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T21:16:13.631Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T21:16:55.110Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T21:18:21.122Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T21:18:58.087Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T21:19:28.455Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T21:19:58.519Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T21:20:28.886Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T21:20:59.278Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T21:21:29.344Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T21:21:59.708Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T21:22:30.422Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T21:23:00.804Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T21:23:30.867Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T21:24:01.279Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T21:24:32.010Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T21:25:02.058Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T21:25:32.446Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T21:26:02.495Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T21:26:32.875Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T21:27:14.383Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T21:28:03.266Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T21:29:38.383Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T21:30:08.460Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T21:30:38.514Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T21:31:08.563Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T21:31:38.620Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T21:32:08.681Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T21:32:38.749Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T21:33:08.801Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T21:33:38.855Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T21:34:08.913Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T21:34:38.966Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T21:35:09.017Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T21:35:39.071Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T21:36:09.125Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T21:36:39.176Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T21:37:09.235Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T21:37:39.334Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "7ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T21:38:09.380Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T21:38:39.430Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T21:39:09.493Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T21:39:39.547Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T21:40:09.604Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T21:40:39.663Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T21:41:09.726Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T21:41:39.794Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T21:42:09.854Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T21:42:39.904Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T21:43:09.979Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T21:43:40.023Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T21:44:10.071Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T21:44:40.120Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T21:45:10.178Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T21:45:40.230Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T21:46:10.285Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T21:46:40.340Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T21:47:10.395Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T21:47:40.449Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T21:48:10.510Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T21:48:40.558Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T21:49:10.608Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T21:49:40.658Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T21:50:10.716Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T21:50:40.772Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T21:51:10.829Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T21:51:40.879Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T21:52:10.920Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T21:52:40.978Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T21:53:11.032Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T21:53:41.085Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T21:54:11.137Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T21:54:41.187Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T21:55:11.237Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T21:55:41.287Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T21:56:11.338Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T21:56:41.397Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T21:57:11.467Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T21:57:41.518Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T21:58:11.575Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T21:58:41.630Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T21:59:11.684Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T21:59:41.744Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T22:00:11.807Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T22:00:41.861Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T22:01:11.920Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T22:01:41.992Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T22:02:12.051Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T22:02:42.100Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T22:03:12.149Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T22:03:42.199Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T22:04:12.250Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T22:04:42.305Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T22:05:12.352Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T22:05:42.407Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T22:06:12.468Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T22:06:42.541Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T22:07:12.598Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T22:07:42.651Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T22:08:12.706Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T22:08:42.766Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T22:09:12.827Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T22:09:42.880Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T22:10:12.977Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T22:10:43.029Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T22:11:13.081Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T22:11:43.149Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T22:12:13.203Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T22:12:43.266Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T22:13:13.325Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T22:13:43.385Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T22:14:13.451Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T22:14:43.509Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T22:15:13.731Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T22:15:43.853Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T22:16:13.926Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T22:16:43.979Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T22:17:14.050Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T22:17:44.117Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T22:18:14.178Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T22:18:44.223Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T22:19:14.284Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T22:19:44.377Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T22:20:14.446Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T22:20:44.532Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T22:21:14.626Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T22:21:44.696Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T22:22:14.771Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T22:22:44.844Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T22:23:14.932Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T22:23:44.978Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T22:24:15.065Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T22:24:45.139Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T22:25:15.220Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T22:25:45.318Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T22:26:15.449Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T22:26:45.504Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T22:27:15.574Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T22:27:45.650Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T22:28:15.713Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T22:28:45.793Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T22:29:15.865Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T22:29:45.919Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T22:30:15.968Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T22:30:46.010Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T22:31:16.060Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T22:31:46.118Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T22:32:16.168Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T22:32:46.220Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T22:33:16.273Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T22:33:46.330Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T22:34:16.388Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T22:34:46.442Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T22:35:16.508Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T22:35:46.562Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T22:36:16.614Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T22:36:46.664Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T22:37:16.730Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T22:37:46.786Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T22:38:16.838Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T22:38:46.888Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T22:39:16.940Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T22:39:46.990Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T22:40:17.041Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T22:40:47.092Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T22:41:17.174Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T22:41:47.241Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T22:42:17.291Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T22:42:47.342Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T22:43:17.393Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T22:43:47.452Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T22:44:17.508Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T22:44:47.562Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T22:45:17.612Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T22:45:47.661Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T22:46:17.712Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T22:46:47.765Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T22:47:17.817Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T22:47:47.891Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T22:48:17.962Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T22:48:48.030Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T22:49:18.094Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T22:49:48.169Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T22:50:18.236Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T22:50:48.310Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T22:51:18.367Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T22:51:48.431Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T22:52:18.498Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T22:52:48.564Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T22:53:18.632Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T22:53:48.700Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T22:54:18.768Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T22:54:48.877Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "5ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T22:59:36.675Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T23:00:06.758Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T23:00:36.843Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T23:01:06.936Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T23:01:37.036Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T23:02:07.124Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T23:02:37.217Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T23:03:23.866Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T23:03:53.960Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T23:04:24.057Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T23:04:54.143Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T23:05:24.236Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T23:05:54.323Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T23:06:24.411Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T23:06:54.503Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T23:07:24.582Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T23:07:54.689Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T23:08:24.779Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T23:08:54.865Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T23:09:24.946Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T23:09:55.032Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T23:10:25.121Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T23:10:55.210Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T23:11:25.302Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T23:11:55.393Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T23:12:25.491Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T23:12:55.580Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T23:13:25.674Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T23:13:55.753Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T23:14:25.852Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T23:14:55.943Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T23:15:26.033Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T23:15:56.097Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T23:16:26.185Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T23:16:56.253Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T23:17:26.340Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T23:17:56.440Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T23:18:26.534Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T23:18:56.619Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T23:19:26.712Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T23:19:56.802Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T23:20:26.881Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T23:20:56.975Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T23:21:27.064Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T23:21:57.154Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T23:22:27.239Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T23:22:57.328Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T23:23:27.421Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T23:23:57.519Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T23:24:27.613Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T23:24:57.705Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T23:25:27.805Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T23:25:57.901Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T23:26:27.997Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T23:26:58.098Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T23:27:28.190Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T23:27:58.282Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T23:28:28.370Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T23:28:58.456Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T23:29:28.564Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T23:29:58.654Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T23:30:28.748Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T23:30:58.836Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T23:31:28.925Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T23:31:59.012Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T23:32:29.100Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T23:32:59.189Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T23:33:29.287Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T23:33:59.378Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T23:34:29.459Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T23:34:59.551Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T23:35:29.633Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T23:35:59.716Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T23:36:29.805Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T23:36:59.904Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T23:37:30.004Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T23:38:00.103Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T23:38:30.185Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T23:39:00.277Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T23:39:30.365Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T23:40:00.453Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T23:40:30.543Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T23:41:00.634Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T23:41:30.732Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T23:42:00.813Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T23:42:30.899Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T23:43:00.987Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T23:43:31.078Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T23:44:01.170Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T23:44:31.259Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T23:45:01.356Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T23:45:31.453Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T23:46:01.533Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T23:46:31.627Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T23:47:01.706Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T23:47:31.796Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T23:48:01.881Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T23:49:10.337Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T23:49:40.434Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T23:52:30.104Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T23:53:10.841Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T23:53:40.937Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T23:54:20.114Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T23:55:18.363Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-08T23:55:48.460Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T00:00:49.814Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T00:01:19.903Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T00:01:49.992Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T00:02:20.075Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T00:02:50.164Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T00:03:20.253Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T00:03:50.350Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T00:04:20.440Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T00:04:50.523Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T00:05:20.604Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T00:05:50.699Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T00:06:20.783Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T00:06:50.876Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T00:07:20.964Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T00:07:51.057Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T00:08:21.174Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T00:08:51.275Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T00:09:21.362Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T00:09:51.455Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T00:10:21.559Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T00:10:51.658Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T00:11:21.755Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T00:11:51.835Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T00:12:21.934Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T00:12:52.033Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T00:13:22.126Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T00:13:52.216Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T00:14:22.308Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T00:14:52.399Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T00:15:22.493Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T00:15:52.599Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T00:16:22.716Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T00:16:52.813Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T00:17:22.914Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T00:17:53.004Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T00:18:23.106Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T00:18:53.201Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T00:19:23.321Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T00:19:53.410Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T00:20:23.491Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T00:20:53.591Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T00:21:23.707Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "5ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T00:21:53.807Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T00:22:23.893Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T00:22:54.024Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T00:23:24.116Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T00:23:54.202Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T00:24:24.301Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T00:24:54.402Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T00:25:24.492Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T00:25:54.592Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T00:26:24.675Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T00:26:54.782Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T00:27:24.878Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T00:27:54.966Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T00:28:25.072Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T00:28:55.163Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T00:29:25.311Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T00:29:55.407Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T00:30:25.522Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T00:30:55.616Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T00:31:25.725Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T00:31:55.823Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T00:32:25.939Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T00:32:56.032Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T00:33:26.126Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T00:33:56.232Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T00:34:26.321Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T00:34:56.441Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T00:35:26.534Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T00:35:56.647Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T00:36:26.751Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T00:36:56.848Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T00:37:26.941Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T00:37:57.039Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T00:38:27.137Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T00:38:57.228Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T00:39:27.335Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T00:39:57.426Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T00:40:27.516Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T00:40:57.617Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T00:41:27.709Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T00:41:57.801Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T00:42:27.901Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T00:42:57.987Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T00:43:28.101Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T00:43:58.199Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T00:44:28.287Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T00:44:58.379Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T00:45:28.493Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T00:45:58.603Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T00:46:28.694Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T00:46:58.781Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T00:47:28.868Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T00:47:58.973Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T00:48:29.081Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T00:48:59.172Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T00:49:29.262Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T00:49:59.343Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T00:50:29.438Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T00:50:59.542Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T00:51:29.655Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T00:51:59.747Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T00:52:29.838Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T00:52:59.939Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T00:53:30.032Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T00:54:00.126Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T00:54:30.220Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T00:55:00.358Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T00:55:30.459Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T00:56:00.576Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T00:56:30.678Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T00:57:00.768Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T00:57:30.866Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T00:58:00.986Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T00:58:31.092Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T00:59:01.207Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T00:59:31.307Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T01:00:01.407Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T01:00:31.506Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T01:01:01.608Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T01:01:31.707Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T01:02:01.792Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T01:02:31.898Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T01:03:02.004Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T01:03:32.113Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T01:04:02.194Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T01:04:32.291Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T01:05:02.373Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T01:05:32.481Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T01:06:02.569Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T01:06:32.665Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T01:07:02.759Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T01:07:32.877Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T01:08:02.963Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T01:08:33.040Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T01:09:03.142Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T01:09:33.248Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T01:10:03.339Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T01:10:33.454Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T01:11:03.562Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T01:11:33.676Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T01:12:03.787Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T01:12:33.874Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T01:13:03.949Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T01:13:34.037Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T01:14:04.109Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T01:14:34.252Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "6ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T01:15:04.824Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T01:15:34.969Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T01:16:05.064Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T01:16:35.152Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T01:17:05.260Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T01:17:35.346Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T01:18:05.445Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T01:18:35.537Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T01:19:05.643Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T01:19:35.736Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T01:20:05.828Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T01:20:35.929Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T01:21:06.058Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T01:21:36.156Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T01:22:06.240Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T01:22:36.308Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T01:23:06.393Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T01:23:36.501Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T01:24:06.583Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T01:24:36.783Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T01:25:06.964Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "5ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T01:25:37.078Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T01:26:07.183Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T01:26:37.288Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T01:27:07.381Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T01:27:37.464Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T01:28:07.541Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T01:28:37.614Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T01:29:07.686Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T01:29:37.762Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T01:30:07.861Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T01:30:37.960Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T01:31:08.045Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T01:31:38.131Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T01:32:08.213Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T01:32:38.299Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T01:33:08.404Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T01:33:38.503Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T01:34:08.606Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T01:34:38.695Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T01:35:08.793Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T01:35:38.897Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T01:36:08.969Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T01:36:39.073Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T01:37:09.153Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T01:37:39.240Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T01:38:09.311Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T01:38:39.422Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T01:39:09.519Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T01:39:39.608Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T01:40:09.702Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T01:40:39.790Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T01:41:09.889Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T01:41:39.986Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T01:42:10.094Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T01:42:40.196Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T01:43:10.285Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T01:43:40.402Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "11ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T01:44:10.476Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T01:44:40.557Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T01:45:10.624Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T01:45:40.791Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T01:46:10.903Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T01:46:40.998Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T01:47:11.095Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T01:47:41.179Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T01:48:11.295Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T01:48:41.397Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T01:49:11.499Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T01:49:41.598Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T01:50:11.688Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T01:50:41.784Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T01:51:11.860Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T01:51:41.947Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T01:52:12.707Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T01:52:42.819Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "7ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T01:53:12.928Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T01:53:43.025Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T01:54:13.112Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T01:54:43.203Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T01:55:13.295Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T01:55:43.392Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T01:56:13.478Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T01:56:43.560Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T01:57:13.627Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T01:57:43.747Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T01:58:13.859Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T01:58:43.948Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T01:59:14.044Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T01:59:44.131Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T02:00:14.229Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T02:00:44.346Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T02:01:14.444Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T02:01:44.537Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T02:02:14.628Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T02:02:44.728Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T02:03:14.832Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T02:03:44.926Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T02:04:15.028Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T02:04:45.120Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T02:05:15.222Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T02:05:45.309Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T02:06:15.393Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T02:06:45.491Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T02:07:15.581Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T02:07:45.659Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T02:08:15.753Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T02:08:45.861Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T02:09:15.954Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T02:09:46.043Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T02:10:16.142Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T02:10:46.249Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T02:11:16.362Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T02:11:46.445Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T02:12:16.538Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T02:12:46.639Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T02:13:16.728Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T02:13:46.846Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "7ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T02:14:16.940Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T02:14:47.049Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T02:15:17.152Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T02:15:47.252Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T02:16:17.318Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T02:16:47.411Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T02:17:17.470Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T02:17:47.560Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T02:18:17.621Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T02:18:47.701Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T02:19:17.780Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T02:19:47.877Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T02:20:17.978Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T02:20:48.109Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T02:21:18.182Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T02:21:48.292Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T02:22:18.376Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T02:22:48.484Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T02:23:18.586Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T02:23:48.687Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T02:24:18.785Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T02:24:48.876Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T02:25:18.974Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T02:25:49.064Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T02:26:19.168Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T02:26:49.264Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T02:27:19.361Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T02:27:49.457Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T02:28:19.565Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T02:28:49.668Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T02:29:19.758Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T02:29:49.840Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T02:30:19.953Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T02:30:50.032Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T02:31:20.136Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T02:31:50.242Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T02:32:20.333Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T02:32:50.423Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T02:33:20.513Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T02:33:50.611Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T02:34:20.693Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T02:34:50.791Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T02:35:20.889Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T02:35:50.986Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T02:36:21.081Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T02:36:51.172Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T02:37:21.262Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T02:37:51.364Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T02:38:21.453Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T02:38:51.548Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T02:39:21.649Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T02:39:51.738Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T02:40:21.838Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T02:40:51.920Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T02:41:22.018Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T02:41:52.117Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T02:42:22.221Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T02:42:52.303Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T02:43:22.401Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T02:43:52.495Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T02:44:22.585Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T02:44:52.693Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T02:45:22.816Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T02:45:52.908Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T02:46:23.013Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T02:46:53.112Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T02:47:23.200Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T02:47:53.290Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T02:48:23.398Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T02:48:53.479Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T02:49:23.570Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T02:49:53.672Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T02:50:23.758Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T02:50:53.849Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T02:51:23.947Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T02:51:54.050Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T02:52:24.157Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T02:52:54.292Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T02:53:24.391Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T02:53:54.490Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T02:54:24.584Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T02:54:54.677Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T02:55:24.773Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T02:55:54.858Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T02:56:24.940Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T02:56:55.038Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T02:57:25.123Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T02:57:55.227Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T02:58:25.325Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T02:58:55.422Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T02:59:25.501Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T02:59:55.605Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T03:00:25.711Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T03:00:55.793Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T03:01:25.871Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T03:01:55.965Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T03:02:26.060Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T03:02:56.134Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T03:03:26.211Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T03:03:56.317Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T03:04:26.407Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T03:04:56.511Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T03:05:26.599Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T03:05:56.682Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T03:06:26.763Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T03:06:56.853Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T03:07:26.956Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T03:07:57.055Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T03:08:27.139Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T03:08:57.232Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T03:09:27.354Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T03:09:57.455Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T03:10:27.543Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T03:10:57.632Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T03:11:27.712Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T03:11:57.815Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T03:12:27.892Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T03:12:57.980Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T03:13:28.067Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T03:13:58.162Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T03:14:28.253Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T03:14:58.345Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T03:15:28.441Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T03:15:58.527Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T03:16:28.619Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T03:16:58.720Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T03:17:28.825Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T03:17:58.914Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T03:18:29.008Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T03:18:59.094Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T03:19:29.176Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T03:19:59.263Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T03:20:29.353Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T03:20:59.434Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T03:21:29.529Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T03:21:59.613Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T03:22:29.704Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T03:22:59.804Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T03:23:29.889Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T03:23:59.983Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T03:24:30.062Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T03:25:00.153Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T03:25:30.242Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T03:26:00.331Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T03:26:30.422Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T03:27:00.521Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T03:27:30.627Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T03:28:00.726Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T03:28:30.806Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T03:29:00.895Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T03:29:30.994Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T03:30:01.103Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T03:30:31.191Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T03:31:01.282Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T03:31:31.372Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T03:32:01.469Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T03:32:31.561Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T03:33:01.662Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T03:33:31.749Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T03:34:01.834Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T03:34:31.921Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T03:35:02.026Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T03:49:15.873Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T03:51:40.346Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T03:52:10.440Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T03:52:40.533Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T03:53:10.628Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T03:53:40.717Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T03:54:10.822Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T03:54:40.910Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T03:55:11.001Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T03:55:41.091Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T03:56:11.177Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T03:56:41.267Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T03:57:11.355Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T03:57:41.440Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T03:58:11.535Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T03:58:41.629Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T03:59:11.721Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T03:59:41.810Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T04:00:11.899Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T04:00:41.984Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T04:01:12.087Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T04:01:42.184Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T04:02:12.266Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T04:02:42.365Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T04:03:12.455Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T04:03:42.554Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T04:04:12.687Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T04:04:42.780Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T04:05:12.884Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T04:05:42.986Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T04:06:13.082Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T04:06:43.176Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T04:07:13.290Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T04:07:43.368Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T04:08:13.456Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T04:08:43.547Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T04:09:13.632Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T04:09:43.719Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T04:10:13.812Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T04:10:43.917Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T04:11:14.009Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T04:11:44.133Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T04:12:14.225Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T04:12:44.309Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T04:13:14.391Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T04:13:44.477Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T04:14:14.576Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T04:14:44.673Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T04:15:14.764Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T04:15:44.856Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T04:16:14.943Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T04:16:45.032Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T04:17:15.120Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T04:17:45.214Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T04:18:15.299Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T04:18:52.512Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T04:19:22.561Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T04:24:39.692Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T04:25:09.784Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T04:25:39.865Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T04:26:09.960Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T04:26:40.053Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T04:27:10.144Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T04:27:40.238Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T04:28:10.326Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T04:28:40.411Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T04:29:10.504Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T04:29:40.595Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T04:30:10.686Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T04:30:40.777Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T04:31:10.868Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T04:31:40.959Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T04:32:11.046Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T04:32:41.138Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T04:33:11.223Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T04:33:41.322Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T04:34:11.409Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T04:34:41.500Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T04:35:11.595Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T04:35:41.685Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T04:36:11.777Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T04:36:41.851Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T04:37:11.938Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T04:37:42.034Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T04:38:12.127Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T04:38:42.220Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T04:39:12.310Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T04:39:42.399Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T04:40:12.478Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T04:45:09.863Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T04:45:39.951Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T04:46:10.041Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T04:46:40.132Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T04:47:10.227Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T04:47:40.328Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T04:48:10.379Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T04:48:40.466Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T04:49:10.547Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T04:49:40.623Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T04:50:10.711Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T04:50:40.802Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T04:51:10.901Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T04:51:40.998Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T04:52:11.100Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T04:52:41.192Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T04:53:11.286Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T04:53:41.378Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T04:54:11.458Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T04:54:41.541Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T04:55:11.618Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T04:55:41.707Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T04:56:11.776Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T04:56:41.862Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T04:57:11.943Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T04:57:42.023Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T04:58:12.113Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T04:58:42.197Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T04:59:12.294Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T04:59:42.382Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T05:00:12.473Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T05:00:42.563Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T05:01:12.655Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T05:01:42.737Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T05:02:12.820Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T05:02:42.906Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T05:03:12.994Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T05:03:43.091Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T05:04:13.192Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T05:04:43.268Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T05:05:13.360Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T05:05:43.441Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T05:06:13.542Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T05:06:43.617Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T05:07:13.704Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T05:07:43.796Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T05:08:13.900Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T05:08:43.995Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T05:09:14.089Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T05:09:44.170Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T05:10:14.264Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T05:10:44.346Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T05:11:14.434Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T05:11:44.522Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T05:12:14.613Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T05:12:44.700Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T05:13:14.790Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T05:13:44.879Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T05:14:14.966Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T05:14:45.056Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T05:15:15.153Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T05:15:45.256Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T05:16:15.354Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T05:16:45.455Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T05:17:15.562Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T05:17:45.649Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T05:18:15.740Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T05:18:45.828Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T05:19:15.911Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T05:19:45.996Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T05:20:16.092Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T05:20:46.188Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T05:21:16.270Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T05:21:46.356Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T05:22:16.446Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T05:22:46.550Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T05:23:16.633Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T05:23:46.720Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T05:24:16.827Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T05:24:46.928Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T05:25:17.012Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T05:25:47.102Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T05:26:17.203Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T05:26:47.302Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T05:27:17.390Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T05:27:47.473Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T05:28:17.568Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T05:28:47.661Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T05:29:17.745Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T05:29:47.835Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T05:30:17.927Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T05:30:48.011Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T05:31:18.068Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T05:31:48.155Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T05:32:18.247Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T05:32:48.334Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T05:33:18.418Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T05:33:48.512Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T05:34:18.609Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T05:34:48.695Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T05:35:18.782Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T05:35:48.864Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T05:36:18.948Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T05:36:49.032Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T05:38:01.413Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T05:38:31.502Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T05:39:01.594Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T05:41:35.457Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T05:49:37.826Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T05:50:07.920Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T05:50:42.996Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T05:51:13.092Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T06:18:08.671Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T06:18:38.754Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T06:19:08.854Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T06:19:38.942Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T06:20:09.026Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T06:31:12.954Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T06:34:07.908Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T06:50:51.910Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T07:25:12.375Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T07:47:09.038Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T07:52:52.555Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T07:53:22.664Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T07:53:52.777Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T07:54:22.858Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T07:54:52.947Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T07:55:23.041Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T07:55:53.131Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T07:56:23.216Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T07:56:53.304Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T07:57:23.388Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T07:57:53.472Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T07:58:23.558Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T07:58:53.646Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T07:59:23.729Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T07:59:53.818Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T08:00:23.898Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T08:00:53.987Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T08:01:24.070Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T08:01:54.160Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T08:02:24.258Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T08:02:54.350Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T08:03:24.448Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T08:03:54.540Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T08:04:24.628Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T08:04:54.722Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T08:05:24.816Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T08:05:54.926Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T08:06:25.017Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T08:06:55.109Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T08:07:25.200Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T08:07:55.309Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T08:08:25.415Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T08:08:55.508Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T08:09:25.590Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T08:09:55.680Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T08:10:25.767Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T08:10:55.861Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T08:11:25.947Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T08:11:56.040Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T08:12:26.158Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T08:12:56.254Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T08:13:26.362Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T08:13:56.454Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T08:14:26.548Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T08:14:56.638Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T08:15:26.737Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T08:15:56.815Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T08:16:26.902Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T08:16:56.987Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T08:17:27.069Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T08:17:57.161Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T08:18:27.253Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T08:18:57.385Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T08:19:27.491Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T08:19:57.579Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T08:20:27.666Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T08:20:57.771Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T08:21:27.869Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T08:21:57.973Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T08:22:28.066Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T08:22:58.166Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T08:23:28.255Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T08:23:58.350Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T08:24:28.434Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T08:24:58.525Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T08:25:28.613Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T08:25:58.705Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T08:26:28.795Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T08:26:58.877Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T08:27:28.985Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T08:27:59.141Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T08:28:29.249Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T08:28:59.336Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T08:29:29.436Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T08:29:59.528Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T08:30:29.632Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T08:30:59.753Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T08:31:29.856Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T08:31:59.951Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T08:32:30.045Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T08:33:00.139Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T08:33:30.237Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T08:34:00.333Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T08:34:30.418Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T08:35:00.517Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T08:35:30.604Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T08:36:00.706Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T08:36:30.809Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T08:37:00.889Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T08:37:30.982Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T08:38:01.072Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T08:38:31.165Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T08:39:01.253Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T08:39:31.329Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T08:40:01.400Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T08:40:31.489Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T08:41:01.665Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T08:41:31.788Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T08:42:01.926Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T08:42:32.025Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T08:43:02.117Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T08:43:32.282Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T08:44:02.403Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T08:44:32.507Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T08:45:02.667Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T08:45:32.770Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T08:46:02.912Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T08:46:33.007Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T08:47:03.135Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T08:47:33.226Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T08:48:03.311Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T08:48:33.423Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T08:49:03.549Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T08:49:33.635Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T08:50:03.787Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T08:50:33.874Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T08:51:03.968Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T08:51:34.133Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T08:52:04.235Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T08:52:34.383Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T08:53:04.478Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T08:53:34.592Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T08:54:04.682Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T08:54:34.807Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T08:55:04.914Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T08:55:35.042Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T08:56:05.169Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T08:56:35.285Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T08:57:05.381Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T08:57:35.475Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T08:58:05.576Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T08:58:35.683Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T08:59:05.783Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T08:59:35.881Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T09:00:05.981Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T09:00:36.085Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T09:01:06.204Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T09:01:36.316Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T09:02:06.465Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T09:02:36.579Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T09:03:06.699Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T09:03:36.801Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T09:04:06.915Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T09:04:37.011Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T09:05:07.133Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T09:05:37.217Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T09:06:07.314Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T09:06:37.414Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T09:07:07.509Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T09:07:37.605Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T09:08:07.693Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T09:08:37.791Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T09:09:07.885Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T09:09:37.976Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T09:10:08.103Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T09:10:38.211Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T09:11:08.311Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T09:11:38.402Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T09:12:08.540Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T09:12:38.653Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T09:13:08.752Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T09:13:38.854Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T09:14:08.982Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T09:14:39.178Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "9ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T09:15:09.284Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T09:15:39.411Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T09:16:09.510Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T09:16:39.569Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T09:17:09.741Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T09:17:39.801Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T09:18:09.850Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T09:18:39.907Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T09:19:09.999Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T09:19:40.049Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T09:20:10.117Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T09:20:40.191Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T09:21:10.263Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T09:21:40.333Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T09:22:10.400Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T09:22:40.477Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T09:23:10.551Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T09:23:40.625Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T09:24:10.707Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T09:24:40.789Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T09:25:10.882Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T09:25:40.970Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T09:26:11.061Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T09:26:41.167Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T09:27:11.296Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T09:27:41.405Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T09:28:11.494Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T09:28:41.587Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T09:29:11.680Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T09:29:41.775Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T09:30:11.874Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T09:30:41.969Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T09:31:12.066Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T09:31:42.159Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T09:32:12.258Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T09:32:42.380Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T09:33:12.474Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T09:33:42.572Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T09:34:12.671Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T09:34:42.771Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T09:35:12.859Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T09:35:42.956Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T09:36:13.052Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T09:36:43.158Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T09:37:13.239Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T09:37:43.309Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T09:38:13.395Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T09:38:43.495Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T09:39:13.594Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T09:39:43.696Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T09:40:13.807Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T09:40:43.897Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T09:41:13.989Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T09:41:44.102Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T09:42:14.197Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T09:42:44.287Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T09:43:14.388Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T09:43:44.479Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T09:44:14.580Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T09:44:44.717Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T09:45:14.814Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T09:45:44.909Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T09:46:15.009Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T09:46:45.123Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T09:47:15.214Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T09:47:45.318Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T09:48:15.423Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T09:48:45.521Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T09:49:15.626Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T09:49:45.704Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T09:50:15.781Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T09:50:45.876Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T09:51:15.950Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T09:51:46.047Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T09:52:16.116Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T09:52:46.197Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T09:53:16.278Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T09:53:46.347Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T09:54:16.435Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T09:54:46.518Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T09:55:16.616Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T09:55:46.697Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T09:56:16.771Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T09:56:46.847Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T09:57:16.928Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T09:57:47.004Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T09:58:17.079Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T09:58:47.167Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T09:59:17.246Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T09:59:47.316Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T10:00:17.412Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T10:00:47.515Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T10:01:17.599Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T10:01:47.695Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T10:02:17.788Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T10:02:47.868Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T10:03:17.948Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T10:03:48.037Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T10:04:18.111Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T10:04:48.192Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T10:05:18.279Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T10:05:48.376Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T10:06:18.474Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T10:06:48.580Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T10:07:18.678Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T10:07:48.782Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T10:08:18.883Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T10:08:48.999Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T10:09:19.107Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T10:09:49.203Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T10:10:19.320Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "12ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T10:10:49.417Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T10:11:19.534Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T10:11:49.635Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T10:12:19.741Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T10:12:49.837Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T10:13:19.941Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T10:13:50.050Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T10:14:20.154Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T10:14:50.253Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T10:15:20.363Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T10:15:50.463Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T10:16:20.572Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T10:16:50.702Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T10:17:20.788Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T10:17:50.891Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T10:18:21.005Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T10:18:51.118Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T10:19:21.219Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T10:19:51.307Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T10:20:21.422Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T10:20:51.533Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T10:21:21.625Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T10:21:51.754Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T10:22:21.852Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T10:22:51.964Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T10:23:22.053Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T10:23:52.146Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T10:24:22.243Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T10:24:52.348Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T10:25:22.446Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T10:25:52.536Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T10:26:22.635Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T10:26:52.720Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T10:27:22.819Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T10:27:52.938Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T10:28:23.028Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T10:28:53.133Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T10:29:23.249Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T10:29:53.341Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T10:30:23.450Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T10:30:53.550Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T10:31:23.631Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T10:31:53.724Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T10:32:23.825Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T10:32:53.924Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T10:33:24.026Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T10:33:54.126Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T10:34:24.237Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T10:34:54.339Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T10:35:24.438Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T10:35:54.531Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T10:36:24.624Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T10:36:54.710Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T10:37:24.811Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T10:37:54.913Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T10:38:24.999Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T10:38:55.093Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T10:39:25.191Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T10:39:55.314Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T10:40:25.408Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T10:40:55.519Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T10:41:25.630Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T10:41:55.721Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T10:42:25.823Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T10:42:55.943Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T10:43:26.047Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T10:43:56.162Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T10:44:26.264Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T10:44:56.377Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T10:45:26.479Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T10:45:56.576Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T10:46:26.666Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T10:46:56.758Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T10:47:26.861Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T10:47:56.959Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T10:48:27.049Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T10:48:57.140Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T10:49:27.249Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T10:49:57.344Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T10:50:27.446Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T10:50:57.557Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T10:51:27.651Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T10:51:57.738Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T10:52:27.834Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T10:52:57.940Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T10:53:28.027Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T10:53:58.119Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T10:54:28.215Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T10:54:58.311Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T10:55:28.407Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T10:55:58.505Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T10:56:28.604Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T10:56:58.689Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T10:57:28.783Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T10:57:58.879Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T10:58:28.984Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T10:58:59.089Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T10:59:29.187Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T10:59:59.282Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T11:00:29.399Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T11:00:59.485Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T11:01:29.576Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T11:01:59.659Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T11:02:29.744Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T11:02:59.847Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T11:03:29.944Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T11:04:00.042Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T11:04:30.137Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T11:05:00.232Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T11:05:30.321Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T11:06:00.413Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T11:06:30.498Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T11:07:00.606Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T11:07:30.701Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T11:08:00.802Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T11:08:30.899Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T11:09:01.011Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T11:09:31.114Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T11:10:01.199Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T11:10:31.289Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T11:11:01.389Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T11:11:31.478Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T11:12:01.574Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T11:12:31.663Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T11:13:01.768Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T11:13:31.863Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T11:14:01.961Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T11:14:32.048Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T11:15:02.148Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T11:15:32.231Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T11:16:02.317Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T11:16:32.402Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T11:17:02.497Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T11:17:32.596Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T11:18:02.690Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T11:18:32.780Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T11:19:02.866Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T11:19:32.974Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T11:20:03.070Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T11:20:33.165Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T11:21:03.276Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T11:21:33.365Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T11:22:03.461Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T11:22:33.547Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T11:23:03.629Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T11:23:33.730Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T11:24:03.826Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T11:24:33.925Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T11:25:04.021Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T11:25:34.116Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T11:26:04.204Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T11:26:34.304Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T11:27:04.418Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T11:27:34.489Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T11:28:04.585Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T11:28:34.672Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T11:29:04.770Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T11:29:34.878Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T11:30:04.966Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T11:30:35.059Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T11:31:05.173Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T11:31:35.256Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T11:32:05.353Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T11:32:35.453Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T11:33:05.548Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T11:33:35.658Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T11:34:05.750Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T11:34:35.856Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T11:35:05.945Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T11:35:36.048Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T11:36:06.135Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T11:36:36.227Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T11:37:06.318Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T11:37:36.410Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T11:38:06.507Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T11:38:36.592Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T11:39:06.695Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T11:39:36.784Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T11:40:06.905Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T11:40:37.001Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T11:41:07.107Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T11:41:37.185Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T11:42:07.264Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T11:42:37.346Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T11:43:07.447Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T11:43:37.538Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T11:44:07.620Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T11:44:37.719Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T11:45:07.814Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T11:45:37.900Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T11:46:07.978Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T11:46:38.058Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T11:47:08.157Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T11:47:38.256Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T11:48:08.341Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T11:48:38.445Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T11:49:08.546Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T11:49:38.644Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T11:50:08.739Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T11:50:38.838Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T11:51:08.940Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T11:51:39.049Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T11:52:09.150Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T11:52:39.233Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T11:53:09.327Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T11:53:39.387Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T11:54:09.474Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T11:54:39.563Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T11:55:09.667Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T11:55:39.760Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T11:56:09.848Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T11:56:39.951Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T11:57:10.045Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T11:57:40.131Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T11:58:10.234Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T11:58:40.327Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T11:59:10.424Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T11:59:40.523Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T12:00:10.620Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T12:00:40.710Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T12:01:10.804Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T12:01:40.894Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T12:02:10.993Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T12:02:41.088Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T12:03:11.187Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T12:03:41.288Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T12:04:11.386Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T12:04:41.483Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T12:05:11.577Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T12:05:41.671Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T12:06:11.754Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T12:06:41.836Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T12:07:11.943Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T12:07:42.051Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T12:08:12.148Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T12:08:42.238Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T12:09:12.344Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T12:09:42.440Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T12:10:12.537Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T12:10:42.632Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T12:11:12.732Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T12:11:42.836Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T12:12:12.919Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T12:12:43.008Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T12:13:13.096Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T12:13:43.185Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T12:14:13.268Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T12:14:43.351Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T12:15:13.445Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T12:15:43.526Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T12:16:13.635Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T12:16:43.734Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T12:17:13.835Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T12:17:43.925Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T12:18:14.026Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T12:18:44.149Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T12:19:14.234Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T12:19:44.329Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T12:20:14.408Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T12:20:44.520Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T12:21:14.633Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T12:21:44.754Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T12:22:14.853Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T12:22:44.978Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T12:23:15.085Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T12:23:45.170Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T12:24:15.261Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T12:24:45.366Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T12:25:15.476Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T12:25:45.597Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T12:26:15.749Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T12:26:45.866Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T12:27:15.957Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T12:27:46.047Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T12:28:16.141Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T12:28:46.261Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T12:29:16.347Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T12:29:46.443Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T12:30:16.548Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T12:30:46.644Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T12:31:16.751Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T12:31:46.849Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T12:32:16.970Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T12:32:47.075Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T12:33:17.186Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T12:33:47.288Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T12:34:17.383Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T12:34:47.485Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T12:35:17.603Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T12:35:47.701Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T12:36:17.796Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T12:36:47.907Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T12:37:18.015Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T12:37:48.116Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T12:38:18.218Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T12:38:48.324Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T12:39:18.418Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T12:39:48.517Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T12:40:18.612Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T12:40:48.706Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T12:41:18.811Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T12:41:48.917Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T12:42:19.018Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T12:42:49.120Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T12:43:19.232Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T12:43:49.340Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T12:44:19.455Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T12:44:49.605Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "6ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T12:45:19.693Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T12:45:49.777Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T12:46:19.921Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T12:46:50.015Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T12:47:20.122Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T12:47:50.223Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T12:48:20.343Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T12:48:50.435Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T12:49:20.547Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T12:49:50.656Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T12:50:20.762Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T12:50:50.882Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T12:51:20.979Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T12:51:51.088Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T12:52:21.192Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T12:52:51.292Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T12:53:21.368Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T12:53:51.461Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T12:54:21.521Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T12:54:51.616Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T12:55:21.705Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T12:55:51.809Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T12:56:21.920Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T12:56:52.018Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T12:57:22.114Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T12:57:52.218Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T12:58:22.323Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T12:58:52.437Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T12:59:22.577Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T12:59:52.657Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T13:00:22.817Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T13:00:52.930Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T13:01:23.028Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T13:01:53.130Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T13:02:23.233Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T13:02:53.343Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T13:03:23.443Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T13:03:53.555Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T13:04:23.652Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T13:04:53.762Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T13:05:23.868Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T13:05:53.977Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T13:06:24.087Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T13:06:54.191Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T13:07:24.289Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T13:07:54.380Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T13:08:24.524Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "10ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T13:08:54.632Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T13:09:24.754Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T13:09:54.861Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T13:10:24.979Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T13:10:55.077Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T13:11:25.204Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T13:11:55.305Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T13:12:25.405Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T13:12:55.494Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T13:13:25.613Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T13:13:55.730Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T13:14:25.818Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T13:14:55.929Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T13:15:26.042Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T13:15:56.151Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T13:16:26.258Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T13:16:56.369Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T13:17:26.466Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T13:17:56.595Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T13:18:26.695Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T13:18:56.790Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T13:19:26.893Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T13:19:56.989Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T13:20:27.113Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T13:20:57.195Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T13:21:27.307Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T13:21:57.415Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T13:22:27.516Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T13:22:57.617Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T13:23:27.729Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T13:23:57.850Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T13:24:27.963Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T13:24:58.109Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T13:25:28.248Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "6ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T13:25:58.341Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T13:26:28.440Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T13:26:58.533Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T13:27:28.637Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T13:27:58.750Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T13:28:28.855Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T13:28:58.948Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T13:29:29.049Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T13:29:59.157Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T13:30:29.257Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T13:30:59.357Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T13:31:29.492Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "7ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T13:31:59.628Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T13:32:29.722Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T13:32:59.858Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T13:33:29.970Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T13:34:00.083Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T13:34:30.188Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T13:35:00.296Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T13:35:30.401Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T13:36:00.511Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T13:36:30.608Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T13:37:00.718Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T13:37:30.824Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T13:38:00.926Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T13:38:31.022Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T13:39:01.130Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T13:39:31.244Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T13:40:01.336Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T13:40:31.446Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T13:41:01.556Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T13:41:31.662Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T13:42:01.763Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T13:42:31.856Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T13:43:01.993Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "5ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T13:43:32.088Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T13:44:02.178Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T13:44:32.262Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T13:45:02.371Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T13:45:32.475Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T13:46:02.573Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T13:46:32.705Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T13:47:02.811Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T13:47:32.913Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T13:48:03.012Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T13:48:33.114Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T13:49:03.211Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T13:49:33.299Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T13:50:03.395Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T13:50:33.485Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T13:51:03.616Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T13:51:33.713Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T13:52:03.799Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T13:52:33.905Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T13:53:04.051Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T13:53:34.154Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T13:54:04.271Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T13:54:34.357Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T13:55:04.495Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T13:55:34.622Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T13:56:04.728Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T13:56:34.826Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T13:57:04.917Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T13:57:35.017Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T13:58:05.118Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T13:58:35.213Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T13:59:05.308Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T13:59:35.398Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T14:33:16.587Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T15:03:59.226Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T15:21:32.342Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T15:33:54.222Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T16:00:51.556Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T16:01:21.651Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T16:03:36.377Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T16:20:47.495Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T16:33:34.794Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T16:49:31.257Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T17:02:17.185Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T17:04:10.767Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T17:04:40.860Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T17:34:29.236Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T17:52:55.934Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T18:03:18.659Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T18:19:40.134Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T18:33:26.326Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T18:45:38.188Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T19:01:19.858Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T19:04:15.763Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T19:33:12.254Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T19:33:42.336Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T20:03:23.135Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T20:03:53.230Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T20:33:23.260Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T20:50:49.700Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T21:04:25.778Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T21:19:54.962Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T21:33:19.909Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T21:38:01.363Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T21:38:31.450Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T22:05:14.666Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T22:33:21.980Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T22:33:52.109Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T22:40:22.858Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T22:44:55.668Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T22:45:25.764Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T23:04:21.876Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T23:04:51.974Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T23:33:48.273Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T23:34:18.359Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T23:46:34.870Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T23:50:35.410Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T23:51:05.513Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T23:51:35.617Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T23:52:05.705Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T23:52:35.800Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T23:53:05.904Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T23:53:36.005Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T23:54:06.090Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T23:54:36.195Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T23:55:06.288Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T23:55:36.379Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T23:56:06.477Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T23:56:36.571Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T23:57:06.661Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T23:57:36.749Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T23:58:06.841Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T23:58:36.942Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T23:59:07.042Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-09T23:59:37.129Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T00:00:07.222Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T00:00:37.312Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T00:01:07.397Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T00:01:37.481Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T00:02:07.578Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T00:02:37.687Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T00:03:07.808Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T00:03:37.900Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T00:04:07.997Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T00:04:38.090Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T00:05:08.193Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T00:05:38.295Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T00:06:08.386Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T00:06:38.470Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T00:07:08.552Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T00:07:38.665Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T00:08:08.756Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T00:11:03.608Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T00:11:33.716Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T00:16:36.925Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T00:17:07.012Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T00:21:47.477Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T00:26:28.522Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T00:26:58.628Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T00:27:28.717Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T00:27:58.823Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T00:28:28.917Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T00:28:59.004Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T00:29:29.090Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T00:29:59.178Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T00:30:29.279Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T00:30:59.373Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T00:31:29.466Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T00:31:59.547Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T00:32:29.636Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T00:32:59.735Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T00:33:29.832Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T00:33:59.917Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T00:34:30.001Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T00:35:00.098Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T00:35:30.190Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T00:36:00.283Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T00:36:30.372Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T00:37:00.457Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T00:37:30.553Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T00:38:00.652Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T00:38:30.744Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T00:39:00.838Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T00:39:30.935Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T00:40:01.032Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T00:40:31.123Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T00:41:01.212Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T00:41:31.291Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T00:42:01.379Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T00:42:31.475Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T00:43:01.575Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T00:43:31.657Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T00:44:01.751Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T00:44:31.842Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T00:45:01.936Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T00:45:32.022Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T00:46:02.114Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T00:46:32.218Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T00:47:02.314Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T00:47:32.403Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T00:48:02.500Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T00:48:32.588Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T00:49:02.684Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T00:49:32.784Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T00:50:02.881Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T00:50:32.981Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T00:51:03.074Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T00:51:33.172Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T00:52:03.267Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T00:52:33.371Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T00:53:03.465Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T00:53:33.554Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T00:54:03.648Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T00:54:33.728Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T00:55:03.821Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T00:55:33.921Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T00:56:04.001Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T00:56:34.102Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T00:57:04.189Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T00:57:34.283Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T00:58:04.373Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T00:58:34.453Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T00:59:04.543Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T00:59:34.635Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T01:00:04.717Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T01:00:34.821Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T01:01:04.909Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T01:01:35.010Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T01:02:05.101Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T01:02:35.194Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T01:03:05.295Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T01:03:35.389Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T01:04:05.481Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T01:04:35.571Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T01:05:05.667Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T01:05:35.763Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T01:06:05.859Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T01:06:35.949Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T01:07:06.043Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T01:07:36.139Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T01:08:06.226Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T01:08:36.313Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T01:09:06.392Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T01:09:36.492Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T01:10:06.584Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T01:10:36.670Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T01:11:06.766Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T01:11:36.856Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T01:12:06.938Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T01:12:37.026Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T01:13:07.112Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T01:13:37.210Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T01:14:07.299Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T01:14:37.401Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T01:15:07.503Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T01:15:37.615Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T01:16:07.706Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T01:16:37.800Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T01:17:07.895Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T01:17:37.997Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T01:18:08.090Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T01:18:38.187Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T01:19:08.277Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T01:19:38.364Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T01:20:08.457Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T01:20:38.550Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T01:21:08.652Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T01:21:38.744Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T01:22:08.840Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T01:22:38.929Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T01:23:09.018Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T01:23:39.120Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T01:24:09.218Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T01:24:39.306Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T01:25:09.391Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T01:25:39.493Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T01:26:09.584Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T01:26:39.674Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T01:27:11.513Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T01:27:41.607Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T01:32:22.131Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T01:34:34.007Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T01:35:04.102Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T01:35:34.200Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T01:36:04.303Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T01:36:34.399Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T01:37:04.492Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T01:37:34.581Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T01:38:04.669Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T01:38:34.749Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T01:39:04.844Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T01:39:34.931Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T01:40:05.025Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T01:40:35.127Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T01:41:05.216Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T01:41:35.305Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T01:42:05.390Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T01:42:35.497Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T01:43:05.600Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T01:43:35.689Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T01:44:05.777Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T01:44:35.875Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T01:45:05.999Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T01:45:36.083Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T01:46:06.167Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T01:46:36.257Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T01:47:06.349Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T01:47:36.503Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T01:48:06.597Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T01:48:36.721Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T01:49:06.828Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T01:49:36.968Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T01:50:07.041Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T01:50:37.137Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T01:51:07.222Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T01:51:37.351Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T01:52:07.437Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T01:52:37.530Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T01:53:07.624Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T01:53:37.743Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T01:54:07.872Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T01:54:37.982Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T01:55:08.079Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T01:55:38.174Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T01:56:08.275Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T01:56:38.380Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T01:57:08.470Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T01:57:38.566Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T01:58:08.646Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T01:58:38.740Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T01:59:08.830Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T01:59:38.917Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T02:00:09.019Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T02:00:39.111Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T02:01:09.212Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T02:01:39.297Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T02:02:09.386Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T02:02:39.491Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T02:03:09.595Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T02:03:39.685Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T02:04:09.771Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T02:04:39.860Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T02:05:09.955Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T02:05:40.055Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T02:06:10.151Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T02:06:40.233Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T02:07:10.328Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T02:07:40.445Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T02:08:10.547Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T02:08:40.632Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T02:09:10.727Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T02:09:40.813Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T02:10:10.912Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T02:10:41.015Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T02:11:11.103Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T02:11:41.204Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T02:12:11.309Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T02:12:41.404Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T02:13:11.501Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T02:13:41.596Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T02:14:11.681Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T02:14:41.778Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T02:15:11.857Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T02:15:41.969Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T02:16:12.052Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T02:16:42.136Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T02:17:12.234Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T02:17:42.383Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T02:18:12.489Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T02:18:42.613Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T02:19:12.722Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T02:19:42.806Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T02:20:12.922Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T02:20:43.045Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T02:21:13.176Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T02:21:43.329Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T02:22:13.428Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T02:22:43.530Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T02:23:13.646Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T02:23:43.831Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T02:24:13.948Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T02:24:44.047Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T02:25:14.153Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T02:25:44.271Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T02:26:14.380Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T02:26:44.479Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T02:27:14.572Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T02:27:44.660Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T02:28:14.782Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T02:28:44.888Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T02:29:15.003Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T02:29:45.105Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T02:30:15.215Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T02:30:45.356Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T02:31:15.451Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T02:31:45.605Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T02:32:15.695Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T02:32:45.796Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T02:33:15.886Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T02:33:45.971Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T02:34:16.061Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T02:34:46.156Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T02:35:16.255Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T02:35:46.345Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T02:36:16.431Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T02:36:46.531Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T02:37:16.617Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T02:37:46.727Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T02:38:16.821Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T02:38:46.898Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T02:39:16.992Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T02:39:47.086Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T02:40:17.171Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T02:40:47.252Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T02:41:17.341Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T02:41:47.427Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T02:42:17.524Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T02:42:47.610Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T02:43:17.693Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T02:43:47.773Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T02:44:17.862Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T02:44:47.941Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T02:45:18.030Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T02:45:48.127Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T02:46:18.214Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T02:46:48.296Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T02:47:18.379Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T02:47:48.480Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T02:48:18.568Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T02:48:48.665Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T02:49:18.764Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T02:49:48.846Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T02:50:18.938Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T02:50:49.030Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T02:51:19.134Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T02:51:49.238Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T02:52:19.325Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T02:52:49.421Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T02:53:19.506Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T02:53:49.594Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T02:54:19.687Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T02:54:49.773Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T02:55:19.868Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T02:55:49.939Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T02:56:20.003Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T02:56:50.056Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T02:57:20.116Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T02:57:50.180Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T02:58:20.232Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T02:58:50.284Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T02:59:20.345Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T02:59:50.395Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T03:00:20.444Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T03:00:50.492Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T03:01:20.543Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T03:01:50.607Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T03:02:20.665Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T03:02:50.730Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T03:03:20.798Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T03:03:50.852Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T03:04:20.910Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T03:04:50.964Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T03:05:21.019Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T03:05:51.069Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T03:06:21.121Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T03:06:51.175Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T03:07:21.226Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T03:07:51.280Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T03:08:21.338Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T03:08:51.398Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T03:09:21.450Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T03:09:51.507Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T03:10:21.581Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T03:10:51.636Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T03:11:21.685Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T03:11:51.736Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T03:12:21.785Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T03:12:51.836Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T03:13:21.895Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T03:13:51.959Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T03:14:22.008Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T03:14:52.061Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T03:15:22.117Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T03:15:52.183Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T03:16:22.239Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T03:16:52.308Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T03:17:22.367Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T03:17:52.417Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T03:18:22.469Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T03:18:52.515Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T03:19:22.566Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T03:19:52.621Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T03:20:22.690Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T03:20:52.743Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T03:21:22.792Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T03:21:52.847Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T03:22:22.899Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T03:22:52.953Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T03:23:23.012Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T03:23:53.068Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T03:24:23.121Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T03:24:53.181Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T03:25:23.234Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T03:25:53.290Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T03:26:23.348Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T03:26:53.409Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T03:27:23.460Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T03:27:53.518Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T03:28:23.569Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T03:28:53.619Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T03:29:23.682Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T03:29:53.739Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T03:30:23.795Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T03:30:53.847Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T03:31:23.900Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T03:31:53.953Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T03:32:24.020Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T03:32:54.078Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T03:33:24.147Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T03:33:54.199Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T03:34:24.253Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T03:34:54.298Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T03:35:24.358Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T03:35:54.412Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T03:36:24.470Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T03:36:54.524Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T03:37:24.585Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T03:37:54.643Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T03:38:24.703Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T03:38:54.766Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T03:39:24.821Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T03:39:54.873Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T03:40:24.926Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T03:40:54.978Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T03:41:25.028Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T03:41:55.079Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T03:42:25.129Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T03:42:55.179Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T03:43:25.229Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T03:43:55.282Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T03:44:25.331Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T03:44:55.389Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T03:45:25.444Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T03:45:55.506Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T03:46:25.565Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T03:46:55.622Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T03:47:25.679Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T03:47:55.745Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T03:48:25.802Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T03:48:55.864Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T03:49:25.915Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T03:49:55.967Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T03:50:26.013Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T03:50:56.068Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T03:51:26.124Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T03:51:56.180Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T03:52:26.250Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T03:52:56.307Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T03:53:26.385Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T03:53:56.441Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T03:54:26.490Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T03:54:56.540Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T03:55:26.594Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T03:55:56.661Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T03:56:26.719Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T03:56:56.788Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T03:57:26.842Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T03:57:56.925Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T03:58:26.978Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T03:58:57.024Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T03:59:27.112Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T03:59:57.184Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T04:00:27.258Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T04:00:57.299Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T04:01:27.368Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T04:01:57.431Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T04:02:27.495Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T04:02:57.562Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T04:03:27.666Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T04:03:57.739Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T04:04:27.817Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T04:04:57.888Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T04:05:27.959Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T04:05:58.039Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T04:06:28.126Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T04:06:58.229Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T04:07:28.323Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T04:07:58.429Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T04:08:28.520Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T04:08:58.611Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T04:09:28.696Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T04:09:58.798Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T04:10:28.894Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T04:10:58.991Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T04:11:29.086Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T04:11:59.183Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T04:12:29.277Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T04:12:59.383Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T04:13:29.500Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T04:13:59.589Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T04:14:29.672Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T04:14:59.765Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T04:15:29.846Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T04:15:59.945Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T04:16:30.041Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T04:17:00.137Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T04:17:30.225Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T04:18:00.318Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T04:18:30.412Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T04:19:00.508Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T04:19:30.589Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T04:20:00.679Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T04:20:30.761Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T04:21:00.856Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T04:21:30.948Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T04:22:01.040Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T04:22:31.127Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T04:23:01.212Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T04:23:31.299Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T04:24:01.387Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T04:24:31.474Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T04:25:01.566Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T04:25:31.670Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T04:26:01.762Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T04:26:31.857Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T04:27:01.948Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T04:27:32.031Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T04:28:02.121Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T04:28:32.227Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T04:29:02.321Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T04:29:32.415Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T04:30:02.506Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T04:30:32.608Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T04:31:02.701Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T04:31:32.792Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T04:32:02.866Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T04:32:32.963Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T04:33:03.055Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T04:33:33.142Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T04:34:03.234Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T04:34:33.320Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T04:35:03.410Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T04:35:33.494Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T04:36:03.574Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T04:36:33.664Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T04:37:03.762Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T04:37:33.859Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T04:38:03.957Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T04:38:34.044Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T04:39:04.133Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T04:39:34.235Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T04:40:04.317Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T04:40:34.402Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T04:41:04.494Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T04:41:34.590Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T04:42:04.683Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T04:42:34.772Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T04:43:04.871Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T04:43:34.958Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T04:44:05.039Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T04:44:35.121Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T04:45:05.207Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T04:45:35.314Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T04:46:05.401Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T04:46:35.488Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T04:47:05.587Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T04:47:35.684Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T04:48:05.774Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T04:48:35.864Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T04:49:05.963Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T04:49:36.065Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T04:50:06.160Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T04:50:36.252Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T04:51:06.334Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T04:51:36.420Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T04:52:06.506Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T04:52:36.604Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T04:53:06.713Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T04:53:36.807Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T04:54:06.883Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T04:54:36.976Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T04:55:07.070Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T04:55:37.167Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T04:56:07.259Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T04:56:37.352Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T04:57:07.446Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T04:57:37.533Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T04:58:07.641Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T04:58:37.737Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T04:59:07.797Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T04:59:37.885Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T05:00:07.962Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T05:00:38.062Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T05:01:08.148Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T05:01:38.232Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T05:02:08.323Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T05:02:38.425Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T05:03:08.508Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T05:03:38.592Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T05:04:08.680Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T05:04:38.770Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T05:05:08.859Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T05:05:38.955Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T05:06:09.042Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T05:06:39.139Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T05:07:09.232Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T05:07:39.336Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T05:08:09.430Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T05:08:39.521Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T05:09:09.627Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T05:09:39.716Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T05:10:09.806Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T05:10:39.918Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T05:11:10.011Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T05:15:22.302Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T05:15:52.383Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T05:16:22.476Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T05:16:52.560Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T05:17:22.647Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T05:17:52.735Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T05:18:22.827Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T05:18:52.909Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T05:19:23.003Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T05:51:05.262Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T05:56:12.790Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T05:56:42.885Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T05:57:12.981Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T05:57:43.084Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T05:58:13.168Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T05:58:43.263Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T05:59:13.357Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T05:59:43.449Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T06:00:13.538Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T06:00:43.640Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T06:01:13.729Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T06:01:43.809Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T06:02:13.896Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T06:02:43.978Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T06:03:14.068Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T06:03:44.157Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T06:04:14.236Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T06:04:44.327Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T06:05:14.412Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T06:05:44.499Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T06:06:14.585Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T06:06:44.678Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T06:07:14.775Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T06:07:44.865Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T06:08:14.932Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T06:08:45.033Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T06:09:15.090Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T06:09:45.312Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T06:10:20.106Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T06:11:10.398Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T06:11:42.005Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T06:12:12.089Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T06:12:42.191Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T06:13:12.275Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T06:36:19.767Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T07:16:30.901Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T07:17:00.991Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T07:17:31.084Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T07:18:01.167Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T07:18:31.265Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T07:19:01.359Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T07:19:31.451Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T07:20:01.547Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T07:20:31.634Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T07:21:01.726Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T07:21:31.822Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T07:22:01.911Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T07:22:32.007Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T07:23:02.101Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T07:23:32.187Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T07:24:02.279Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T07:24:32.363Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T07:25:02.456Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T07:25:32.551Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T07:26:02.647Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T07:26:32.730Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T07:27:02.832Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T07:27:32.922Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T07:28:03.011Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T07:28:33.099Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T07:29:03.184Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T07:29:33.270Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T07:30:03.360Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T07:30:33.449Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T07:31:03.533Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T07:31:33.621Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T07:32:03.694Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T07:32:33.784Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T07:33:03.884Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T07:33:33.979Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T07:34:04.066Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T07:34:34.150Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T07:35:04.231Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T07:35:34.313Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T07:36:04.406Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T07:36:34.499Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T07:37:04.590Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T07:37:34.683Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T07:38:04.771Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T07:38:34.858Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T07:39:04.945Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T07:39:35.028Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T07:40:05.125Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T07:40:35.211Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T07:41:05.301Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T07:41:35.409Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T07:42:05.480Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T07:42:35.559Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T07:43:05.653Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T07:43:35.743Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T07:44:05.828Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T07:44:35.898Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T07:45:06.007Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T07:45:36.097Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T07:46:06.191Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T07:46:36.279Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T07:47:06.370Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T07:47:36.467Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T07:48:06.540Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T07:48:36.631Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T07:49:06.727Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T07:49:36.820Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T07:50:06.928Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T07:50:37.004Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T07:51:07.092Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T07:51:37.186Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T07:52:07.278Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T07:52:37.365Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T07:53:07.459Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T07:53:37.556Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T07:54:07.651Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T07:54:37.739Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T07:55:07.843Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T07:55:37.931Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T07:56:08.023Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T07:56:38.114Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T07:57:08.202Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T07:57:38.280Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T07:58:08.360Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T07:58:38.445Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T07:59:08.554Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T07:59:38.636Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T08:00:08.736Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T08:00:38.826Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T08:01:08.919Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T08:01:39.027Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T08:02:09.106Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T08:02:39.197Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T08:03:09.299Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T08:03:39.391Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T08:04:09.492Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T08:04:39.583Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T08:05:09.682Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T08:05:39.771Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T08:06:09.857Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T08:06:39.952Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T08:07:10.048Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T08:07:40.145Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T08:08:10.234Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T08:08:40.319Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T08:09:10.403Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T08:09:40.487Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T08:10:10.584Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T08:10:40.680Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T08:11:10.771Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T08:11:40.847Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T08:12:10.932Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T08:12:41.017Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T08:13:11.123Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T08:13:41.210Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T08:14:11.300Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T08:14:41.392Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T08:15:11.479Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T08:15:41.559Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T08:16:11.654Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T08:16:41.741Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T08:17:11.830Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T08:17:41.923Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T08:18:12.024Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T08:18:42.120Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T08:19:12.192Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T08:19:42.294Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T08:20:12.396Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T08:20:42.490Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T08:21:12.585Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T08:21:42.677Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T08:22:12.768Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T08:22:42.857Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T08:23:12.956Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T08:23:43.038Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T08:24:13.138Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T08:24:43.212Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T08:25:13.298Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T08:25:43.385Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T08:26:13.478Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T08:26:43.579Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T08:27:13.679Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T08:27:43.766Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T08:28:13.852Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T08:28:43.919Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T08:29:14.010Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T08:29:44.102Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T08:30:14.200Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T08:30:44.282Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T08:31:14.362Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T08:31:44.454Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T08:32:14.552Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T08:32:44.634Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T08:33:14.739Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T08:33:44.832Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T08:34:14.925Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T08:34:45.020Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T08:35:15.119Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T08:35:45.222Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T08:36:15.320Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T08:36:45.409Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T08:37:15.490Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T08:37:45.582Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T08:38:15.665Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T08:38:45.753Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T08:39:15.841Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T08:39:45.927Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T08:40:16.023Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T08:40:46.121Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T08:41:16.245Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T08:41:46.345Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T08:42:16.441Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T08:42:46.548Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T08:43:16.643Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T08:43:46.720Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T08:44:16.822Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T08:44:46.918Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T08:45:17.010Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T08:45:47.098Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T08:46:17.190Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T08:46:47.271Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T08:47:17.376Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T08:47:47.464Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T08:48:17.557Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T08:48:47.651Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T08:49:17.750Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T08:49:47.842Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T08:50:17.947Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T08:50:48.048Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T08:51:18.146Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T08:51:48.212Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T08:52:18.301Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T08:52:48.371Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T08:53:18.470Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T08:53:48.560Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T08:54:18.647Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T08:54:48.731Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T08:55:18.822Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T08:55:48.930Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T08:56:19.023Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T08:56:49.114Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T08:57:19.206Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T08:57:49.289Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T08:58:19.377Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T08:58:49.452Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T08:59:19.539Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T08:59:49.615Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T09:00:19.714Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T09:00:49.809Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T09:01:19.902Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T09:01:49.978Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T09:02:20.098Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T09:02:50.184Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T09:03:20.272Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T09:03:50.361Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T09:04:20.451Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T09:04:50.560Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T09:05:20.642Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T09:05:50.736Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T09:06:20.804Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T09:06:50.889Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T09:07:20.969Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T09:07:51.052Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T09:08:21.139Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T09:08:51.233Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T09:09:21.312Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T09:09:51.391Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T09:10:21.455Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T09:10:51.539Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T09:11:21.609Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T09:11:51.678Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T09:12:21.739Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T09:12:51.807Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T09:13:21.879Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T09:13:51.955Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T09:14:22.025Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T09:14:52.093Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T09:15:22.163Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T09:15:52.228Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T09:16:22.298Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T09:16:52.369Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T09:17:22.451Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T09:17:52.530Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T09:18:22.602Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T09:18:52.686Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T09:19:22.763Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T09:19:52.838Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T09:20:22.902Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T09:20:52.988Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T09:21:23.058Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T09:21:53.117Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T09:22:23.201Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T09:22:53.268Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T09:23:23.341Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T09:23:53.410Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T09:24:23.491Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T09:24:53.569Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T09:25:23.638Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T09:25:53.707Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T09:26:23.775Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T09:26:53.857Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T09:27:23.929Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T09:27:54.007Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T09:28:24.072Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T09:28:54.154Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T09:29:24.234Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T09:29:54.309Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T09:30:24.388Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T09:30:54.458Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T09:31:24.546Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T09:31:54.618Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T09:32:24.694Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T09:32:54.772Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T09:33:24.843Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T09:33:54.919Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T09:34:25.007Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T09:34:55.084Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T09:35:25.144Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T09:35:55.232Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T09:36:25.304Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T09:36:55.388Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T09:37:25.468Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T09:37:55.546Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T09:38:25.614Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T09:38:55.687Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T09:39:25.759Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T09:39:55.834Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T09:40:25.900Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T09:40:55.979Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T09:41:26.037Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T09:41:56.110Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T09:42:26.185Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T09:42:56.262Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T09:43:26.337Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T09:43:56.416Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T09:44:26.492Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T09:44:56.561Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T09:45:26.645Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T09:45:56.722Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T09:46:26.812Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T09:46:56.918Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T09:47:27.005Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T09:47:57.077Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T09:48:27.154Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T09:48:57.228Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T09:49:27.309Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T09:49:57.387Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T09:50:27.461Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T09:50:57.552Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T09:51:27.632Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T09:51:57.702Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T09:52:27.781Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T09:52:57.864Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T09:53:27.934Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T09:53:58.030Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T09:54:28.105Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T09:54:58.177Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T09:55:28.258Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T09:55:58.335Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T09:56:28.403Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T09:56:58.489Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T09:57:28.562Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T09:57:58.642Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T09:58:28.720Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T09:58:58.823Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T09:59:28.895Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T09:59:58.979Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T10:00:29.052Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T10:00:59.136Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T10:01:29.218Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T10:01:59.289Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T10:02:29.362Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T10:02:59.451Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T10:03:29.523Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T10:03:59.603Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T10:04:29.683Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T10:04:59.776Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T10:05:29.866Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T10:05:59.938Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T10:06:30.008Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T10:07:00.096Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T10:07:30.190Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T10:08:00.257Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T10:08:30.333Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T10:09:00.428Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T10:09:30.497Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T10:10:00.588Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T10:10:30.681Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T10:11:00.764Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T10:11:30.847Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T10:12:00.917Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T10:12:30.982Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T10:13:01.071Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T10:13:31.156Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T10:14:01.224Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T10:14:31.309Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T10:15:01.389Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T10:15:31.469Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T10:16:01.536Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T10:16:31.623Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T10:17:01.705Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T10:17:31.791Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T10:18:01.862Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T10:18:31.941Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T10:19:02.065Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T10:19:32.152Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T10:20:02.244Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T10:20:32.338Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T10:21:02.429Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T10:21:32.522Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T10:22:02.628Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T10:22:32.708Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T10:23:02.786Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T10:23:32.858Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T10:24:02.964Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T10:24:33.040Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T10:25:03.137Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T10:25:33.206Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T10:26:03.288Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T10:26:33.379Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T10:27:03.459Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T10:27:33.538Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T10:28:03.632Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T10:28:33.712Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T10:29:03.803Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T10:29:33.893Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T10:30:03.973Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T10:30:34.056Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T10:31:04.130Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T10:31:34.227Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T10:32:04.320Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T10:32:34.406Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T10:33:04.489Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T10:33:34.577Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T10:34:04.688Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T10:34:34.772Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T10:35:04.877Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T10:35:34.960Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T10:36:05.050Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T10:36:35.135Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T10:37:05.223Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T10:37:35.304Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T10:38:05.384Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T10:38:35.466Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T10:39:05.554Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T10:39:35.634Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T10:40:05.713Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T10:40:35.801Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T10:41:05.887Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T10:41:35.966Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T10:42:06.087Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T10:42:36.173Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T10:43:06.245Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T10:43:36.311Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T10:44:06.408Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T10:44:36.483Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T10:45:06.579Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T10:45:36.655Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T10:46:06.743Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T10:46:36.819Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T10:47:06.890Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T10:47:36.988Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T10:48:07.129Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T10:48:37.219Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T10:49:07.311Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T10:49:37.383Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T10:50:07.470Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T10:50:37.570Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T10:51:07.667Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T10:51:37.824Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T10:52:07.951Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T10:52:38.040Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T10:53:08.119Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T10:53:38.198Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T10:54:08.268Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T10:54:38.347Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T10:55:08.435Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T10:55:38.510Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T10:56:08.587Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T10:56:38.656Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T10:57:08.762Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T10:57:38.853Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T10:58:08.942Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T10:58:39.010Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T10:59:09.088Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T10:59:39.172Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T11:00:09.273Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T11:00:39.347Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T11:01:09.425Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T11:01:39.514Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T11:02:09.600Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T11:02:39.706Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T11:03:09.786Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T11:03:39.868Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T11:04:10.018Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T11:04:40.125Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T11:05:10.259Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T11:05:40.375Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T11:06:10.483Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T11:06:40.596Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T11:07:10.688Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T11:07:40.772Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T11:08:10.867Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T11:08:40.936Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T11:09:10.999Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T11:09:41.073Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T11:10:11.159Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T11:10:41.233Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T11:11:11.304Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T11:11:41.366Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T11:12:11.455Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T11:12:41.534Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T11:13:11.611Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T11:13:41.689Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T11:14:11.776Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T11:14:41.853Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T11:15:11.929Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T11:15:42.010Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T11:16:12.083Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T11:16:42.167Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T11:17:12.244Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T11:17:42.315Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T11:18:12.379Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T11:18:42.470Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T11:19:12.530Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T11:19:42.602Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T11:20:12.666Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T11:20:42.754Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T11:21:12.829Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T11:21:42.905Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T11:22:12.970Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T11:22:43.038Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T11:23:13.114Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T11:23:43.182Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T11:24:13.257Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T11:24:43.337Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T11:25:13.410Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T11:25:43.494Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T11:26:13.578Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T11:26:43.654Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T11:27:13.725Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T11:27:43.800Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T11:28:13.868Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T11:28:43.941Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T11:29:14.015Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T11:29:44.093Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T11:30:14.177Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T11:30:44.253Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T11:31:14.331Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T11:31:44.410Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T11:32:14.480Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T11:32:44.544Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T11:33:14.612Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T11:33:44.682Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T11:34:14.753Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T11:34:44.826Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T11:35:14.900Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T11:35:44.984Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T11:36:15.058Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T11:36:45.128Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T11:37:15.220Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T11:37:45.290Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T11:38:15.362Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T11:38:45.442Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T11:39:15.512Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T11:39:45.595Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T11:40:15.659Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T11:40:45.729Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T11:41:15.819Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T11:41:45.888Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T11:42:15.964Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T11:42:46.039Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T11:43:16.123Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T11:43:46.204Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T11:44:16.278Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T11:44:46.355Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T11:45:16.428Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T11:45:46.498Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T11:46:16.568Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T11:46:46.642Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T11:47:16.719Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T11:47:46.806Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T11:48:16.875Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T11:48:46.951Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T11:49:17.017Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T11:49:47.095Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T11:50:17.165Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T11:50:47.240Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T11:51:17.309Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T11:51:47.369Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T11:52:17.447Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T11:52:47.517Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T11:53:17.587Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T11:53:47.662Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T11:54:17.745Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T11:54:47.815Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T11:55:17.884Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T11:55:47.943Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T11:56:18.017Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T11:56:48.088Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T11:57:18.164Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T11:57:48.247Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T11:58:18.325Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T11:58:48.401Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T11:59:18.465Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T11:59:48.535Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T12:00:18.614Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T12:00:48.680Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T12:01:18.758Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T12:01:48.816Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T12:02:18.901Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T12:02:48.973Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T12:03:19.038Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T12:03:49.107Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T12:04:19.169Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T12:04:49.244Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T12:05:19.323Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T12:05:49.374Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T12:06:19.430Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T12:06:49.492Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T12:07:19.576Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T12:07:49.653Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T12:08:19.728Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T12:08:49.798Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T12:09:19.883Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T12:09:49.962Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T12:10:20.030Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T12:10:50.113Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T12:11:20.189Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T12:11:50.258Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T12:12:20.325Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T12:12:50.399Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T12:13:20.472Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T12:13:50.534Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T12:14:20.602Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T12:14:50.665Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T12:15:20.738Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T12:15:50.804Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T12:16:20.866Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T12:16:50.947Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T12:17:21.019Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T12:17:51.116Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T12:18:21.212Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T12:18:51.289Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T12:19:21.361Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T12:19:51.447Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T12:20:21.534Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T12:20:51.611Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T12:21:21.725Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T12:21:51.805Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T12:22:21.866Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T12:22:51.949Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T12:23:22.023Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T12:23:52.103Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T12:24:22.173Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T12:24:52.265Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T12:25:22.346Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T12:25:52.427Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T12:26:22.511Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T12:26:52.618Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T12:27:22.700Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T12:27:52.773Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T12:28:22.844Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T12:28:52.922Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T12:29:23.008Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T12:29:53.081Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T12:30:23.167Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T12:30:53.248Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T12:31:23.329Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T12:31:53.402Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T12:32:23.507Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T12:32:53.584Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T12:33:23.646Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T12:33:53.716Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T12:34:23.808Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T12:34:53.887Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T12:35:23.973Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T12:35:54.053Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T12:36:24.131Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T12:36:54.201Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T12:37:24.274Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T12:37:54.358Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T12:38:24.432Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T12:38:54.511Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T12:39:24.583Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T12:39:54.653Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T12:40:24.732Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T12:40:54.801Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T12:41:24.894Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T12:41:54.971Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T12:42:25.045Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T12:42:55.125Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T12:43:25.200Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T12:43:55.278Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T12:44:25.353Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T12:44:55.427Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T12:45:25.503Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T12:45:55.595Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T12:46:25.687Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T12:46:55.771Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T12:47:25.844Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T12:47:55.920Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T12:48:26.007Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T12:48:56.081Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T12:49:26.164Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T12:49:56.245Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T12:50:26.331Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T12:50:56.420Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T12:51:26.499Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T12:51:56.568Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T12:52:26.654Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T12:52:56.741Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T12:53:26.819Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T12:53:56.902Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T12:54:27.030Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "7ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T12:54:57.132Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T12:55:27.220Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T12:55:57.297Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T12:56:27.368Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T12:56:57.460Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T12:57:27.540Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T12:57:57.597Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T12:58:27.675Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T12:58:57.804Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T12:59:27.882Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T12:59:57.957Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T13:00:28.047Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T13:00:58.122Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T13:01:28.204Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T13:01:58.275Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T13:02:28.347Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T13:02:58.429Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T13:03:28.517Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T13:03:58.598Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T13:04:28.669Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T13:04:58.747Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T13:05:28.827Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T13:05:58.926Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T13:06:28.998Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T13:06:59.080Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T13:07:29.150Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T13:07:59.236Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T13:08:29.326Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T13:08:59.398Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T13:09:29.473Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T13:09:59.548Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T13:10:29.637Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T13:10:59.730Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T13:11:29.812Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T13:11:59.888Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T13:12:29.985Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T13:13:00.073Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T13:13:30.156Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T13:14:00.243Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T13:14:30.328Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T13:15:00.441Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T13:15:30.528Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T13:16:00.600Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T13:16:30.696Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T13:17:00.785Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T13:17:30.873Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T13:18:00.967Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T13:18:31.070Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T13:19:01.153Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T13:19:31.244Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T13:20:01.356Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T13:20:31.474Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T13:21:01.561Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T13:21:31.642Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T13:22:01.717Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T13:22:31.815Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T13:23:01.889Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T13:23:31.953Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T13:24:02.079Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T13:24:32.151Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T13:25:02.263Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T13:25:32.334Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T13:26:02.423Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T13:26:32.547Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T13:27:02.630Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T13:27:32.701Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T13:28:02.788Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T13:28:32.868Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T13:29:02.977Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T13:29:33.048Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T13:30:03.125Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T13:30:33.220Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T13:31:03.312Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T13:31:33.402Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T13:32:03.481Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T13:32:33.631Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T13:33:03.730Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T13:33:33.810Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T13:34:03.909Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T13:34:33.992Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T13:35:04.083Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T13:35:34.168Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T13:36:04.257Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T13:36:34.330Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T13:37:04.421Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T13:37:34.514Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T13:38:04.613Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T13:38:34.706Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T13:39:04.790Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T13:39:34.872Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T13:40:04.999Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T13:40:35.088Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T13:41:05.171Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T13:41:35.247Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T13:42:05.336Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T13:42:35.422Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T13:43:05.505Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T13:43:35.572Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T13:44:05.650Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T13:44:35.723Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T13:45:05.815Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T13:45:35.885Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T13:46:05.965Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T13:46:36.052Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T13:47:06.142Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T13:47:36.221Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T13:48:06.300Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T13:48:36.379Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T13:49:06.473Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T13:49:36.554Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T13:50:06.637Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T13:50:36.710Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T13:51:06.807Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T13:51:36.888Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T13:52:06.975Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T13:52:37.050Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T13:53:07.133Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T13:53:37.215Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T13:54:07.335Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T13:54:37.422Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T13:55:07.511Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T13:55:37.595Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T13:56:07.706Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T13:56:37.797Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T13:57:07.880Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T13:57:37.996Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T13:58:08.123Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T13:58:38.261Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T13:59:08.408Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T13:59:38.565Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T14:00:08.700Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T14:00:38.791Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T14:01:08.925Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T14:01:39.027Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T14:02:09.169Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T14:02:39.275Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T14:03:09.390Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T14:03:39.556Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T14:04:09.688Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T14:04:39.817Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T14:05:09.919Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T14:05:40.083Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "8ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T14:06:10.244Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "6ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T14:06:40.427Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T14:07:10.530Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T14:07:40.636Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T14:08:10.688Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T14:08:40.755Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T14:09:10.825Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T14:09:40.910Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T14:10:10.963Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T14:10:41.024Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T14:11:11.095Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T14:11:41.174Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T14:12:11.248Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T14:12:41.317Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T14:13:11.400Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T14:13:41.471Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T14:14:11.547Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T14:14:41.623Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T14:15:11.692Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T14:15:41.764Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T14:16:11.836Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T14:16:41.907Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T14:17:11.973Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T14:17:42.040Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T14:18:12.114Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T14:18:42.197Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T14:19:12.284Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T14:19:42.369Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T14:20:12.453Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T14:20:42.555Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T14:21:12.649Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T14:21:42.744Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T14:22:12.850Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T14:22:42.942Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T14:23:13.040Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T14:23:43.142Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T14:24:13.238Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T14:24:43.340Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T14:25:13.432Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T14:25:43.533Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T14:26:13.631Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T14:26:43.742Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T14:27:13.834Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T14:27:43.935Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T14:28:14.045Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T14:28:44.147Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T14:29:14.263Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T14:29:44.372Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T14:30:14.479Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T14:30:44.569Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T14:31:14.659Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T14:31:44.755Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T14:32:14.860Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T14:32:44.974Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T14:33:15.072Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T14:33:45.184Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T14:34:15.289Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T14:34:45.425Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T14:35:15.530Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T14:35:45.634Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T14:36:15.749Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T14:36:45.852Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T14:37:15.959Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T14:37:46.056Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T14:38:16.167Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T14:38:46.255Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T14:39:16.358Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T14:39:46.448Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T14:40:16.557Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T14:40:46.663Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T14:41:16.779Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T14:41:46.887Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T14:42:17.015Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T14:42:47.106Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T14:43:17.212Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T14:43:47.305Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T14:44:17.428Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T14:44:47.526Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T14:45:17.643Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T14:45:47.740Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T14:46:17.843Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T14:46:47.942Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T14:47:18.047Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T14:47:48.140Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T14:48:18.237Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T14:48:48.334Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T14:49:18.433Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T14:49:48.520Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T14:50:18.617Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T14:50:48.765Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T14:51:18.867Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T14:51:48.973Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T14:52:19.079Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T14:52:49.179Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T14:53:19.284Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T14:53:49.406Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T14:54:19.531Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T14:54:49.618Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T14:55:19.713Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T14:55:49.833Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T14:56:19.938Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T14:56:50.047Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T14:57:20.158Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T14:57:50.262Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T14:58:20.354Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T14:58:50.430Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T14:59:20.521Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T14:59:50.599Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T15:00:20.718Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T15:00:50.818Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T15:01:20.908Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T15:01:51.076Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T15:02:21.181Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T15:02:51.278Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T15:03:21.378Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T15:03:51.476Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T15:04:21.558Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T15:04:51.634Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T15:05:21.737Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T15:05:51.826Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T15:06:21.897Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T15:06:51.990Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T15:07:22.085Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T15:07:52.173Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T15:08:22.274Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T15:08:52.353Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T15:09:22.441Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T15:09:52.530Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T15:10:22.623Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T15:10:52.700Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T15:11:22.782Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T15:11:52.866Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T15:12:22.930Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T15:12:53.012Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T15:13:23.114Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T15:13:53.194Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T15:14:23.298Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T15:14:53.381Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T15:15:23.476Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T15:15:53.561Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T15:16:23.647Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T15:16:53.738Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T15:17:23.827Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T15:17:53.912Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T15:18:24.006Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T15:18:54.083Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T15:19:24.173Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T15:19:54.263Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T15:20:24.357Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T15:20:54.434Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T15:21:24.528Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T15:21:54.616Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T15:22:24.708Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T15:22:54.812Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T15:23:24.898Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T15:23:54.997Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T15:24:25.078Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T15:24:55.178Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T15:25:25.269Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T15:25:55.366Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T15:26:25.454Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T15:26:55.549Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T15:27:25.647Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T15:27:55.728Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T15:28:25.806Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T15:28:55.897Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T15:29:25.981Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T15:29:56.076Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T15:30:26.164Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T15:30:56.240Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T15:31:26.332Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T15:31:56.431Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T15:32:26.526Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T15:32:56.606Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T15:33:26.691Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T15:33:56.784Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T15:34:26.886Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T15:34:56.968Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T15:35:27.058Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T15:35:57.148Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T15:36:27.237Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T16:18:18.544Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T16:40:47.342Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T17:24:21.666Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T17:55:05.574Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T18:38:31.879Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T19:39:27.746Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T20:40:29.950Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T21:57:43.101Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T22:36:22.866Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T23:01:33.857Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-10T23:42:23.102Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T00:00:47.259Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T00:16:10.301Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T01:00:25.785Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T01:01:24.177Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T01:01:54.269Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T01:02:24.361Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T01:02:54.434Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T01:03:24.534Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T01:03:54.629Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T01:04:24.717Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T01:04:54.811Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T01:05:24.903Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T01:05:54.967Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T01:06:25.046Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T01:06:55.141Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T01:07:25.234Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T01:07:55.324Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T01:08:25.399Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T01:08:55.486Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T01:09:25.577Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T01:09:55.671Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T01:10:25.767Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T01:10:55.860Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T01:11:25.959Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T01:11:56.041Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T01:12:26.131Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T01:12:56.236Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T01:13:26.329Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T01:13:56.425Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T01:14:26.524Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T01:14:56.616Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T01:15:26.713Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T01:15:56.814Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T01:16:26.907Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T01:16:57.003Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T01:17:27.100Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T01:17:57.188Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T01:18:27.281Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T01:18:57.372Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T01:19:27.461Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T01:19:57.549Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T01:20:27.640Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T01:20:57.732Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T01:21:27.832Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T01:21:57.931Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T01:22:28.031Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T01:22:58.122Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T01:23:28.221Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T01:23:58.322Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T01:24:28.427Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T01:24:58.522Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T01:25:28.624Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T01:25:58.708Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T01:26:28.798Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T01:26:58.898Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T01:27:28.987Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T01:27:59.079Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T01:28:29.180Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T01:28:59.277Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T01:29:29.379Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T01:29:59.482Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T01:30:29.580Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T01:30:59.678Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T01:31:29.785Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T01:31:59.883Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T01:32:29.991Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T01:33:00.098Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T01:33:30.203Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T01:34:00.287Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T01:34:30.384Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T01:35:00.466Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T01:35:30.552Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T01:36:00.654Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T01:36:30.765Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T01:37:00.865Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T01:37:30.967Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T01:38:01.051Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T01:38:31.138Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T01:39:01.225Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T01:39:31.316Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T01:40:01.412Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T01:40:31.517Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T01:41:01.623Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T01:41:31.724Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T01:42:01.816Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T01:42:31.929Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T01:43:02.038Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T01:43:32.137Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T01:44:02.232Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T01:44:32.324Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T01:45:02.413Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T01:45:32.510Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T01:46:02.600Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T01:46:32.688Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T01:47:02.780Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T01:47:32.866Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T01:48:02.951Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T01:48:33.036Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T01:49:03.128Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T01:49:33.217Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T01:50:03.313Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T01:50:33.398Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T01:51:03.494Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T01:51:33.595Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T01:52:03.684Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T01:52:33.770Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T01:53:03.862Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T01:53:33.943Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T01:54:04.046Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T01:54:34.130Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T01:55:04.214Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T01:55:34.302Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T01:56:04.389Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T01:56:34.475Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T01:57:04.563Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T01:57:34.663Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T01:58:04.764Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T01:58:34.871Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T01:59:04.968Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T01:59:35.060Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T02:00:05.165Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T02:00:35.265Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T02:01:05.344Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T02:01:35.425Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T02:02:05.522Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T02:02:35.625Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T02:03:05.725Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T02:03:35.812Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T02:04:05.903Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T02:04:35.995Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T02:05:06.090Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T02:05:36.182Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T02:06:06.245Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T02:06:36.331Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T02:07:06.432Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T02:07:36.521Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T02:08:06.601Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T02:08:36.693Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T02:09:06.785Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T02:09:36.876Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T02:10:06.966Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T02:10:37.064Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T02:11:07.155Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T02:11:37.248Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T02:12:07.344Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T02:12:37.431Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T02:13:07.520Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T02:13:37.616Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T02:14:07.718Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T02:14:37.823Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T02:15:07.904Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T02:15:37.990Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T02:16:08.082Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T02:16:38.170Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T02:17:08.256Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T02:17:38.345Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T02:18:08.447Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T02:18:38.537Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T02:19:08.627Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T02:19:38.717Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T02:20:08.798Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T02:20:38.890Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T02:21:08.987Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T02:21:39.069Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T02:22:09.158Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T02:22:39.255Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T02:23:09.345Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T02:23:39.437Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T02:24:09.526Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T02:24:39.623Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T02:25:09.725Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T02:25:39.807Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T02:26:09.888Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T02:26:39.984Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T02:27:10.069Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T02:27:40.162Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T02:28:10.259Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T02:28:40.351Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T02:29:10.434Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T02:29:40.540Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T02:30:10.627Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T02:30:40.715Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T02:31:10.824Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T02:31:40.917Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T02:32:11.006Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T02:32:41.086Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T02:33:11.165Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T02:33:41.251Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T02:34:11.346Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T02:34:41.439Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T02:35:11.521Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T02:35:41.607Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T02:36:11.700Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T02:36:41.798Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T02:37:11.898Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T02:37:41.987Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T02:38:12.080Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T02:38:42.169Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T02:39:12.260Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T02:39:42.343Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T02:40:12.443Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T02:40:42.546Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T02:41:12.637Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T02:41:42.736Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T02:42:12.827Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T02:42:42.915Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T02:43:13.020Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T02:43:43.121Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T02:44:13.211Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T02:44:43.295Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T02:45:13.390Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T02:45:43.480Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T02:46:13.556Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T02:46:43.640Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T02:47:13.745Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T02:47:43.841Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T02:48:13.932Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T02:48:44.037Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T02:49:14.130Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T02:49:44.218Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T02:50:14.314Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T02:50:44.405Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T02:51:14.498Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T02:51:44.589Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T02:52:14.676Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T02:52:44.769Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T02:53:14.861Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T02:53:44.940Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T02:54:15.019Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T02:54:45.112Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T02:55:15.196Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T02:55:45.290Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T02:56:15.381Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T02:56:45.476Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T02:57:15.567Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T02:57:45.662Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T02:58:15.756Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T02:58:45.856Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T02:59:15.952Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T02:59:46.038Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T03:00:16.130Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T03:00:46.218Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T03:01:16.309Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T03:01:46.396Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T03:02:16.486Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T03:02:46.582Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T03:03:16.678Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T03:03:46.761Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T03:04:16.859Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T03:04:46.950Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T03:05:17.041Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T03:05:47.138Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T03:06:17.230Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T03:06:47.317Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T03:07:17.405Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T03:07:47.498Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T03:08:17.591Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T03:08:47.683Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T03:09:17.770Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T03:09:47.854Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T03:10:17.944Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T03:10:48.033Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T03:11:18.120Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T03:11:48.210Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T03:12:18.302Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T03:12:48.396Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T03:13:18.492Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T03:13:48.582Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T03:14:18.657Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T03:14:48.749Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T03:15:18.842Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T03:15:48.938Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T03:16:19.025Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T03:16:49.113Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T03:17:19.212Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T03:17:49.305Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T03:18:19.393Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T03:18:49.491Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T03:19:19.578Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T03:19:49.663Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T03:20:19.769Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T03:20:49.855Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T03:21:19.955Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T03:21:50.047Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T03:22:20.135Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T03:22:50.218Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T03:23:20.313Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T03:23:50.402Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T03:24:20.485Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T03:24:50.587Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T03:25:20.672Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T03:25:50.756Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T03:26:20.838Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T03:26:50.927Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T03:27:21.020Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T03:27:51.103Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T03:28:21.192Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T03:28:51.279Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T03:29:21.369Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T03:29:51.461Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T03:30:21.549Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T03:30:51.643Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T03:31:21.739Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T03:31:51.826Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T03:32:21.910Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T03:32:52.008Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T03:33:22.085Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T03:33:52.189Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T03:34:22.286Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T03:34:52.371Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T03:35:22.463Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T03:35:52.552Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T03:36:22.644Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T03:36:52.738Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T03:37:22.828Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T03:37:52.916Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T03:38:23.010Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T03:38:53.106Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T03:39:23.199Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T03:39:53.288Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T03:40:23.381Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T03:40:53.465Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T03:41:23.562Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T03:41:53.652Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T03:42:23.740Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T03:42:53.832Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T03:43:23.924Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T03:43:54.014Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T03:44:24.113Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T03:44:54.198Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T03:45:24.300Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T03:45:54.397Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T03:46:24.505Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T03:46:54.601Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T03:47:24.685Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T03:47:54.778Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T03:48:24.861Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T03:48:54.954Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T03:49:25.045Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T03:49:55.142Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T03:50:25.227Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T03:50:55.314Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T03:51:25.406Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T03:51:55.490Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T03:52:25.581Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T03:52:55.673Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T03:53:25.768Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T03:53:55.851Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T03:54:26.040Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T03:54:56.137Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T03:55:26.240Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T03:55:56.320Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T03:56:26.412Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T03:56:56.505Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T03:57:26.600Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T03:57:56.693Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T03:58:26.786Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T03:58:56.886Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T03:59:26.973Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T03:59:57.059Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T04:00:27.155Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T04:00:57.250Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T04:01:27.342Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T04:01:57.431Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T04:02:27.517Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T04:02:57.593Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T04:03:27.689Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T04:03:57.784Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T04:04:27.878Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T04:04:57.974Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T04:05:28.064Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T04:05:58.157Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T04:06:28.254Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T04:06:58.339Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T04:07:28.417Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T04:07:58.514Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T04:08:28.605Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T04:08:58.697Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T04:09:28.788Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T04:09:58.883Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T04:10:28.978Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T04:10:59.074Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T04:11:29.163Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T04:11:59.250Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T04:12:29.341Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T04:12:59.443Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T04:13:29.546Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T04:13:59.637Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T04:14:29.742Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T04:14:59.829Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T04:15:29.925Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T04:16:00.015Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T04:16:30.112Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T04:17:00.204Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T04:17:30.299Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T04:18:00.398Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T04:18:30.487Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T04:19:00.585Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T04:19:30.678Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T04:20:00.774Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T04:20:30.866Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T04:21:00.965Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T04:21:31.051Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T04:22:01.141Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T04:22:31.247Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T04:23:01.330Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T04:23:31.430Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T04:24:01.521Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T04:24:31.613Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T04:25:01.704Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T04:25:31.788Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T04:26:01.878Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T04:26:31.979Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T04:27:02.074Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T04:27:32.175Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T04:28:02.278Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T04:28:32.378Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T04:29:02.472Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T04:29:32.557Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T04:30:02.649Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T04:30:32.744Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T04:31:02.830Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T04:31:32.929Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T04:32:03.022Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T04:32:33.115Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T04:33:03.216Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T04:33:33.308Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T04:34:03.392Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T04:34:33.477Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T04:35:03.568Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T04:35:33.658Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T04:36:03.750Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T04:36:33.835Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T04:37:03.924Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T04:37:34.014Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T04:38:04.107Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T04:38:34.194Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T04:39:04.280Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T04:39:34.364Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T04:40:04.446Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T04:40:34.528Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T04:41:04.613Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T04:41:34.716Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T04:42:04.801Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T04:42:34.885Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T04:43:04.974Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T04:43:35.070Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T04:44:05.153Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T04:44:35.248Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T04:45:05.347Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T04:45:35.424Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T04:46:05.520Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T04:46:35.610Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T04:47:05.709Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T04:47:35.795Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T04:48:05.879Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T04:48:35.965Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T04:49:06.048Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T04:49:36.139Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T04:50:06.226Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T04:50:36.311Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T04:51:06.398Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T04:51:36.485Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T04:52:06.584Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T04:52:36.667Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T04:53:06.757Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T04:53:36.853Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T04:54:06.947Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T04:54:37.037Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T04:55:07.094Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T04:55:37.186Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T04:56:07.249Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T04:56:37.327Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T04:57:07.413Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T04:57:37.504Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T04:58:07.594Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T04:58:37.689Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T04:59:07.789Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T04:59:37.884Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T05:00:07.974Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T05:00:38.078Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T05:01:08.168Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T05:01:38.252Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T05:02:08.339Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T05:02:38.428Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T05:03:08.516Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T05:03:38.604Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T05:04:08.698Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T05:04:38.803Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T05:05:08.886Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T05:05:38.973Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T05:06:09.043Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T05:06:39.135Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T05:07:09.222Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T05:07:39.314Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T05:08:09.405Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T05:08:39.508Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T05:09:09.605Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T05:09:39.694Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T05:10:09.774Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T05:10:39.851Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T05:11:09.934Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T05:11:40.027Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T05:12:10.112Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T05:12:40.196Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T05:13:10.280Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T05:13:40.355Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T05:14:10.441Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T05:14:40.530Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T05:15:10.608Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T05:15:40.701Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T05:16:10.788Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T05:16:40.898Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T05:17:10.991Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T05:17:41.087Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T05:18:11.188Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T05:18:41.279Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T05:19:11.372Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T05:19:41.463Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T05:20:11.564Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T05:20:41.652Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T05:21:11.740Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T05:21:41.847Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T05:22:11.945Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T05:22:42.043Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T05:23:12.142Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T05:23:42.227Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T05:24:12.317Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T05:24:42.412Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T05:25:12.490Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T05:25:42.568Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T05:26:12.667Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T05:26:42.777Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T05:27:12.869Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T05:27:42.954Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T05:28:13.043Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T05:28:43.172Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T05:29:13.255Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T05:29:43.335Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T05:30:13.438Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T05:30:43.535Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T05:31:13.627Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T05:31:43.719Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T05:32:13.812Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T05:32:43.908Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T05:33:13.990Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T05:33:44.101Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T05:34:14.192Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T05:34:44.289Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T05:35:14.380Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T05:35:44.467Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T05:36:14.560Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T05:36:44.654Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T05:37:14.750Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T05:37:44.838Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T05:38:14.909Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T05:38:44.995Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T05:39:15.089Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T05:39:45.186Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T05:40:15.280Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T05:40:45.373Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T05:41:15.465Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T05:41:45.553Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T05:42:15.641Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T05:42:45.730Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T05:43:15.835Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T05:43:45.925Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T05:44:16.005Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T05:44:46.091Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T05:45:16.176Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T05:45:46.260Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T05:46:16.352Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T05:46:46.443Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T05:47:16.529Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T05:47:46.622Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T05:48:16.708Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T05:48:46.795Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T05:49:16.879Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T05:49:46.962Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T05:50:17.051Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T05:50:47.141Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T05:51:17.229Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T05:51:47.318Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T05:52:17.409Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T05:52:47.500Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T05:53:17.590Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T05:53:47.667Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T05:54:17.764Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T05:54:47.837Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T05:55:17.946Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T05:55:48.029Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T05:56:18.107Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T05:56:48.199Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T05:57:18.290Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T05:57:48.381Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T05:58:18.474Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T05:58:48.555Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T05:59:18.641Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T05:59:48.705Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T06:00:18.795Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T06:00:48.862Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T06:01:18.956Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T06:01:49.018Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T06:02:19.110Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T06:02:49.171Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T06:03:19.264Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T06:03:49.366Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T06:04:19.504Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T06:04:49.593Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T06:05:19.679Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T06:05:49.763Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T06:06:19.856Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T06:06:49.952Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T06:07:20.045Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T06:07:50.130Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T06:08:20.223Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T06:08:50.318Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T06:09:20.412Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T06:09:50.504Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T06:10:20.616Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T06:10:50.711Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T06:11:20.801Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T06:11:50.899Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T06:12:20.993Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T06:12:51.077Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T06:13:21.165Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T06:13:51.264Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T06:14:21.358Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T06:14:51.444Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T06:15:21.534Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T06:15:51.626Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T06:16:21.719Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T06:16:51.803Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T06:17:21.903Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T06:17:51.999Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T06:18:22.092Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T06:18:52.186Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T06:19:22.275Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T06:19:52.361Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T06:20:22.463Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T06:20:52.555Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T06:21:22.650Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T06:21:52.753Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T06:22:22.838Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T06:22:52.936Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T06:23:23.023Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T06:23:53.110Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T06:24:23.204Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T06:24:53.289Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T06:25:23.379Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T06:25:53.475Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T06:26:23.556Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T06:26:53.652Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T06:27:23.762Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T06:27:53.855Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T06:28:23.949Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T06:28:54.035Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T06:29:24.125Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T06:29:54.208Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T06:30:24.299Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T06:30:54.386Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T06:31:24.483Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T06:31:54.787Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T06:32:30.895Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T06:33:00.985Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T06:34:00.912Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T06:34:31.001Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T06:37:25.905Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T06:39:36.196Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T06:40:06.272Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T06:40:40.542Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T06:41:10.629Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T06:42:39.266Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T06:43:09.359Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T06:44:19.629Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T06:46:13.425Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T06:46:43.543Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T06:59:16.345Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T06:59:46.437Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T07:00:16.533Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T07:00:46.618Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T07:01:16.707Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T07:01:46.790Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T07:02:16.880Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T07:02:46.973Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T07:03:17.067Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T07:03:47.155Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T07:04:17.255Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T07:04:47.350Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T07:05:17.442Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T07:05:47.533Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T07:06:17.625Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T07:06:47.711Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T07:07:17.810Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T07:07:47.902Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T07:08:17.998Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T07:08:48.093Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T07:09:18.184Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T07:09:48.275Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T07:10:18.370Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T07:10:48.455Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T07:11:18.549Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T07:11:48.647Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T07:12:18.732Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T07:12:48.821Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T07:13:18.905Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T07:13:48.996Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T07:14:19.096Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T07:14:49.183Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T07:15:19.272Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T07:15:49.362Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T07:16:19.440Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T07:16:49.538Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T07:17:19.633Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T07:17:49.717Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T07:18:19.810Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T07:18:49.903Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T07:19:19.995Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T07:19:50.068Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T07:20:20.177Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T07:20:50.263Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T07:21:20.359Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T07:21:50.453Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T07:22:20.550Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T07:22:50.665Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T07:23:20.740Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T07:38:42.772Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T07:39:12.848Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T07:39:42.942Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T07:40:13.019Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T07:40:43.105Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T07:41:13.195Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T07:41:43.290Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T07:42:13.377Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T07:42:43.468Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T07:43:13.557Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T07:43:43.638Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T07:44:13.738Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T07:44:43.810Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T07:45:13.894Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T07:45:43.982Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T07:46:14.067Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T07:46:44.151Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T07:47:14.235Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T07:47:44.315Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T07:48:14.395Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T07:48:44.494Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T07:49:17.924Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T07:49:48.023Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T07:50:20.059Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T07:50:50.159Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T07:51:30.338Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T07:52:03.365Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T07:52:33.452Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T07:56:37.988Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T07:57:08.075Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T07:57:38.186Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T07:58:08.276Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T07:58:38.382Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T07:59:13.821Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T07:59:43.907Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T08:00:16.907Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T08:00:46.989Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T08:01:36.804Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T08:02:06.952Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T08:02:37.049Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T08:03:10.976Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T08:03:41.068Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T08:05:23.173Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T08:05:53.263Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T08:12:45.217Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T08:28:12.846Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T08:28:42.943Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T08:31:19.076Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T08:31:49.166Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T08:47:12.510Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T09:02:39.483Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T09:03:09.558Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T09:03:39.664Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T09:12:38.693Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T09:13:08.786Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T09:13:38.875Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T09:14:08.965Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T09:14:39.053Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T09:15:09.147Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T09:15:39.243Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T09:16:09.324Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T09:16:39.409Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T09:17:09.495Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T09:17:39.583Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T09:18:09.664Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T09:18:39.751Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T09:19:09.850Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T09:19:39.943Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T09:20:10.025Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T09:20:40.117Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T09:21:10.208Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T09:21:40.302Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T09:22:10.395Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T09:22:40.481Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T09:23:10.531Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T09:23:40.595Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T09:24:10.660Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T09:24:40.722Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T09:25:10.778Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T09:25:40.834Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T09:26:10.904Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T09:26:40.960Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T09:27:11.016Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T09:27:41.071Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T09:28:11.123Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T09:28:41.184Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T09:29:11.233Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T09:29:41.300Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T09:30:11.360Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T09:30:41.430Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T09:31:11.485Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T09:31:41.537Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T09:32:11.590Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T09:32:41.657Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T09:33:11.712Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T09:33:41.766Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T09:34:11.825Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T09:34:41.885Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T09:35:11.943Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T09:35:42.047Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T09:36:12.119Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T09:36:42.178Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T09:37:12.250Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T09:37:42.320Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T09:38:12.386Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T09:38:42.460Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T09:39:12.532Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T09:39:42.613Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T09:40:12.690Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T09:40:42.764Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T09:41:12.843Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T09:41:42.926Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T09:42:13.016Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T09:42:43.111Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T09:43:13.196Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T09:43:43.278Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T09:44:13.364Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T09:44:43.444Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T09:45:13.534Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T09:45:43.633Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T09:46:13.734Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T09:46:43.829Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T09:47:13.924Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T09:47:44.011Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T09:48:14.102Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T09:48:44.197Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T09:49:14.282Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T09:49:44.371Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T09:50:14.456Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T09:50:44.534Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T09:51:14.622Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T09:51:44.724Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T09:52:14.808Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T09:52:44.895Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T09:53:14.989Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T09:53:45.070Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T09:54:15.152Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T09:54:45.249Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T09:55:15.343Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T09:55:45.442Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T09:56:15.537Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T09:56:45.635Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T09:57:15.733Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T09:57:45.826Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T09:58:15.912Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T09:58:46.001Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T09:59:16.102Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T09:59:46.181Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T10:00:16.266Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T10:00:46.350Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T10:01:16.457Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T10:01:46.545Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T10:02:16.644Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T10:02:46.734Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T10:03:16.837Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T10:03:46.927Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T10:04:17.019Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T10:04:47.123Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T10:05:17.214Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T10:05:47.304Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T10:06:17.393Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T10:06:47.470Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T10:07:17.554Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T10:07:47.645Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T10:08:17.730Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T10:08:47.829Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T10:09:17.918Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T10:09:48.008Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T10:10:18.088Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T10:10:48.178Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T10:11:18.270Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T10:11:48.371Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T10:12:18.459Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T10:12:48.549Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T10:13:18.644Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T10:13:48.736Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T10:14:18.836Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T10:14:48.897Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T10:15:18.979Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T10:15:49.047Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T10:16:19.132Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T10:16:49.226Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T10:17:19.314Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T10:17:49.409Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T10:18:19.501Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T10:18:49.595Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T10:19:19.685Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T10:19:49.768Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T10:26:18.678Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T10:26:48.774Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T10:27:23.465Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T10:27:53.566Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T10:43:16.512Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T10:43:46.595Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T10:44:16.676Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T10:44:46.777Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T10:45:16.860Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T10:45:46.939Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T10:46:17.026Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T10:46:47.110Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T10:47:17.195Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T10:47:47.281Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T10:48:17.356Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T10:48:47.440Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T10:49:17.536Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T10:49:47.622Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T10:50:17.708Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T10:50:47.798Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T11:06:15.487Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T11:06:45.575Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T11:07:15.667Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T11:23:50.248Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T11:26:39.804Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T11:27:09.895Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T11:34:02.212Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T11:34:32.306Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T11:35:13.443Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T11:35:43.528Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T11:44:16.839Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T11:45:17.831Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T11:45:47.931Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T11:46:21.340Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T11:46:51.430Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T11:57:49.556Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T11:58:19.627Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T12:03:25.869Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T12:03:55.957Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T12:16:18.473Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T12:32:37.548Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T12:33:07.635Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T12:49:45.500Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T12:50:15.894Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T13:02:50.029Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T13:03:20.101Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T13:03:50.186Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T13:04:20.269Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T13:04:50.361Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T13:05:20.459Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T13:05:50.544Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T13:06:20.627Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T13:06:50.717Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T13:07:20.805Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T13:07:50.895Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T13:08:20.984Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T13:08:51.070Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T13:09:21.152Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T13:09:51.245Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T13:10:21.339Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T13:10:51.440Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T13:11:21.538Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T13:11:51.622Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T13:12:21.708Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T13:12:51.809Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T13:13:21.905Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T13:13:51.999Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T13:14:22.089Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T13:14:52.179Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T13:15:22.259Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T13:15:52.345Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T13:16:22.431Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T13:16:52.522Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T13:17:22.606Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T13:17:52.692Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T13:18:22.781Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T13:18:52.851Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T13:19:22.940Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T13:19:53.030Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T13:20:23.117Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T13:20:53.200Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T13:21:23.288Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T13:21:53.368Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T13:22:23.456Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T13:22:53.542Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T13:23:23.615Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T13:23:53.702Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T13:24:23.790Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T13:24:53.879Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T13:25:23.969Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T13:25:54.062Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T13:26:24.150Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T13:26:54.238Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T13:27:24.326Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T13:27:54.410Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T13:28:24.495Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T13:28:54.577Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T13:29:24.671Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T13:29:54.761Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T13:30:24.850Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T13:30:54.961Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T13:31:25.041Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T13:31:55.142Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T13:32:25.222Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T13:32:55.317Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T13:33:25.402Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T13:33:55.492Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T13:34:25.581Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T13:34:55.678Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T13:35:25.771Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T13:35:55.858Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T13:36:25.942Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T13:36:56.042Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T13:37:26.139Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T13:37:56.232Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T13:38:26.317Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T13:38:56.423Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T13:39:26.509Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T13:39:56.609Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T13:40:26.697Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T13:40:56.791Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T13:41:26.886Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T13:41:56.979Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T13:42:27.076Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T13:42:57.167Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T13:43:27.264Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T13:43:57.355Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T13:44:27.443Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T13:44:57.540Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T13:45:27.640Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T13:45:57.736Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T13:46:27.819Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T13:46:57.913Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T13:47:28.006Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T13:47:58.108Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T13:48:28.203Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T13:48:58.305Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T13:49:28.394Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T13:49:58.492Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T13:50:28.573Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T13:50:58.672Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T13:51:28.750Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T13:51:58.837Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T13:52:28.924Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T13:52:59.011Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T13:53:29.105Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T13:53:59.197Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T13:54:29.285Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T13:54:59.368Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T13:55:29.473Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T13:55:59.569Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T13:56:29.653Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T13:56:59.748Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T13:57:29.834Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T13:57:59.934Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T13:58:30.027Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T13:59:00.121Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T13:59:30.199Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T14:00:00.305Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T14:00:30.397Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T14:01:00.492Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T14:01:30.590Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T14:02:00.680Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T14:02:30.761Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T14:03:00.852Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T14:03:30.942Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T14:04:01.040Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T14:04:31.130Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T14:05:01.244Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T14:05:31.342Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T14:06:01.439Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T14:06:31.530Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T14:07:01.613Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T14:07:31.700Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T14:08:01.795Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T14:08:31.883Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T14:09:01.972Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T14:09:32.078Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T14:10:02.176Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T14:10:32.268Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T14:11:02.365Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T14:11:32.449Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T14:12:02.544Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T14:12:32.637Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T14:13:02.736Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T14:13:32.825Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T14:14:02.924Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T14:14:33.008Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T14:15:03.101Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T14:15:33.198Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T14:16:03.292Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T14:16:33.374Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T14:17:03.455Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T14:17:33.541Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T14:18:03.638Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T14:18:33.722Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T14:19:03.818Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T14:19:33.917Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T14:20:04.021Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T14:20:34.088Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T14:21:04.177Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T14:21:34.278Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T14:22:04.387Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T14:22:34.480Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T14:23:04.564Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T14:23:34.660Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T14:24:04.745Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T14:24:34.837Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T14:25:04.927Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T14:25:35.007Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T14:26:05.107Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T14:26:35.198Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T14:27:05.290Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T14:27:35.384Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T14:28:05.492Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T14:28:35.583Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T14:29:05.667Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T14:29:35.766Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T14:30:05.853Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T14:30:35.936Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T14:31:06.056Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T14:31:36.171Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T14:32:06.263Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T14:32:36.357Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T14:33:06.437Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T14:33:36.527Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T14:34:06.622Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T15:22:31.098Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T16:18:44.256Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T17:25:59.193Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T17:44:47.253Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T18:03:58.955Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T18:26:51.446Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T18:45:31.632Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T19:37:37.742Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T20:38:38.604Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T20:57:04.642Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T21:19:18.067Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T21:29:50.623Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T21:31:24.697Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T21:31:54.757Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T21:32:24.823Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T21:32:54.893Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T21:33:24.958Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T21:33:55.048Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T21:34:25.156Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T21:34:55.237Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T21:35:25.308Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T21:44:12.131Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T21:57:11.976Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T21:57:42.066Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T21:58:12.145Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T21:58:42.245Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T21:59:12.342Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T21:59:42.431Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T22:00:12.524Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T22:00:42.608Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T22:01:12.691Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T22:01:42.776Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T22:02:12.884Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T22:02:42.977Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T22:03:13.068Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T22:03:43.157Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T22:04:13.249Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T22:04:43.332Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T22:05:13.416Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T22:05:43.499Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T22:06:13.591Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T22:06:43.685Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T22:07:13.785Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T22:07:43.881Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T22:08:13.972Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T22:08:44.060Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T22:09:14.141Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T22:09:44.244Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T22:10:14.325Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T22:10:44.422Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T22:11:14.507Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T22:11:44.600Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T22:12:14.684Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T22:12:44.771Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T22:13:14.856Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T22:13:44.955Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T22:14:15.057Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T22:14:45.181Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T22:15:15.280Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T22:15:45.365Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T22:16:15.454Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T22:16:45.553Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T22:17:15.639Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T22:17:45.725Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T22:18:15.822Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T22:18:45.919Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T22:19:16.036Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T22:19:46.129Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T22:20:16.220Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T22:20:46.335Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T22:21:16.433Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T22:21:46.522Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T22:22:16.605Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T22:22:46.696Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T22:23:16.813Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T22:23:46.903Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T22:24:16.995Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T22:24:47.078Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T22:25:17.176Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T22:25:47.262Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T22:26:17.348Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T22:26:47.441Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T22:27:17.533Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T22:27:47.615Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T22:28:17.703Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T22:28:47.796Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T22:29:17.938Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T22:29:48.030Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T22:30:18.109Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T22:30:48.197Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T22:31:18.286Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T22:31:48.376Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T22:32:18.469Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T22:32:48.552Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T22:33:18.646Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T22:33:48.738Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T22:34:18.829Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T22:34:48.919Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T22:35:19.015Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T22:35:49.122Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T22:36:19.206Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T22:36:49.299Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T22:37:19.394Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T22:37:49.479Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T22:38:19.573Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T22:38:49.670Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T22:39:19.777Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T22:39:49.867Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T22:40:19.960Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T22:40:50.051Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T22:41:20.147Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T22:41:50.236Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T22:42:20.327Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T22:42:50.411Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T22:43:20.495Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T22:43:50.593Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T22:44:20.689Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T22:44:50.780Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T22:45:20.865Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T22:45:50.957Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T22:46:21.050Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T22:46:51.139Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T22:47:21.238Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T22:47:51.329Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T22:48:21.417Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T22:48:51.507Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T22:49:21.588Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T22:49:51.689Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T22:50:21.773Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T22:50:51.867Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T22:51:21.957Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T22:55:43.572Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T22:56:13.693Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T22:56:43.787Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T22:57:13.882Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T22:57:43.967Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T22:58:14.060Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T22:58:44.153Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T22:59:14.243Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T22:59:44.332Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T23:00:14.426Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T23:00:44.522Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T23:01:14.613Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T23:01:44.706Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T23:02:14.794Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T23:02:44.880Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T23:03:14.969Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T23:03:45.069Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T23:04:15.174Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T23:04:45.277Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T23:05:15.377Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T23:05:45.452Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T23:06:15.608Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T23:06:45.683Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T23:07:15.754Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T23:07:45.844Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T23:08:15.934Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T23:08:46.029Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T23:09:16.114Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T23:09:46.247Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T23:10:16.387Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T23:10:46.925Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "9ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T23:11:17.249Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T23:11:47.347Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T23:12:17.452Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T23:12:47.541Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T23:13:17.639Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T23:13:47.764Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T23:14:17.869Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T23:14:47.957Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T23:15:18.052Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T23:15:48.147Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T23:16:18.245Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T23:16:48.339Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T23:17:18.420Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T23:23:51.761Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T23:24:21.857Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T23:24:51.947Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T23:25:22.040Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T23:25:52.124Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T23:26:22.216Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T23:27:56.472Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T23:28:26.565Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T23:28:56.648Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T23:29:26.759Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T23:29:56.859Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T23:34:37.110Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T23:35:07.200Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T23:35:37.296Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T23:36:07.383Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T23:36:37.470Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T23:37:07.557Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T23:37:37.659Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T23:38:07.750Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T23:38:37.834Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T23:39:07.928Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T23:39:38.029Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T23:40:08.121Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T23:40:38.216Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T23:41:08.309Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T23:41:38.466Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T23:42:08.576Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T23:42:38.684Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T23:43:08.783Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T23:43:38.882Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T23:44:08.991Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T23:44:39.079Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T23:45:09.170Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T23:45:39.257Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T23:46:09.352Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T23:46:39.455Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T23:47:16.108Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T23:47:46.214Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T23:48:16.303Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T23:48:46.398Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T23:49:17.157Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T23:49:47.262Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T23:50:17.362Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T23:50:47.464Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T23:51:17.552Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T23:51:47.642Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T23:52:17.734Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T23:52:47.844Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T23:55:20.387Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T23:56:04.927Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T23:56:35.056Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T23:57:05.186Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T23:57:35.280Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T23:58:05.361Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T23:58:35.455Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T23:59:05.539Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-11T23:59:35.634Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T00:00:05.739Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T00:00:57.149Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T00:01:27.243Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T00:01:57.357Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T00:02:27.475Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T00:02:57.577Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T00:03:27.671Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T00:03:57.771Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T00:04:27.888Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T00:04:57.989Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T00:05:28.080Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T00:05:58.218Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T00:06:28.325Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T00:06:58.429Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T00:07:28.516Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T00:07:58.616Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T00:08:28.701Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T00:08:58.795Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T00:09:28.888Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T00:09:58.987Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T00:10:29.081Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T00:10:59.172Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T00:11:29.252Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T00:11:59.338Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T00:12:29.444Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T00:12:59.539Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T00:13:29.632Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T00:13:59.715Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T00:14:29.805Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T00:14:59.891Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T00:15:29.985Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T00:16:00.080Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T00:16:30.167Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T00:17:00.291Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T00:17:30.398Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T00:18:04.935Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T00:18:35.042Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T00:21:57.948Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T00:22:28.048Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T00:22:58.148Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T00:23:28.253Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T00:23:58.348Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T00:24:28.460Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T00:24:58.543Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T00:25:28.644Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T00:25:58.706Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T00:26:28.778Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T00:26:58.853Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T00:27:28.930Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T00:27:59.033Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T00:28:29.207Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T00:28:59.291Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T00:29:29.374Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T00:29:59.439Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T00:30:29.533Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T00:30:59.621Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T00:31:29.697Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T00:31:59.798Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T00:32:29.927Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T00:33:00.018Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T00:33:30.123Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T00:34:00.221Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T00:34:30.318Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T00:35:00.401Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T00:35:30.490Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T00:36:00.571Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T00:36:30.662Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T00:37:00.763Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T00:40:59.742Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T00:41:29.819Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T00:41:59.908Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T00:42:30.035Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T00:43:00.207Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T00:43:30.300Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T00:44:00.425Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T00:44:30.554Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T00:45:01.986Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "23ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T00:45:49.085Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T00:46:19.164Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T00:46:49.241Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T00:47:19.893Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "11ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T00:47:50.084Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T00:48:20.180Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T00:48:50.327Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T00:49:20.526Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "5ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T00:49:50.639Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T00:50:21.337Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T00:50:51.575Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T00:51:21.668Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T00:51:51.732Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T00:52:21.808Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T00:52:51.912Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T00:54:56.604Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "34ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T00:55:26.947Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T00:55:57.066Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T00:56:27.179Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T00:56:57.314Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "7ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T00:57:27.436Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T00:57:57.537Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T00:58:27.630Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T00:58:57.744Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T00:59:27.861Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T00:59:57.987Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T01:00:28.132Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "5ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T01:00:58.253Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T01:01:28.367Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T01:01:58.490Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "8ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T01:02:28.582Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T01:02:58.697Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T01:03:28.800Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T01:03:58.902Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T01:04:28.999Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T01:04:59.116Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T01:05:29.230Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T01:05:59.322Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T01:06:29.527Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T01:06:59.620Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T01:07:29.703Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T01:07:59.783Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T01:08:29.866Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T01:08:59.970Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T01:09:30.064Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T01:10:00.206Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T01:10:30.310Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T01:11:00.404Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T01:11:30.514Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T01:12:00.612Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T01:12:30.696Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T01:13:00.788Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T01:13:30.900Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T01:14:01.010Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T01:14:31.111Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T01:15:01.207Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T01:15:31.309Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T01:16:01.401Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T01:16:31.488Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T01:17:01.597Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T01:17:31.717Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T01:18:01.994Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T01:18:32.063Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T01:19:02.156Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T01:19:32.247Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T01:20:02.376Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "5ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T01:20:32.461Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T01:21:02.559Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T01:21:32.656Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T01:22:02.761Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T01:22:32.854Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T01:23:02.945Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T01:23:33.083Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T01:24:03.185Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T01:24:33.297Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T01:25:03.400Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T01:25:33.494Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T01:26:03.566Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T01:26:33.649Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T01:27:03.721Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T01:27:33.802Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T01:28:04.905Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "5ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T01:28:35.693Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "19ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T01:29:07.255Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T01:29:58.507Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "9ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T01:30:30.911Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "11ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T01:31:04.247Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "9ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T01:31:36.458Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "5ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T01:32:07.093Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T01:32:37.195Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T01:33:07.309Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T01:33:37.433Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T01:34:07.572Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T01:34:37.655Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T01:35:07.751Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T01:35:37.837Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T01:36:07.938Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T01:36:38.045Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T01:37:08.137Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T01:37:38.226Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "9ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T01:38:08.327Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T01:38:38.411Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T01:39:08.536Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T01:39:38.644Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T01:40:08.744Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T01:40:38.844Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T01:41:08.944Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T01:41:39.031Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T01:42:09.148Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T01:42:39.268Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T01:43:09.383Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T01:43:39.492Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T01:44:09.587Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T01:44:39.698Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T01:45:09.800Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T01:45:39.911Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T01:46:09.988Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T01:46:40.072Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T01:47:10.153Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T01:47:40.233Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T01:48:10.320Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T01:48:40.403Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T01:49:10.503Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T01:49:40.609Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T01:50:10.709Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T01:50:40.864Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T01:51:10.980Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T01:51:41.087Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T01:52:11.193Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T01:52:41.311Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T01:53:11.416Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T01:53:41.517Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T01:54:11.616Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T01:54:41.714Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T01:55:11.837Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T01:55:41.938Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T01:56:12.032Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T01:56:42.123Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T01:57:12.220Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T01:57:42.329Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T01:58:12.462Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T01:58:42.561Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "6ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T01:59:13.117Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T01:59:43.244Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T02:00:13.350Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T02:00:43.446Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T02:01:13.538Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T02:01:43.639Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T02:02:13.721Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T02:02:43.808Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T02:03:13.902Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T02:03:43.998Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T02:04:14.084Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T02:04:44.174Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T02:05:14.299Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T02:05:44.411Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T02:06:14.507Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T02:06:44.636Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T02:07:14.737Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T02:07:44.900Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T02:08:15.025Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T02:08:45.114Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T02:09:15.219Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T02:09:45.310Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T02:10:15.384Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T02:10:45.453Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T02:11:15.549Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T02:11:45.634Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T02:12:15.754Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T02:12:45.864Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T02:13:15.968Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T02:13:46.038Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T02:14:16.145Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T02:14:46.248Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T02:15:16.332Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T02:15:46.440Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T02:16:16.553Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T02:16:46.657Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T02:17:16.756Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T02:17:46.879Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T02:18:20.519Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T02:18:50.622Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T02:19:20.720Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T02:19:50.819Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "6ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T02:20:20.914Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T02:20:51.005Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T02:21:21.114Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T02:21:51.214Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T02:22:21.322Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T02:22:51.384Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T02:23:21.469Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T02:23:51.550Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T02:24:21.679Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T02:24:51.792Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T02:25:21.867Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T02:25:51.943Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T02:26:22.072Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T02:26:52.169Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T02:27:22.288Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T02:27:52.390Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T02:28:22.485Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T02:28:52.558Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T02:29:22.645Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T02:29:52.746Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T02:30:22.835Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T02:30:52.944Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T02:31:23.035Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T02:31:53.134Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T02:32:23.235Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "8ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T02:32:53.324Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T02:33:23.396Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T02:33:53.487Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T02:34:23.600Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T02:34:53.694Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T02:35:23.803Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T02:35:53.895Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T02:36:23.995Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T02:36:54.074Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T02:37:24.175Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T02:37:54.271Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T02:38:24.372Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T02:38:54.468Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T02:39:24.574Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T02:39:54.676Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T02:40:24.790Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T02:40:54.883Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T02:41:24.976Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T02:41:55.069Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T02:42:25.160Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T02:42:55.253Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T02:43:25.350Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T02:43:55.446Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T02:44:25.545Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T02:44:55.650Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T02:45:25.750Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T02:45:55.836Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T02:46:25.939Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T02:46:56.028Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T02:47:26.138Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T02:47:56.223Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T02:48:26.313Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T02:48:56.410Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T02:49:26.517Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T02:49:56.599Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T02:50:26.703Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T02:50:56.805Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T02:51:26.897Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T02:51:57.003Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T02:52:27.098Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T02:52:57.196Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T02:53:27.311Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T02:53:57.423Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "6ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T02:54:27.511Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T02:54:57.606Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T02:55:27.691Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T02:55:57.781Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T02:56:27.893Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T02:56:57.980Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T02:57:28.071Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T02:57:58.161Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T02:58:28.260Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T02:58:58.355Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T02:59:28.447Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T02:59:58.544Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T03:00:28.643Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T03:00:58.742Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T03:01:28.837Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T03:01:58.940Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T03:02:29.046Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T03:02:59.121Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T03:03:29.216Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T03:03:59.309Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T03:04:29.428Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T03:04:59.530Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T03:05:29.647Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T03:05:59.737Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T03:06:29.846Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T03:06:59.945Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T03:07:30.036Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T03:08:00.129Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T03:08:30.221Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T03:09:00.312Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T03:09:30.415Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T03:10:00.504Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T03:10:30.595Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T03:11:00.726Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T03:11:30.814Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T03:12:00.920Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T03:12:31.035Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T03:13:01.124Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T03:13:31.229Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T03:14:01.325Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T03:14:31.440Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T03:15:01.533Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T03:15:31.641Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T03:16:01.734Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T03:16:31.856Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T03:17:01.964Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T03:17:32.062Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T03:18:02.163Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T03:18:32.264Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T03:19:02.371Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T03:19:32.482Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T03:20:02.584Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T03:20:32.677Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T03:21:02.756Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T03:21:32.815Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T03:22:02.888Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T03:22:32.976Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T03:23:03.068Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T03:23:33.166Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T03:24:03.269Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T03:24:33.412Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "7ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T03:25:03.512Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T03:25:33.609Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T03:26:03.707Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T03:26:33.830Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T03:27:03.923Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T03:27:34.020Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T03:28:04.108Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T03:28:34.165Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T03:29:04.279Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T03:29:34.353Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T03:30:04.453Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T03:30:34.546Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T03:31:04.640Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T03:31:34.738Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T03:32:04.830Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T03:32:34.936Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T03:33:05.030Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T03:33:35.147Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T03:34:05.234Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T03:34:35.323Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T03:35:05.416Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T03:35:35.513Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T03:36:05.612Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T03:36:35.689Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T03:37:05.766Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T03:37:35.851Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T03:38:05.977Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T03:38:36.076Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T03:39:06.174Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T03:39:36.282Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T03:40:06.381Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T03:40:36.474Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T03:41:06.576Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T03:41:36.659Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T03:42:06.744Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T03:42:36.833Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T03:43:06.932Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T03:43:37.027Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T03:44:07.120Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T03:44:37.218Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T03:45:07.316Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T03:45:37.412Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T03:46:07.524Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T03:46:37.623Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T03:47:07.717Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T03:47:37.824Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T03:48:07.913Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T03:48:38.013Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T03:49:08.114Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T03:49:38.263Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T03:50:08.426Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T03:50:38.527Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T03:51:08.638Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T03:51:38.728Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T03:52:08.832Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T03:52:38.912Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T03:53:09.006Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T03:53:39.063Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T03:54:09.157Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T03:54:39.215Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T03:55:09.314Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T03:55:39.393Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T03:56:09.496Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T03:56:39.580Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T03:57:09.666Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T03:57:39.761Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T03:58:09.870Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T03:58:39.971Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T03:59:10.072Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T03:59:40.170Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T04:00:10.263Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T04:00:40.357Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T04:01:10.442Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T04:01:40.513Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T04:02:10.614Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T04:02:40.707Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T04:03:10.800Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T04:03:40.894Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T04:04:11.001Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T04:04:41.090Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T04:05:11.198Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T04:05:41.305Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T04:06:11.392Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T04:06:41.490Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T04:07:11.582Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T04:07:41.679Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T04:08:11.763Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T04:08:41.871Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T04:09:11.964Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T04:09:42.048Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T04:10:12.168Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T04:10:42.275Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T04:11:12.376Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T04:11:42.484Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T04:12:12.630Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T04:12:42.718Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T04:13:12.825Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T04:13:42.926Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T04:14:13.030Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T04:14:43.139Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T04:15:13.244Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T04:15:43.369Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T04:16:13.460Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T04:16:43.568Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T04:17:13.652Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T04:17:43.759Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T04:18:13.842Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T04:18:43.950Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T04:19:14.015Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T04:19:44.087Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T04:20:14.241Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T04:20:44.434Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T04:21:14.550Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T04:21:44.648Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T04:22:14.742Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T04:22:44.845Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T04:23:14.941Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T04:23:45.031Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T04:24:15.120Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T04:24:45.203Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T04:25:15.306Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T04:25:45.399Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T04:26:15.495Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T04:26:45.593Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T04:27:15.705Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T04:27:45.828Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T04:28:15.913Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T04:28:46.018Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T04:29:16.113Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T04:29:46.213Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T04:30:16.303Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T04:30:46.393Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T04:31:16.484Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T04:31:46.560Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T04:32:16.681Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T04:32:46.784Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T04:33:16.880Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T04:33:46.974Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T04:34:17.063Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T04:34:47.153Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T04:35:17.248Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T04:35:47.341Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T04:36:17.439Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T04:36:47.534Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T04:37:17.626Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T04:37:47.718Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T04:38:17.822Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T04:38:47.914Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T04:39:18.023Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T04:39:48.116Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T04:40:18.220Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T04:40:48.305Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T04:41:18.648Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "5ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T04:41:48.756Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T04:42:18.839Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T04:42:48.947Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T04:43:19.231Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T04:43:49.395Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T04:44:19.500Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T04:44:49.622Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T04:45:19.720Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T04:45:49.800Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T04:46:19.898Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T04:46:49.990Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T04:47:20.091Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T04:47:50.175Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T04:48:20.258Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T04:48:50.351Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T04:49:20.450Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T04:49:50.542Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T04:50:20.636Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T04:50:50.738Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T04:51:20.826Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T04:51:50.926Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T04:52:21.019Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T04:52:51.121Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T04:53:21.217Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T04:53:51.315Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T04:54:21.407Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T04:54:51.505Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T04:55:21.599Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T04:55:51.687Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T04:56:21.788Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T04:56:51.881Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T04:57:21.969Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T04:57:52.064Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T04:58:22.157Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T04:58:52.254Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T04:59:22.364Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T04:59:52.445Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T05:00:22.532Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T05:00:52.625Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T05:01:22.711Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T05:01:52.814Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T05:02:22.900Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T05:02:52.993Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T05:03:23.081Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T05:03:53.170Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T05:04:23.266Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T05:04:53.345Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T05:05:23.438Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T05:05:53.532Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T05:06:23.625Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T05:06:53.738Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T05:07:23.828Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T05:07:53.930Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T05:08:24.013Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T05:08:54.092Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T05:09:24.190Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T05:09:54.283Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T05:10:24.381Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T05:10:54.470Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T05:11:24.557Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T05:11:54.629Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T05:12:24.746Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T05:12:54.848Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T05:13:24.955Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T05:13:55.052Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T05:14:25.146Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T05:14:55.236Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T05:15:25.395Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T05:15:55.494Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T05:16:25.615Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T05:16:55.842Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "5ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T05:17:25.931Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T05:17:56.003Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T05:18:26.088Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T05:18:56.162Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T05:19:26.240Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T05:19:56.420Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T05:20:26.496Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T05:20:56.575Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T05:21:26.646Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T05:21:56.896Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T05:22:27.080Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T05:22:57.145Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T05:23:27.224Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T05:23:57.297Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T05:24:27.374Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T05:24:57.459Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T05:25:27.530Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T05:25:57.630Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T05:26:27.792Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T05:26:57.892Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "6ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T05:27:27.982Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T05:27:58.076Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T05:28:28.181Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T05:28:58.363Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T05:29:28.461Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T05:29:58.564Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T05:30:28.660Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T05:30:58.749Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T05:31:28.842Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T05:31:58.939Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T05:32:29.047Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T05:32:59.422Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T05:33:29.717Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "8ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T05:34:00.042Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "9ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T05:34:30.499Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T05:35:00.976Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "8ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T05:35:31.539Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "13ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T05:36:02.062Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T05:36:32.285Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T05:37:02.615Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T05:37:33.036Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "9ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T05:38:03.610Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T05:38:33.775Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T05:39:04.259Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "6ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T05:39:34.514Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T05:40:04.721Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "17ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T05:40:35.511Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "10ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T05:41:06.227Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T05:41:36.457Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T05:42:07.139Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T05:42:37.440Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T05:43:07.944Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T05:43:39.310Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "5ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T05:44:09.606Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T05:44:40.140Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "24ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T05:45:10.313Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T05:45:40.423Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T05:46:10.546Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "5ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T05:46:40.641Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T05:47:10.743Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T05:47:40.834Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T05:48:10.918Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T05:48:41.023Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T05:49:11.116Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T05:49:41.216Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T05:50:11.312Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T05:50:41.395Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T05:51:11.497Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T05:51:41.587Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T05:52:11.679Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T05:52:41.795Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T05:53:11.978Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "12ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T05:53:42.103Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T05:54:12.229Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T05:54:42.359Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T05:55:12.451Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T05:55:42.534Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T05:56:12.624Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T05:56:42.721Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T05:57:12.805Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T05:57:42.927Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T05:58:13.063Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T05:58:43.201Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "10ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T05:59:13.311Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T05:59:43.403Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T06:00:13.510Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T06:00:43.654Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T06:01:13.744Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T06:01:43.860Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T06:02:13.964Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T06:02:44.152Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T06:03:14.254Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T06:03:44.355Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T06:04:14.460Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T06:04:44.567Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T06:05:14.670Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T06:05:44.769Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T06:06:14.870Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T06:06:45.001Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T06:07:15.115Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T06:07:45.228Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T06:08:15.326Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T06:08:45.426Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T06:09:15.532Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T06:09:45.691Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T06:10:15.799Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T06:10:45.895Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T06:11:16.018Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T06:11:46.121Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T06:12:16.250Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T06:12:46.353Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T06:13:16.432Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T06:13:46.503Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T06:14:16.601Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T06:14:46.698Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T06:15:16.795Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T06:15:46.905Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T06:16:17.005Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T06:16:47.110Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T06:17:17.198Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T06:17:47.295Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T06:18:17.405Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T06:18:47.518Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T06:19:17.669Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T06:19:47.772Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T06:20:17.883Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T06:20:48.006Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T06:28:07.998Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T06:30:14.548Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T07:38:28.931Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T08:22:22.834Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T08:56:02.840Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T09:40:12.496Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T10:07:34.878Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T11:24:56.980Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T12:26:04.049Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T12:51:52.350Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T13:59:51.433Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T14:27:55.450Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T15:01:37.389Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T15:11:59.087Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T15:22:09.440Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T16:04:45.186Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T17:11:59.966Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T18:05:12.729Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T19:22:10.741Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T20:33:52.659Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T21:33:56.279Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T21:34:26.424Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T21:34:56.538Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "7ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T21:35:26.663Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T21:35:56.790Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T21:36:26.892Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T21:36:57.031Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T21:37:27.139Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T21:37:57.218Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T21:38:27.327Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T21:38:57.447Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T21:39:27.597Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T21:39:57.684Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T21:40:27.795Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T21:40:57.894Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T21:41:27.974Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T21:41:58.073Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T21:42:28.154Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T21:42:58.241Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T21:43:28.322Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T21:43:58.413Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T21:44:28.478Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T21:44:58.564Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T21:45:28.654Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T21:45:58.745Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T21:46:28.874Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T21:46:58.950Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T21:47:29.044Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T21:47:59.164Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T21:48:29.273Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T21:48:59.385Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T21:49:29.499Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T21:49:59.605Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T21:50:29.745Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T21:50:59.851Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T21:51:30.088Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T21:52:00.206Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T21:52:30.303Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T21:53:00.429Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T21:53:30.524Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T21:54:00.625Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T21:54:30.744Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T21:55:00.854Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T21:55:30.981Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T21:56:01.101Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "8ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T21:56:31.258Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "12ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T21:57:01.384Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T21:57:31.509Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T21:58:01.610Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T21:58:31.705Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T21:59:01.811Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T21:59:31.927Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T22:00:02.013Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T22:00:32.126Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T22:01:02.222Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T22:01:32.345Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T22:02:02.523Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T22:02:32.668Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T22:03:02.775Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T22:03:32.852Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T22:04:02.954Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T22:04:33.060Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "5ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T22:05:03.133Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T22:05:33.236Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T22:06:03.333Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T22:06:33.432Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T22:07:03.524Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T22:07:33.623Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T22:08:03.733Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T22:08:33.831Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T22:09:03.918Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T22:09:34.009Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T22:10:04.086Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T22:10:34.175Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T22:11:04.273Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T22:11:34.370Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T22:12:04.467Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T22:12:34.565Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "5ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T22:13:04.666Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T22:13:34.791Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T22:14:04.889Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T22:14:34.991Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T22:15:05.086Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T22:15:35.186Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T22:16:05.284Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T22:16:35.373Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T22:17:05.487Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T22:17:35.577Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T22:18:05.685Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T22:18:35.782Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T22:19:05.898Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T22:19:36.050Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T22:20:06.158Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T22:20:36.244Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T22:21:06.362Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "7ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T22:21:36.462Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T22:22:06.554Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T22:22:36.662Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T22:23:06.762Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T22:23:36.866Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T22:24:06.977Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T22:24:37.074Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T22:25:07.160Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T22:25:37.281Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T22:26:07.395Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T22:26:37.491Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T22:27:07.595Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T22:27:37.707Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T22:28:07.804Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T22:28:37.898Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T22:29:08.000Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T22:29:38.099Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T22:30:08.226Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T22:30:38.325Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T22:31:08.413Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T22:31:38.502Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T22:32:08.598Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T22:32:38.693Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T22:33:08.763Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T22:33:38.834Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T22:34:08.936Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T22:34:39.026Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T22:35:09.135Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T22:35:39.246Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T22:36:09.339Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T22:36:39.435Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T22:37:09.525Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T22:37:39.632Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T22:38:09.726Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T22:38:39.828Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T22:39:09.936Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T22:39:40.025Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T22:40:10.135Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T22:40:40.238Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T22:41:10.359Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T22:41:40.468Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T22:42:10.584Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T22:42:40.708Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T22:43:10.809Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T22:43:40.927Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T22:44:11.035Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T22:44:41.120Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T22:45:11.238Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "8ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T22:45:41.339Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T22:46:11.485Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T22:46:41.585Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T22:47:11.672Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T22:47:41.776Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T22:48:11.887Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T22:48:42.019Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T22:49:12.105Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T22:49:42.221Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T22:50:12.330Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T22:50:42.423Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T22:51:12.510Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T22:51:42.762Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "5ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T22:52:12.862Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T22:52:42.971Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T22:53:13.060Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T22:53:43.211Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T22:54:13.315Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T22:54:43.430Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T22:55:13.525Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T22:55:43.613Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T22:56:13.718Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T22:56:43.828Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T22:57:13.933Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T22:57:44.048Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T22:58:14.149Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T22:58:44.262Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T22:59:14.375Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T22:59:44.463Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T23:00:14.569Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T23:00:44.651Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T23:01:14.739Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T23:01:44.883Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T23:02:14.982Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T23:02:45.075Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T23:03:15.174Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T23:03:45.295Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "5ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T23:04:15.409Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T23:04:45.515Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T23:05:15.622Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T23:05:45.738Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T23:06:15.837Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T23:06:45.942Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T23:07:16.031Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T23:07:46.134Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T23:08:16.234Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T23:08:46.333Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T23:09:16.430Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T23:09:46.518Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T23:10:16.607Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T23:10:46.728Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T23:11:16.911Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T23:11:47.041Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T23:12:17.126Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T23:12:47.208Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T23:13:17.297Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T23:13:48.116Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "9ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T23:14:18.173Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T23:14:48.244Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T23:15:18.322Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T23:15:48.386Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T23:16:18.455Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T23:16:48.512Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T23:17:18.581Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T23:17:48.634Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T23:18:18.703Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T23:18:48.772Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T23:19:18.854Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T23:19:48.941Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T23:20:19.023Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T23:21:17.217Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T23:21:47.284Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T23:30:02.850Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T23:30:32.961Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T23:32:16.451Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T23:37:30.430Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T23:38:00.544Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T23:38:30.644Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T23:39:00.761Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T23:39:30.854Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T23:40:00.966Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T23:40:31.066Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T23:41:01.169Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T23:41:31.260Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T23:42:01.381Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T23:42:31.473Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T23:43:01.576Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T23:43:31.701Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "11ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T23:44:01.791Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T23:44:31.879Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T23:45:01.969Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T23:45:32.079Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T23:46:02.194Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T23:46:32.290Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T23:47:02.397Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T23:47:32.494Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T23:48:02.614Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T23:48:32.741Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T23:49:02.832Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T23:49:32.945Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T23:50:03.038Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T23:50:33.150Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T23:51:03.245Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T23:51:33.338Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T23:52:03.458Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T23:52:33.545Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T23:53:03.651Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T23:53:33.744Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T23:54:03.863Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T23:54:33.951Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T23:55:04.055Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T23:55:34.169Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T23:56:04.263Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T23:56:34.370Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T23:57:04.485Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T23:57:34.626Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T23:58:04.709Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T23:58:34.781Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T23:59:04.871Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-12T23:59:34.993Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T00:00:05.192Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T00:00:35.316Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T00:01:05.408Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T00:01:35.493Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T00:02:05.581Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T00:02:35.662Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T00:03:05.751Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T00:03:35.843Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T00:04:05.913Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T00:04:35.997Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T00:05:06.085Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T00:05:36.174Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T00:06:06.276Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T00:06:36.374Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T00:07:06.459Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T00:07:36.558Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T00:08:06.656Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T00:08:36.734Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T00:09:06.817Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T00:09:36.914Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T00:10:06.993Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T00:10:37.090Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T00:11:07.182Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T00:11:37.277Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T00:12:07.368Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T00:12:37.459Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T00:13:07.551Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T00:13:37.653Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T00:14:07.739Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T00:14:37.833Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T00:15:07.920Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T00:15:38.004Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T00:16:08.092Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T00:16:38.178Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T00:17:08.266Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T00:17:38.372Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T00:18:08.466Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T00:18:38.550Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T00:19:08.631Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T00:19:38.718Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T00:20:08.806Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T00:20:38.899Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T00:21:08.989Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T00:21:39.089Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T00:22:09.181Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T00:22:39.269Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T00:23:09.341Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T00:23:39.438Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T00:24:09.514Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T00:24:39.610Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T00:25:09.697Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T00:25:39.798Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T00:26:09.891Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T00:26:39.981Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T00:27:10.082Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T00:27:40.173Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T00:28:10.263Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T00:28:40.341Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T00:29:10.447Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T00:29:40.543Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T00:30:10.630Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T00:30:40.727Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T00:31:10.812Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T00:31:40.905Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T00:32:10.994Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T00:32:41.076Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T00:33:11.166Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T00:33:41.247Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T00:34:11.348Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T00:34:41.446Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T00:35:11.534Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T00:35:41.628Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T00:36:11.715Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T00:36:41.799Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T00:37:11.890Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T00:37:41.996Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T00:38:12.109Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T00:38:42.201Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T00:39:12.296Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T00:39:42.386Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T00:40:12.478Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T00:40:42.574Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T00:41:12.665Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T00:41:42.751Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T00:42:12.841Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T00:42:42.951Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T00:43:13.041Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T00:43:43.139Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T00:44:13.232Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T00:44:43.314Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T00:45:13.403Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T00:45:43.492Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T00:46:13.588Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T00:46:43.679Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T00:47:13.779Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T00:47:43.874Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T00:48:13.963Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T00:48:44.058Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T00:49:14.153Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T00:49:44.243Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T00:50:14.337Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T00:50:44.440Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T00:51:14.530Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T00:51:44.624Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T00:52:14.710Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T00:52:44.805Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T00:53:14.906Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T00:53:45.031Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T00:54:15.129Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T00:54:45.229Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T00:55:15.364Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T00:55:45.477Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T00:56:15.569Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T00:56:45.728Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T00:57:15.873Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T00:57:45.979Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T00:58:16.073Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T00:58:46.167Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T00:59:16.259Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T00:59:46.348Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T01:00:16.438Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T01:00:46.534Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T01:01:16.620Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T01:01:46.708Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T01:02:16.788Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T01:02:46.840Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T01:03:16.914Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T01:03:46.986Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T01:04:17.073Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T01:04:47.172Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T01:05:17.270Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T01:05:47.366Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T01:06:17.458Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T01:06:47.559Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T01:07:17.650Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T01:07:47.738Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T01:08:17.823Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T01:08:47.899Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T01:09:17.989Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T01:09:48.071Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T01:10:18.158Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T01:10:48.244Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T01:11:18.335Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T01:11:48.447Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T01:12:18.535Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T01:12:48.624Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T01:13:18.699Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T01:13:48.788Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T01:14:18.881Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T01:14:48.997Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T01:15:19.076Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T01:15:49.172Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T01:16:19.246Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T01:16:49.344Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T01:17:19.427Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T01:17:49.524Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T01:18:19.618Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T01:18:49.723Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T01:19:19.823Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T01:19:49.907Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T01:20:19.986Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T01:20:50.078Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T01:21:20.170Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T01:21:50.272Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T01:22:20.393Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T01:22:50.482Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T01:23:20.577Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T01:23:50.667Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T01:24:20.753Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T01:24:50.862Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T01:25:20.943Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T01:25:51.029Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T01:26:21.120Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T01:26:51.214Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T01:27:21.294Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T01:27:51.389Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T01:28:21.481Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T01:28:51.563Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T01:29:21.653Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T01:29:51.749Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T01:30:21.839Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T01:30:51.930Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T01:31:22.033Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T01:31:52.139Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T01:32:22.247Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T01:32:52.334Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T01:33:22.421Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T01:33:52.514Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T01:34:22.619Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T01:34:52.722Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T01:35:22.809Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T01:35:52.895Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T01:36:22.999Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T01:36:53.089Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T01:37:23.185Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T01:37:53.280Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T01:38:23.370Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T01:38:53.466Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T01:39:23.557Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T01:39:53.657Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T01:40:23.777Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T01:40:53.872Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T01:41:23.973Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T01:41:54.056Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T01:42:24.152Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T01:42:54.247Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T01:43:24.346Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T01:43:54.450Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T01:44:24.555Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T01:44:54.657Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T01:45:24.767Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T01:45:54.869Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T01:46:24.979Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T01:46:55.090Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T01:47:25.193Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T01:47:55.282Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T01:48:25.385Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T01:48:55.476Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T01:49:25.557Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T01:49:55.648Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T01:50:25.737Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T01:50:55.825Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T01:51:25.912Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T01:51:55.996Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T01:52:26.100Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T01:52:56.200Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T01:53:26.303Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T01:53:56.395Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T01:54:26.487Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T01:54:56.588Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T01:55:26.680Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T01:55:56.787Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T01:56:26.900Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T01:56:56.999Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T01:57:27.099Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T01:57:57.196Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T01:58:27.306Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T01:58:57.387Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T01:59:27.475Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T01:59:57.561Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T02:00:27.655Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T02:00:57.744Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T02:01:27.828Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T02:01:57.920Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T02:02:28.012Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T02:02:58.102Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T02:03:28.182Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T02:03:58.238Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T02:04:28.323Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T02:04:58.404Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T02:05:28.493Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T02:05:58.594Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T02:06:28.699Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T02:06:58.792Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T02:07:28.882Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T02:07:58.972Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T02:08:29.072Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T02:08:59.165Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T02:09:29.262Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T02:09:59.354Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T02:10:29.441Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T02:10:59.531Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T02:11:29.630Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T02:11:59.714Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T02:12:29.798Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T02:12:59.929Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T02:13:30.021Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T02:14:00.131Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T02:14:30.247Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T02:15:00.350Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T02:15:30.453Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T02:16:00.536Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T02:16:30.621Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T02:17:00.722Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T02:17:30.823Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T02:18:00.914Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T02:18:31.009Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T02:19:01.104Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T02:19:31.204Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T02:20:01.300Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T02:20:31.399Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T02:21:01.559Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "13ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T02:21:31.667Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T02:22:01.763Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T02:22:31.876Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T02:23:01.980Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T02:23:32.078Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T02:24:02.172Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T02:24:32.266Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T02:25:02.374Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T02:25:32.494Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T02:26:02.595Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T02:26:32.705Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T02:27:02.791Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T02:27:32.876Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T02:28:02.974Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T02:28:33.073Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T02:35:53.080Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T02:51:46.697Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T02:57:51.148Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T02:58:21.248Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T02:58:51.344Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T02:59:21.556Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T02:59:51.703Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T03:00:21.800Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T03:00:51.938Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T03:01:22.045Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T03:09:39.146Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T03:10:09.244Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T03:10:39.331Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T03:11:09.434Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T03:11:39.587Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T03:12:09.666Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T03:12:39.771Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T03:13:09.880Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T03:13:39.997Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T03:14:10.077Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T03:14:40.176Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T03:15:10.328Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T03:15:40.448Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T03:16:10.545Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T03:16:40.645Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T03:17:10.769Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T03:17:40.885Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T03:18:10.988Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T03:18:41.052Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T03:19:11.133Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T03:19:41.248Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T03:20:11.371Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T03:20:41.509Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T03:21:11.649Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T03:21:41.800Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T03:22:11.890Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T03:22:41.978Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T03:23:12.067Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T03:23:42.128Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T03:24:12.317Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T03:24:42.397Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T03:25:12.469Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T03:25:42.540Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T03:26:12.625Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T03:26:42.713Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T03:27:12.788Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T03:27:42.874Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T03:28:12.960Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T03:28:43.119Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T03:29:13.186Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T03:29:43.313Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T03:30:13.470Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T03:30:43.601Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T03:31:13.683Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T03:31:43.758Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T03:32:14.632Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T03:32:45.072Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T03:33:16.113Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T03:33:46.971Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "21ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T03:34:17.660Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "18ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T03:34:48.737Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T03:35:19.216Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "11ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T03:35:49.612Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T03:36:20.087Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T03:36:50.488Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T03:37:21.058Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "11ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T03:37:50.896Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T03:38:21.374Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T03:38:51.488Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T03:39:47.088Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T03:40:17.197Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T03:40:47.287Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T03:41:17.393Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T03:41:47.499Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T03:42:17.595Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T03:42:47.696Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T03:43:17.783Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T03:43:47.895Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T03:44:18.073Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T03:44:48.158Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T03:45:18.236Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "7ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T03:45:48.312Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T03:46:18.398Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T03:46:48.484Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T03:47:18.596Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T03:47:48.687Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T03:48:18.788Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T03:48:48.892Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T03:49:18.987Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T03:49:49.075Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T03:50:19.147Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T03:50:49.233Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T03:51:19.308Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T03:51:49.392Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T03:52:19.491Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T03:52:49.591Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T03:53:19.693Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T03:53:49.800Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T03:54:19.869Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T03:54:49.963Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T03:55:20.041Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T03:55:50.120Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T03:56:20.210Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T03:56:50.292Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T03:57:20.384Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T03:57:50.481Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T03:58:20.544Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T03:58:50.657Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T03:59:20.734Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T03:59:50.815Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T04:00:20.883Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T04:00:50.951Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T04:01:21.022Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T04:01:51.180Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T04:04:47.587Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T04:05:17.692Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T04:05:47.765Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T04:06:17.864Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T04:06:47.961Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T04:07:18.065Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T04:07:48.165Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T04:08:18.270Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T04:08:48.371Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "8ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T04:09:18.496Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T04:09:48.619Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T04:10:18.752Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T04:10:48.828Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T04:11:18.912Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T04:11:49.653Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T04:12:21.687Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "7ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T04:12:53.003Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "36ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T04:13:24.911Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "58ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T04:13:56.012Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T04:14:26.206Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T04:14:56.297Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T04:15:26.391Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T04:15:56.473Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T04:16:26.622Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T04:22:54.049Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T04:23:53.816Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T04:24:24.277Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T04:24:54.389Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T04:25:24.471Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T04:25:54.581Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T04:26:24.674Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T04:33:48.291Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T04:34:18.402Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T04:34:48.507Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T04:35:18.614Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "5ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T04:35:48.716Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T04:36:18.819Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T04:36:48.879Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T04:37:18.946Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T04:37:49.037Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T04:38:19.146Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T04:38:49.236Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T04:39:19.323Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T04:39:49.425Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T04:40:19.492Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T04:42:41.104Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T04:43:11.187Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T04:43:41.286Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T04:44:11.357Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T04:44:41.487Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T04:45:11.563Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T04:45:41.675Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T04:46:11.777Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T04:46:41.867Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T04:47:11.944Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T04:47:42.055Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T04:48:12.154Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T04:48:42.245Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T04:49:12.330Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T04:49:42.423Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T04:50:12.519Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T04:50:42.607Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T04:51:12.705Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T04:51:42.800Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T04:52:12.899Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T04:52:42.989Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T04:53:13.075Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T04:53:53.127Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T04:54:23.228Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T04:54:53.341Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T04:55:23.472Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T04:55:53.563Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T04:56:23.658Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T04:56:53.735Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T04:57:23.835Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T04:57:53.947Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T04:58:24.069Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T04:58:54.192Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T04:59:24.310Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T04:59:54.395Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T05:00:24.478Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T05:00:54.558Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T05:01:24.648Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T05:01:54.750Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T05:02:24.828Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T05:04:40.063Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T05:05:10.161Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T05:05:40.246Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T05:06:10.337Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T05:06:40.459Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T05:07:40.419Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T05:08:10.502Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T05:08:40.625Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T05:09:10.766Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T05:09:41.798Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "213ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T05:10:12.419Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T05:10:42.541Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T05:11:13.107Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T05:11:43.273Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T05:12:13.361Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T05:12:43.449Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T05:13:13.548Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T05:13:43.658Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T05:14:13.780Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T05:14:43.914Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T05:15:14.013Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T05:15:44.123Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T05:16:14.230Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T05:16:44.327Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T05:17:14.427Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T05:17:44.566Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T05:18:14.692Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T05:18:44.819Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T05:19:15.003Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T05:19:45.163Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T05:20:15.288Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T05:20:45.440Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "7ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T05:21:15.598Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T05:21:46.037Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "11ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T05:22:16.572Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T05:22:47.085Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T05:23:17.206Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T05:23:47.343Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T05:24:17.472Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T05:24:47.615Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T05:25:17.775Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T05:25:47.867Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T05:26:17.975Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T05:26:48.084Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T05:27:18.172Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T05:27:48.277Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T05:28:18.384Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T05:28:48.473Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T05:29:18.562Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T05:29:48.672Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T05:30:18.779Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T05:30:48.897Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T05:31:19.007Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T05:31:49.144Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T05:32:19.365Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T05:32:49.471Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T05:33:19.557Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T05:33:49.647Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T05:34:19.727Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T05:34:49.820Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T05:35:19.903Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T05:35:50.017Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T05:36:20.094Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T05:36:50.197Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "8ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T05:37:20.273Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T05:37:50.367Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T05:38:20.462Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T05:38:50.594Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T05:39:20.694Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T05:39:50.847Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T05:40:21.006Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "6ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T05:40:51.114Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T05:41:21.254Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T05:41:51.379Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T05:42:21.510Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T05:42:51.655Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T05:43:21.785Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T05:43:51.896Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T05:44:22.007Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T05:44:52.109Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T05:45:22.229Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T05:45:52.355Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T05:46:22.479Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T05:46:52.625Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T05:47:22.726Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T05:47:52.910Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T05:48:23.050Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T05:48:53.144Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T05:49:23.233Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T05:49:53.339Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T05:50:23.431Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T05:50:53.537Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T05:51:23.636Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T05:51:53.770Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T05:52:23.889Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T05:52:53.997Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T05:53:24.097Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T05:53:54.218Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "7ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T05:54:24.304Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T05:54:54.406Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T05:55:24.503Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T05:55:54.616Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T05:56:24.712Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T05:56:54.820Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T05:57:24.929Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T05:57:55.052Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "12ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T05:58:25.168Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T05:58:55.287Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T05:59:25.410Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T05:59:55.533Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T06:00:25.646Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T06:00:55.760Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T06:01:25.853Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T06:01:55.973Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T06:02:26.090Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T06:02:56.226Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T06:04:26.440Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T06:04:56.585Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T06:05:49.463Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T06:06:19.560Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T06:06:49.681Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "5ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T06:07:19.787Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T06:07:49.898Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T06:08:20.076Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T06:08:50.354Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T06:09:20.465Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T06:09:50.554Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T06:10:20.668Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T06:10:50.767Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T06:11:20.908Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T06:11:51.013Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T06:12:21.095Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T06:12:51.199Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T06:13:21.295Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T06:13:51.408Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T06:14:21.481Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T06:14:51.540Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T06:15:21.604Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T06:15:51.743Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T06:16:21.833Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T06:16:51.921Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T06:17:22.023Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T06:17:52.114Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T06:18:22.207Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T06:18:52.305Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T06:19:22.392Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T06:19:52.492Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T06:20:22.582Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T06:20:52.661Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T06:21:22.810Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T06:21:52.929Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T06:22:23.071Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T06:22:53.172Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T06:23:23.262Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T06:23:53.353Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T06:24:23.462Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T06:24:53.563Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T06:25:23.657Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T06:25:53.752Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T06:26:23.849Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T06:26:53.941Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T06:27:24.039Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T06:27:54.139Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T06:28:24.234Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T06:28:54.362Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T06:29:24.435Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T06:29:54.517Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T06:30:24.603Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T06:30:54.704Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T06:31:24.796Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T06:31:54.876Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T06:32:25.026Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T06:32:55.135Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "6ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T06:33:25.238Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T06:33:55.325Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T06:34:25.415Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T06:34:55.504Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T06:35:25.596Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T06:35:55.674Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T06:36:25.756Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T06:36:55.841Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T06:37:25.939Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T06:37:56.004Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T06:38:26.133Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T06:38:56.231Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T06:39:26.343Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T06:39:56.655Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T06:40:26.861Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T06:40:57.651Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T06:41:30.250Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "38ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T06:42:00.882Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "6ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T06:42:31.145Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T06:43:01.468Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T06:43:31.865Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T06:44:01.660Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T06:44:32.454Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T06:45:02.556Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T06:45:32.656Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T06:46:02.752Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T06:46:32.847Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T06:47:02.948Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T06:47:33.052Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T06:48:03.155Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T06:48:33.254Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T06:49:03.348Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T06:49:33.444Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T06:50:03.564Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T06:50:33.679Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T06:51:03.777Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T06:51:33.897Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T06:52:03.983Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T06:52:34.089Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T06:53:04.257Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T06:53:52.067Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T06:54:22.155Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T06:54:52.246Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T06:55:22.350Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T06:55:52.460Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T06:56:22.655Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T06:58:13.705Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T06:58:43.775Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T06:59:13.844Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T06:59:43.937Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T07:00:14.008Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T07:00:44.095Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T07:08:08.743Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T07:09:52.489Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T07:10:22.592Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T07:29:14.609Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T07:54:45.370Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T07:57:54.730Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T07:58:24.834Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T08:35:33.527Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T08:36:03.750Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T08:37:01.363Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T08:37:44.205Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T08:38:14.293Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T08:44:03.108Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T08:44:33.223Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T08:46:14.902Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T08:50:18.556Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T08:50:48.671Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T09:01:53.731Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T09:18:10.116Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T09:18:40.229Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T10:02:50.011Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T10:21:04.325Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T11:04:05.449Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T11:10:41.229Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T11:11:11.327Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "5ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T12:00:38.723Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T12:05:15.513Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T12:47:33.507Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T12:48:03.610Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T12:56:04.103Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T12:56:34.194Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T12:58:15.756Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T13:05:56.058Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T13:06:26.161Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T13:52:00.923Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T13:52:31.045Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "6ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T14:02:13.909Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T14:06:54.030Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T14:07:24.129Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T14:33:19.164Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T14:33:49.273Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T14:38:39.752Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T14:42:01.109Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T14:42:31.211Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T14:44:13.732Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T14:49:38.356Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T14:50:08.448Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T14:52:15.475Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T14:55:39.538Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T15:04:01.337Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T15:04:31.426Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T15:05:33.684Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T15:07:54.263Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T15:14:07.056Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T15:14:37.156Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T15:16:19.693Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T15:50:35.451Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T16:09:15.111Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "70ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T16:42:46.007Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T16:43:16.115Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T17:07:03.457Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T17:07:33.560Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T17:10:16.073Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T17:19:59.747Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T17:20:29.864Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T18:16:16.500Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T18:16:46.614Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "6ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T18:46:03.872Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T18:46:33.952Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T19:11:14.884Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T19:42:45.073Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T19:43:15.176Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T20:12:03.576Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T20:12:33.681Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T20:59:22.321Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T20:59:52.432Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T21:08:17.870Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T21:10:01.270Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T21:10:31.369Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T21:12:47.192Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T21:17:25.784Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T21:17:55.874Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T21:26:09.163Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T21:26:39.310Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "12ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T21:28:59.567Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T21:29:29.666Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T21:29:59.757Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T21:30:29.898Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "5ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T21:31:00.000Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T21:31:30.101Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T21:32:00.174Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T21:32:30.272Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T21:33:00.381Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T21:33:30.469Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T21:34:00.573Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T21:34:30.690Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T21:35:00.781Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T21:35:30.874Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T21:36:00.969Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T21:36:31.087Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T21:37:01.186Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T21:37:31.267Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T21:38:01.377Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T21:38:31.494Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T21:39:01.561Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T21:39:31.648Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T21:40:01.743Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T21:40:31.836Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T21:41:01.935Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T21:41:32.031Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T21:42:02.136Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T21:42:32.246Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T21:43:02.351Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T21:43:32.461Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T21:44:02.563Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T21:44:32.690Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T21:45:02.798Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T21:45:32.915Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T21:46:03.029Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T21:46:33.141Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T21:47:03.262Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T21:47:33.421Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T21:48:03.529Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T21:48:33.646Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T21:49:03.798Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T21:49:33.919Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T21:50:04.032Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T21:50:34.151Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T21:51:04.320Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T21:51:34.434Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T21:52:04.597Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "5ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T21:52:34.710Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T21:53:04.871Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "5ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T21:53:35.065Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T21:54:05.192Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T21:54:35.398Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T21:55:05.524Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T21:55:35.633Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T21:56:05.734Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T21:56:35.878Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T21:57:06.000Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T21:57:36.129Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T21:58:06.238Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T21:58:36.327Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T21:59:06.453Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T21:59:36.592Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T22:00:06.824Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T22:02:15.943Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T22:02:46.114Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T22:03:16.363Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "6ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T22:03:46.577Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T22:04:17.062Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "9ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T22:04:47.233Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "10ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T22:05:17.386Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "6ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T22:05:47.448Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T22:06:17.552Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T22:06:47.624Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T22:07:17.750Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T22:07:47.845Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T22:08:17.953Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T22:08:48.049Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T22:09:18.144Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T22:09:48.243Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T22:10:18.338Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T22:10:48.435Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T22:11:18.529Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T22:11:48.627Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T22:12:18.715Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T22:12:48.803Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T22:13:18.886Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T22:13:48.966Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T22:14:19.074Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T22:14:49.210Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T22:15:19.296Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T22:15:49.379Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T22:16:19.467Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T22:16:49.539Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T22:17:19.629Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T22:17:49.714Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T22:18:19.804Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T22:18:50.016Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T22:19:20.127Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T22:19:50.216Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T22:20:20.309Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T22:20:50.385Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T22:21:20.471Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T22:21:50.535Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T22:22:20.648Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T22:22:50.744Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T22:23:20.835Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T22:23:50.920Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T22:24:21.046Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T22:24:51.133Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T22:25:21.233Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T22:25:51.398Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "8ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T22:26:21.513Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T22:26:51.649Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T22:27:21.880Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T22:27:52.032Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "5ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T22:28:22.152Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T22:28:52.274Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T22:29:22.400Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T22:29:52.495Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T22:30:22.694Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T22:30:52.796Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T22:31:22.925Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T22:31:53.019Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T22:32:23.156Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T22:32:53.269Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T22:33:23.381Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T22:33:53.469Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T22:34:23.575Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T22:34:53.680Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T22:35:23.786Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T22:35:53.886Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T22:36:24.025Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T22:36:54.127Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T22:37:24.217Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T22:37:54.328Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "6ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T22:38:24.420Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T22:38:54.540Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T22:39:24.671Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T22:39:54.817Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T22:40:24.925Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T22:40:55.084Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "5ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T22:41:25.438Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T22:41:55.752Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T22:42:25.882Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T22:42:56.123Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T22:43:26.236Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T22:43:56.376Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T22:44:26.481Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T22:44:56.606Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T22:45:26.742Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T22:45:56.839Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T22:46:26.993Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "5ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T22:46:57.147Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "9ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T22:47:27.284Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T22:47:57.435Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T22:48:28.272Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "8ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T22:48:59.070Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T22:49:29.549Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T22:49:59.673Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T22:50:29.801Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T22:51:00.056Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T22:51:30.161Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T22:52:00.255Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T22:52:30.378Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T22:53:00.495Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T22:53:30.580Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T22:54:00.689Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T22:54:30.779Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T22:55:00.873Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T22:55:31.014Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T22:56:01.102Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T22:56:31.191Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T22:57:01.280Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T22:57:31.376Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T22:58:01.450Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T22:58:31.550Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T22:59:01.644Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T22:59:31.740Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T23:00:01.826Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T23:00:31.928Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T23:01:02.021Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T23:01:32.131Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T23:02:02.229Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T23:02:32.325Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T23:03:02.412Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T23:03:32.510Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T23:04:02.590Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T23:04:32.694Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T23:05:02.788Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T23:05:32.871Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T23:06:02.961Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T23:06:33.050Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T23:07:03.146Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T23:07:33.243Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T23:08:03.339Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T23:08:33.434Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T23:09:03.529Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T23:09:33.653Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T23:10:03.763Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T23:10:33.886Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T23:11:04.090Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T23:11:34.186Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T23:12:04.285Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T23:12:34.351Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T23:13:04.414Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T23:13:34.483Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T23:14:04.579Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T23:14:34.675Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T23:15:04.754Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T23:15:34.850Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T23:16:04.946Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T23:16:35.056Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T23:17:05.185Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T23:17:35.291Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T23:18:05.400Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T23:18:35.492Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T23:19:05.578Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T23:19:35.666Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T23:20:05.753Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T23:20:35.848Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T23:21:05.939Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T23:21:36.029Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T23:22:06.134Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T23:22:36.223Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T23:23:06.346Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T23:23:36.434Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T23:24:06.566Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T23:24:36.706Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T23:25:06.831Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "5ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T23:25:36.961Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T23:26:07.085Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T23:26:37.200Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T23:27:07.296Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T23:27:37.393Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T23:28:07.465Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T23:28:37.597Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T23:29:07.704Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T23:29:37.794Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T23:30:07.892Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T23:30:37.984Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T23:31:08.060Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T23:31:38.507Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "25ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T23:32:09.055Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "20ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T23:32:39.371Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T23:33:09.607Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T23:33:39.724Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "5ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T23:34:09.800Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T23:34:39.912Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T23:35:10.017Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T23:35:40.124Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T23:36:10.201Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T23:36:40.286Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T23:37:10.364Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T23:37:40.456Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T23:38:10.539Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T23:38:40.651Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T23:39:10.759Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T23:39:40.903Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T23:40:11.001Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T23:40:41.152Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T23:41:11.260Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T23:41:41.378Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T23:42:11.486Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T23:42:41.593Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T23:43:11.686Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T23:43:41.789Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T23:44:11.874Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T23:44:41.981Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T23:45:12.077Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T23:45:42.177Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T23:46:12.264Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T23:46:42.369Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T23:47:12.482Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T23:47:42.583Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T23:48:12.697Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T23:48:42.805Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T23:49:12.890Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T23:49:42.976Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T23:50:13.105Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T23:50:43.211Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T23:51:13.304Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T23:51:43.397Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T23:52:13.531Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T23:52:43.632Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T23:53:13.726Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T23:53:43.813Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T23:54:13.910Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T23:54:43.990Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T23:55:14.084Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T23:55:44.163Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T23:56:14.243Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T23:56:44.852Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T23:57:15.001Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T23:57:45.109Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T23:58:15.206Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T23:58:45.958Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "6ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T23:59:16.253Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "8ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-13T23:59:46.337Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T00:00:16.407Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T00:00:46.506Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T00:01:16.597Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T00:01:46.699Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T00:02:16.795Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T00:02:46.974Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T00:03:17.091Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T00:03:47.200Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T00:04:17.300Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T00:04:47.431Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T00:05:17.594Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T00:05:47.713Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T00:06:17.846Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T00:06:47.993Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T00:07:19.272Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "12ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T00:07:50.602Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "41ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T00:08:21.252Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T00:08:51.937Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T00:09:22.090Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T00:09:52.233Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T00:10:22.425Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T00:10:52.537Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T00:11:22.649Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T00:11:52.749Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T00:12:22.848Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T00:12:52.950Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T00:13:23.050Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T00:13:53.134Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T00:14:23.239Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T00:14:53.351Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T00:15:23.510Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T00:15:53.593Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T00:16:23.701Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T00:16:53.801Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T00:17:23.882Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T00:17:53.968Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T00:18:24.045Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T00:18:54.128Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T00:19:24.234Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T00:19:54.353Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T00:20:24.469Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T00:20:54.570Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T00:21:24.694Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T00:21:54.915Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T00:22:24.998Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T00:22:55.122Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T00:23:25.228Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T00:23:55.341Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T00:24:25.459Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T00:24:55.556Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T00:25:25.683Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T00:25:55.783Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T00:26:25.894Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T00:26:56.025Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T00:27:26.177Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T00:27:56.311Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T00:28:26.458Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T00:28:56.571Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T00:29:26.737Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T00:29:57.033Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "12ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T00:30:27.120Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T00:30:57.206Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "8ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T00:31:27.355Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T00:31:57.635Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T00:32:27.771Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T00:32:57.987Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T00:33:28.113Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T00:33:58.210Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T00:34:28.303Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T00:34:58.428Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T00:35:28.545Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T00:35:58.663Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T00:36:28.785Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T00:36:58.910Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T00:37:29.003Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T00:37:59.114Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T00:38:29.308Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T00:38:59.424Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T00:39:29.512Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T00:39:59.613Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T00:40:30.002Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T00:41:00.613Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T00:41:31.086Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T00:42:01.217Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T00:42:31.314Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T00:43:01.446Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T00:43:31.592Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T00:44:01.752Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T00:44:31.907Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T00:45:02.086Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T00:45:32.226Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T00:46:02.358Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T00:46:32.573Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T00:47:03.033Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T00:47:33.173Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T00:48:03.334Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T00:48:33.672Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T00:49:03.805Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T00:49:33.936Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T00:50:04.096Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T00:50:34.211Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T00:51:04.356Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T00:51:34.485Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T00:52:04.581Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "8ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T00:52:34.688Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T00:53:04.798Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T00:53:34.962Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T00:54:05.054Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T00:54:35.130Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T00:55:05.229Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T00:55:35.322Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T00:56:05.435Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T00:56:35.540Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T00:57:05.656Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T00:57:35.763Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T00:58:05.846Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T00:58:35.974Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T00:59:06.072Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T00:59:36.172Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T01:00:06.284Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T01:00:36.382Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "5ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T01:01:06.524Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T01:01:36.632Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T01:02:06.755Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T01:02:36.859Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T01:03:06.972Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T01:03:37.057Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T01:04:07.179Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T01:04:37.313Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T01:05:08.058Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T01:05:38.495Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "7ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T01:06:08.854Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T01:06:45.027Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "8ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T01:07:15.348Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "5ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T01:07:45.448Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T01:08:15.547Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T01:08:45.646Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T01:09:15.761Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T01:09:45.852Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T01:10:15.954Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T01:10:46.072Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T01:11:16.403Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T01:11:46.465Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T01:12:16.571Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T01:12:46.655Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T01:13:16.730Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T01:13:46.793Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T01:14:17.023Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T01:14:47.103Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T01:15:17.198Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T01:15:47.356Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T01:16:17.438Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T01:16:47.542Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T01:17:17.632Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T01:17:47.746Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T01:18:17.847Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T01:18:48.020Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "5ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T01:19:18.124Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T01:19:48.231Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T01:20:18.368Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T01:20:48.451Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T01:21:18.614Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "9ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T01:21:48.752Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T01:22:18.867Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T01:22:48.972Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T01:23:19.091Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T01:23:50.820Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T01:24:20.976Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T01:24:51.814Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T01:25:22.848Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "12ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T01:25:53.007Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T01:26:23.344Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T01:26:53.488Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T01:27:23.590Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T01:27:53.698Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T01:28:23.803Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T01:28:53.903Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T01:29:23.994Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T01:29:54.082Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T01:30:24.177Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T01:30:54.274Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T01:31:24.378Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T01:31:54.517Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T01:32:24.604Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T01:32:54.737Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T01:33:24.854Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T01:33:54.949Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T01:34:25.065Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "11ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T01:34:55.199Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T01:35:25.330Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T01:35:55.436Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T01:36:25.531Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T01:36:55.643Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T01:37:25.735Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T01:37:55.852Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T01:38:25.945Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T01:38:56.040Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T01:39:26.115Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T01:39:56.177Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T01:40:26.253Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T01:40:56.349Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T01:41:26.461Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T01:41:56.558Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T01:42:26.660Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T01:42:56.775Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T01:43:26.890Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T01:43:56.978Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T01:44:27.065Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T01:44:57.172Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T01:45:27.268Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T01:45:57.366Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T01:46:27.455Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T01:46:57.560Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T01:47:27.658Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T01:47:57.739Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T01:48:27.837Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T01:48:57.925Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T01:49:28.022Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T01:49:58.120Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T01:50:28.220Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T01:50:58.373Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T01:51:28.462Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T01:51:58.555Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T01:52:28.640Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T01:52:58.762Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T01:53:28.849Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T01:53:58.951Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T01:54:29.042Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T01:54:59.143Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T01:55:29.237Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T01:55:59.354Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T01:56:29.448Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T01:56:59.535Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T01:57:29.648Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T01:57:59.763Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "5ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T01:58:29.867Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T01:58:59.971Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T01:59:30.130Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T02:00:00.245Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T02:00:30.346Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T02:01:00.457Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T02:01:30.569Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T02:02:00.679Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T02:02:30.776Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T02:03:00.884Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T02:03:30.982Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T02:04:01.083Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T02:04:31.211Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T02:05:01.348Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T02:05:31.455Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T02:06:01.551Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T02:06:31.659Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T02:07:01.778Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T02:07:31.945Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T02:08:02.059Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T02:08:32.183Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "5ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T02:09:02.338Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T02:09:32.482Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "11ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T02:10:02.623Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T02:10:32.720Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T02:11:02.832Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T02:11:32.936Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T02:12:03.049Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T02:12:33.136Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T02:13:03.243Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T02:13:33.325Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T02:14:03.404Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T02:14:33.484Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T02:15:03.603Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T02:15:33.716Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T02:16:03.813Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T02:16:33.901Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T02:17:03.986Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T02:17:34.126Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T02:18:04.224Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T02:18:34.322Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T02:19:04.421Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T02:19:34.479Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T02:20:04.573Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T02:20:34.639Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T02:21:04.714Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T02:21:34.777Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T02:22:04.842Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T02:22:34.907Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T02:23:04.967Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T02:23:35.022Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T02:24:05.090Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T02:24:35.144Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T02:25:05.197Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T02:25:35.287Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T02:26:05.343Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T02:26:35.397Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T02:27:05.449Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T02:27:35.530Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T02:28:05.584Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T02:28:35.637Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T02:29:05.704Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T02:29:35.756Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T02:30:05.817Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T02:30:35.914Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T02:31:05.967Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T02:31:36.067Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T02:32:06.159Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T02:32:36.246Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T02:33:06.325Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T02:33:36.415Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T02:34:06.501Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T02:34:36.571Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T02:35:06.671Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T02:35:36.775Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T02:36:06.862Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T02:36:36.964Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T02:37:07.064Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T02:37:37.172Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T02:38:07.269Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T02:38:37.367Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T02:39:07.468Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T02:39:37.562Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T02:40:07.665Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T02:40:37.758Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T02:41:07.844Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T02:41:37.902Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T02:42:07.987Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T02:42:38.073Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T02:43:08.175Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T02:43:38.285Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T02:44:08.390Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T02:44:38.488Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T02:45:08.593Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T02:45:38.680Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T02:46:08.786Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T02:46:38.902Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T02:47:08.993Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T02:47:39.089Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T02:48:09.175Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T02:48:39.282Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T02:49:09.396Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T02:49:39.506Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T02:50:09.601Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T02:50:39.709Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T02:51:09.796Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T02:51:39.903Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T02:52:10.006Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T02:52:40.113Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T02:53:10.197Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T02:53:40.301Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T02:54:10.410Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T02:54:40.535Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T02:55:10.662Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T02:55:40.772Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T02:56:10.866Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T02:56:40.970Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T02:57:11.121Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T02:57:41.226Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T02:58:11.330Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T02:58:41.424Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T02:59:11.541Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "7ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T02:59:41.648Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T03:00:11.746Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T03:00:41.865Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T03:01:11.962Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T03:01:42.087Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T03:02:12.179Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T03:02:42.282Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T03:03:12.377Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T03:03:42.479Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T03:04:12.594Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T03:04:42.691Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T03:05:12.804Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T03:05:42.928Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T03:06:13.049Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "5ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T03:06:43.166Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T03:07:13.267Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T03:07:43.363Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T03:08:13.457Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T03:08:43.555Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T03:09:13.643Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T03:09:43.734Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T03:10:13.820Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T03:10:43.923Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T03:11:14.022Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T03:11:44.121Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T03:12:14.213Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T03:12:44.313Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T03:13:14.406Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T03:13:44.519Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T03:14:14.605Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T03:14:44.718Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T03:15:14.820Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T03:15:44.929Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T03:16:15.039Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T03:16:45.174Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T03:17:15.288Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T03:17:45.397Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T03:18:15.497Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T03:18:45.602Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T03:19:15.714Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "6ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T03:19:45.800Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T03:20:15.915Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T03:20:46.025Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T03:21:16.171Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T03:21:46.286Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T03:22:16.404Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T03:22:46.507Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T03:23:16.677Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T03:23:46.801Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T03:24:16.982Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T03:24:47.101Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T03:25:17.264Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T03:25:47.407Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T03:26:17.549Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "6ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T03:26:47.698Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T03:27:17.790Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T03:35:59.420Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T04:02:34.009Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T04:25:28.916Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T04:25:59.012Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T04:26:29.106Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T04:26:59.221Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T04:27:29.312Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T04:27:59.416Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T04:28:29.527Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T04:28:59.624Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T04:29:29.718Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T04:29:59.823Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T04:30:29.916Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T04:31:00.005Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T04:31:30.097Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T04:32:00.199Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T04:32:30.307Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T04:33:00.413Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T04:33:30.508Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T04:34:00.608Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T04:34:30.688Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T04:35:00.783Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T04:35:30.874Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T04:36:00.968Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T04:36:31.062Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T04:37:01.156Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T04:37:31.259Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T04:38:01.357Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T04:38:31.452Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T04:39:01.552Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T04:39:31.645Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T04:40:01.748Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T04:40:31.853Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T04:41:01.987Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T04:41:32.098Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T04:42:02.245Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T04:42:32.339Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T04:43:02.428Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T04:43:32.521Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T04:44:02.617Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T04:44:32.724Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T04:45:02.820Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T04:45:32.914Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T04:46:03.032Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T04:46:33.141Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T04:47:03.198Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T04:47:33.287Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T04:48:03.368Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T04:48:33.451Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T04:49:03.535Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T04:49:33.636Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T04:50:03.718Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T04:50:33.806Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T04:51:03.899Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T04:51:33.996Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T04:52:04.112Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T04:52:34.206Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T04:53:04.303Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T04:53:34.406Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T04:54:04.497Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T04:54:34.589Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T04:55:04.668Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T04:55:34.762Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T04:56:04.877Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "7ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T04:56:34.966Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T04:57:05.050Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T04:57:35.114Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T04:58:05.210Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T04:58:35.302Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T04:59:05.396Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T04:59:35.487Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T05:00:05.609Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "9ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T05:00:35.701Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T05:01:05.810Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T05:01:35.907Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T05:02:06.042Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T05:02:36.176Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T05:03:06.303Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T05:03:36.465Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T05:04:06.607Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T05:04:36.708Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T05:05:06.823Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T05:05:36.983Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "6ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T05:06:07.102Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T05:06:37.211Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T05:07:07.319Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T05:07:37.439Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T05:08:07.574Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T05:08:37.697Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T05:09:07.891Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "7ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T05:09:38.029Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T05:10:08.177Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T05:10:38.304Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T05:11:08.497Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T05:11:38.595Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T05:12:08.759Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T05:12:39.121Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T05:13:09.221Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T05:13:39.314Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T05:14:09.422Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T05:14:39.524Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T05:15:09.629Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T05:15:39.744Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T05:16:09.850Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T05:16:39.952Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T05:17:10.048Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T05:17:40.130Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T05:18:10.240Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T05:19:59.361Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T05:20:29.487Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T05:20:59.592Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T05:21:29.689Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T05:21:59.777Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T05:22:29.862Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T05:22:59.959Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T05:23:30.086Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "5ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T05:24:45.057Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T05:25:15.141Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T05:26:20.396Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T05:26:50.491Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T05:27:20.590Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T05:27:50.716Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T05:32:17.952Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T05:32:48.058Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T05:33:18.159Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T05:33:48.275Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T05:34:18.401Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T05:34:48.507Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T05:35:18.623Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T05:35:48.738Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T05:36:18.834Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T05:36:48.938Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T05:37:19.052Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T05:37:49.208Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "5ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T05:38:19.321Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T05:38:49.404Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T05:39:19.503Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T05:39:49.615Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T05:40:19.707Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T05:40:49.890Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T05:41:20.062Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T05:41:50.333Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T05:42:20.496Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T05:42:50.661Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T05:43:20.804Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T05:43:50.911Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T05:44:21.052Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "14ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T05:44:51.163Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T05:45:21.298Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T05:45:51.432Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T05:46:21.546Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T05:46:51.635Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T05:47:21.747Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T05:47:51.864Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T05:48:21.984Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T05:48:52.092Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T05:49:22.191Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T05:49:52.300Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T05:50:22.405Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T05:50:52.507Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T05:51:22.612Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T05:51:52.699Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T05:52:22.797Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T05:52:52.887Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T05:53:22.982Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T05:53:53.079Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T05:54:23.167Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T05:54:53.248Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T05:55:23.334Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T05:55:53.434Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T05:56:23.529Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T05:56:53.618Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T05:57:23.719Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T05:57:54.120Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T05:58:24.200Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T05:58:54.276Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T05:59:24.379Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T05:59:54.485Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T06:00:24.593Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T06:00:54.697Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T06:01:24.791Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T06:01:54.877Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T06:02:24.973Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T06:02:55.046Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T06:03:25.526Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "5ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T06:03:55.825Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T06:04:27.062Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T06:04:58.825Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "5ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T06:05:30.197Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "12ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T06:06:02.961Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T06:06:34.999Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T06:07:05.539Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T06:07:36.391Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T06:08:06.755Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T06:08:37.326Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T06:09:08.069Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "10ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T06:09:38.706Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T06:10:09.251Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T06:10:39.662Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "8ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T06:11:09.994Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T06:11:40.119Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T06:12:10.217Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T06:12:40.318Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T06:13:10.418Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T06:13:40.523Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T06:14:10.630Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T06:14:40.823Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T06:15:10.979Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T06:15:41.093Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T06:16:11.182Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T06:16:41.296Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T06:17:11.395Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T06:17:41.502Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T06:18:11.607Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T06:18:41.709Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T06:19:11.806Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T06:19:41.895Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T06:20:11.982Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T06:20:42.095Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T06:21:12.186Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T06:21:42.275Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T06:22:12.384Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T06:22:42.491Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T06:23:12.596Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T06:23:42.677Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T06:24:12.773Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T06:24:42.880Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T06:25:12.967Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T06:25:43.056Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T06:26:13.140Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T06:26:43.239Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T06:27:13.337Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T06:27:43.429Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T06:28:13.536Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T06:28:43.655Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T06:29:13.744Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T06:29:43.841Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T06:30:13.913Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T06:30:43.996Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T06:31:14.084Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T06:31:44.281Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T06:32:14.405Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T06:32:44.537Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T06:33:14.629Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T06:33:44.741Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T06:34:14.835Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T06:34:44.960Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T06:35:15.115Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T06:35:45.224Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T06:36:15.327Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T06:36:45.434Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T06:37:15.562Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T06:37:45.654Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T06:38:15.737Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T06:38:45.834Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T06:39:15.932Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T06:39:46.028Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T06:40:16.134Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T06:40:46.212Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T06:41:16.299Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T06:41:46.372Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T06:42:16.476Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T06:42:46.581Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T06:43:16.686Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T06:43:46.781Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T06:44:16.867Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T06:44:46.978Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "11ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T06:45:17.080Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T06:45:47.171Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T06:46:17.252Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T06:46:47.322Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T06:47:17.411Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T06:47:47.505Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T06:48:17.605Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T06:48:47.706Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T06:49:17.809Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T06:49:47.900Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T06:50:17.989Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T06:50:48.075Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T06:51:18.160Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T06:51:48.272Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T06:52:18.364Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T06:52:48.460Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T06:53:18.551Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T06:53:48.667Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T07:10:12.827Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T07:41:16.360Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T08:30:40.218Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "14ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T09:26:41.956Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T10:04:14.308Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T10:56:59.218Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T12:03:13.798Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T12:41:30.210Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T13:59:07.673Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T15:11:19.311Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T15:21:31.143Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T16:28:47.620Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T17:43:28.120Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T18:53:37.592Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T19:54:23.258Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T20:54:45.052Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T21:30:50.200Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T21:31:20.352Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T21:31:50.677Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T21:32:20.793Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T21:32:50.928Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T21:33:21.008Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T21:33:51.144Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "6ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T21:34:21.222Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T21:34:51.337Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T21:35:21.426Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T21:35:51.526Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T21:36:21.608Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T21:36:51.777Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T21:37:21.881Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T21:37:51.978Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T21:38:22.070Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T21:38:52.155Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T21:39:22.252Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T21:39:52.350Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T21:40:22.450Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T21:40:52.537Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T21:41:22.631Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T21:41:52.743Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T21:42:22.852Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T21:42:52.957Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T21:43:23.059Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T21:43:53.161Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T21:44:23.255Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T21:44:53.351Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T21:45:23.459Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T21:45:53.566Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T21:46:23.662Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T21:46:53.796Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T21:47:23.896Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T21:47:54.010Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T21:48:24.102Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T21:48:54.199Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T21:49:24.289Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T21:49:54.379Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T21:50:24.482Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T21:50:54.582Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T21:51:24.682Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T21:51:54.763Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T21:52:24.854Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T21:52:54.961Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T21:53:25.059Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T21:53:55.153Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T21:54:25.240Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T21:54:55.327Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T21:55:25.414Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T21:55:55.507Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T21:56:25.589Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T21:56:55.682Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T21:57:25.770Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T21:57:55.857Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T21:58:25.949Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T21:58:56.034Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T21:59:26.122Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T21:59:56.230Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T22:00:26.319Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T22:00:56.407Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T22:01:26.510Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T22:01:56.604Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T22:02:26.687Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T22:02:56.783Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T22:03:26.878Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T22:03:56.966Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T22:04:27.053Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T22:04:57.141Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T22:05:27.229Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T22:05:57.332Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T22:06:27.417Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T22:06:57.513Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T22:07:27.611Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T22:07:57.719Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T22:08:27.826Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "8ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T22:08:57.935Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T22:09:28.023Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T22:09:58.115Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T22:10:28.205Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T22:10:58.288Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T22:11:28.392Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T22:11:58.483Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T22:12:28.570Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T22:12:58.677Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T22:13:28.773Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T22:13:58.874Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T22:14:28.961Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T22:14:59.055Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T22:15:29.147Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T22:15:59.243Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T22:16:29.340Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T22:16:59.434Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T22:17:29.531Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T22:17:59.646Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T22:18:29.744Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T22:18:59.848Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T22:19:29.956Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T22:20:00.040Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T22:20:30.124Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T22:21:00.219Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T22:21:30.318Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T22:22:00.409Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T22:22:30.469Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T22:23:00.535Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T22:23:30.621Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T22:24:00.717Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T22:24:30.820Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T22:25:00.915Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T22:25:31.031Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T22:26:01.129Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T22:26:31.221Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T22:27:01.348Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T22:27:31.434Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T22:28:01.543Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T22:28:31.626Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T22:29:01.719Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T22:29:31.824Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T22:30:01.914Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T22:30:32.017Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T22:31:02.126Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T22:31:32.204Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T22:32:02.318Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T22:32:32.408Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T22:33:02.506Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T22:33:32.598Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T22:34:02.719Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T22:34:32.810Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "5ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T22:35:02.905Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T22:35:33.015Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T22:36:03.112Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T22:36:33.197Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T22:37:03.291Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T22:37:33.385Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T22:38:03.480Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T22:38:33.562Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T22:39:03.661Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T22:39:33.759Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T22:40:03.852Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T22:40:33.959Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T22:41:04.042Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T22:41:34.120Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T22:42:04.211Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T22:42:34.302Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T22:43:04.394Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T22:43:34.468Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T22:44:04.556Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T22:44:34.634Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T22:45:04.721Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T22:45:34.813Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T22:46:04.902Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T22:46:34.980Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T22:47:05.065Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T22:47:35.158Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T22:48:05.246Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T22:48:35.334Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T22:49:05.415Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T22:49:35.493Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T22:50:05.602Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T22:50:35.699Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T22:51:05.791Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T22:51:35.880Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T22:52:05.983Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T22:52:36.073Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T22:53:06.164Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T22:53:36.252Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T22:54:06.338Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T22:54:36.419Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T22:55:06.511Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T22:55:36.595Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T22:56:06.687Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T22:56:36.776Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T22:57:06.887Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T22:57:36.983Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T22:58:07.083Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T22:58:37.177Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T22:59:07.265Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T22:59:37.366Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T23:00:07.468Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T23:00:37.548Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T23:01:07.640Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T23:01:37.742Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T23:02:07.834Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T23:02:37.931Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T23:03:08.022Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T23:03:38.117Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T23:04:08.203Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T23:04:38.328Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T23:05:08.421Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T23:05:38.562Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T23:06:08.664Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T23:06:38.758Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T23:07:08.853Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T23:07:38.959Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T23:08:09.047Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T23:08:39.136Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T23:09:09.218Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T23:09:39.307Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T23:10:09.403Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T23:10:39.497Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T23:11:09.584Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T23:11:39.681Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T23:12:09.780Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T23:12:39.857Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T23:13:09.975Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T23:13:40.056Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T23:14:10.137Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T23:14:40.211Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T23:15:10.303Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T23:15:40.391Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T23:16:10.489Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T23:16:40.587Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T23:17:10.684Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T23:17:40.765Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T23:18:10.864Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T23:18:44.863Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T23:19:14.967Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T23:25:59.503Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T23:26:29.598Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T23:26:59.693Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T23:27:29.775Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T23:27:59.906Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T23:28:30.004Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T23:29:00.091Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T23:29:30.180Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T23:30:00.284Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T23:30:30.376Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T23:31:00.472Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T23:31:30.561Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T23:32:00.677Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T23:32:30.770Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T23:33:00.867Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T23:33:30.966Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T23:34:01.059Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T23:34:31.152Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T23:35:01.243Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T23:35:31.333Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T23:36:01.423Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T23:36:31.513Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T23:37:01.584Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T23:37:31.641Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T23:38:01.708Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T23:38:31.761Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T23:39:01.813Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T23:39:31.888Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T23:40:01.951Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T23:40:32.004Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T23:41:02.057Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T23:41:32.108Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T23:42:02.160Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T23:42:32.213Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T23:43:02.275Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T23:43:32.327Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T23:44:02.379Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T23:44:32.431Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T23:45:02.482Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T23:45:32.542Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T23:46:02.595Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T23:46:32.647Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T23:47:02.699Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T23:47:32.751Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T23:48:02.803Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T23:48:32.853Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T23:49:02.904Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T23:49:32.955Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T23:50:03.006Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T23:50:33.061Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T23:51:03.112Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T23:51:33.163Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T23:52:03.214Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T23:52:33.269Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T23:53:03.323Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T23:53:33.382Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T23:54:03.458Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T23:54:33.517Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T23:55:03.572Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T23:55:33.625Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T23:56:03.682Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T23:56:33.740Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T23:57:03.792Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T23:57:33.858Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T23:58:45.077Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T23:59:15.128Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-14T23:59:45.196Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T00:00:15.264Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T00:00:45.326Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T00:01:15.383Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T00:01:45.449Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T00:02:15.524Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T00:02:45.589Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T00:03:15.654Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T00:03:45.731Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T00:04:15.812Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T00:04:45.901Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T00:05:15.992Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T00:05:46.071Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T00:06:16.157Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T00:06:46.248Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T00:07:16.343Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T00:07:46.446Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T00:08:16.526Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T00:08:46.617Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T00:09:16.704Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T00:09:46.805Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T00:10:16.892Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T00:10:46.976Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T00:11:17.053Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T00:11:47.143Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T00:12:17.227Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T00:12:47.328Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T00:13:17.410Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T00:13:47.502Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T00:14:17.601Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T00:14:47.698Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T00:15:17.781Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T00:15:47.877Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T00:20:55.230Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T00:21:25.316Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T00:21:55.425Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T00:22:25.511Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T00:22:55.597Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T00:23:25.670Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T00:23:55.780Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T00:24:25.907Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T00:24:55.996Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T00:25:26.093Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T00:25:56.178Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T00:26:26.274Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T00:26:56.371Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T00:27:26.458Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T00:27:56.521Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T00:28:26.614Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T00:28:56.692Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T00:29:26.785Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T00:29:56.871Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T00:30:26.953Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T00:30:57.037Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T00:31:27.128Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T00:31:57.216Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T00:32:40.949Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T00:33:11.042Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T00:33:41.143Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T00:34:11.236Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T00:34:41.320Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T00:35:11.412Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T00:35:41.521Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T00:36:11.610Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T00:36:41.700Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T00:37:11.782Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T00:37:41.874Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T00:38:11.964Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T00:38:42.062Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T00:39:12.145Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T00:39:42.224Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T00:40:12.323Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T00:40:42.440Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T00:41:12.522Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T00:41:42.621Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T00:42:12.704Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T00:42:42.785Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T00:43:12.891Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T00:43:43.005Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T00:44:13.119Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T00:44:43.212Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T00:45:13.354Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T00:45:43.461Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T00:46:13.571Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T00:46:43.660Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T00:47:13.751Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T00:48:20.470Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T00:48:50.607Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T00:49:20.703Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T00:49:50.783Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T00:50:20.880Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T00:50:50.969Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T00:51:21.051Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T00:54:06.518Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T00:54:36.631Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T00:55:06.723Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T00:55:36.831Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T00:56:06.922Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T00:56:37.016Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T00:57:07.120Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T00:57:37.213Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T00:58:07.326Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T00:58:37.417Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T01:02:16.068Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T01:03:15.870Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T01:03:45.982Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T01:04:16.079Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T01:04:46.171Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T01:05:16.251Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T01:05:46.349Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T01:06:16.447Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T01:06:46.549Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T01:07:16.634Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T01:07:46.723Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T01:08:16.809Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T01:09:15.938Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T01:09:46.038Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T01:10:16.120Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T01:10:46.227Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T01:11:16.327Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T01:11:46.425Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T01:12:16.516Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T01:12:46.607Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T01:13:16.695Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T01:13:46.796Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T01:14:16.891Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T01:14:46.977Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T01:15:17.057Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T01:15:55.181Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T01:16:25.290Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T01:16:55.384Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T01:17:25.471Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T01:17:55.584Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T01:18:25.686Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T01:18:55.774Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T01:19:25.870Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T01:19:55.960Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T01:20:26.054Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T01:20:56.147Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T01:21:26.248Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T01:21:56.350Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T01:22:26.444Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T01:22:56.540Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T01:23:26.639Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T01:23:56.734Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T01:24:26.853Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T01:24:56.955Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T01:25:27.051Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T01:25:57.151Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T01:26:27.255Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T01:26:57.357Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T01:27:27.449Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T01:27:57.543Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T01:28:27.634Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T01:28:57.732Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T01:29:27.825Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T01:29:57.958Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T01:30:28.069Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T01:30:58.155Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T01:31:28.255Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T01:31:58.345Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T01:32:28.426Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T01:32:58.510Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T01:33:28.583Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T01:33:58.669Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T01:34:28.760Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T01:34:58.862Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T01:35:28.955Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T01:35:59.033Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T01:36:29.122Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T01:36:59.215Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T01:37:29.330Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T01:37:59.415Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T01:38:29.520Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T01:38:59.624Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T01:39:29.720Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T01:39:59.807Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T01:40:29.925Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T01:41:00.008Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T01:41:30.103Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T01:42:00.219Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T01:42:30.329Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T01:43:00.422Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T01:43:30.505Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T01:44:00.618Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T01:44:30.738Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T01:45:00.866Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T01:45:30.985Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T01:46:01.091Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T01:46:31.182Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T01:47:01.285Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T01:47:31.365Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T01:48:01.477Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T01:48:31.562Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T01:49:01.671Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T01:49:31.793Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T01:50:01.898Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T01:50:32.013Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T01:51:02.105Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T01:51:32.209Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T01:52:02.309Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T01:52:32.402Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T01:53:02.499Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T01:53:32.601Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T01:54:02.691Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T01:54:32.793Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T01:55:02.878Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T01:55:32.984Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T01:56:03.074Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T01:56:33.167Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T01:57:03.257Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T01:57:33.363Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T01:58:03.452Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T01:58:33.560Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T01:59:03.652Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T01:59:33.799Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T02:00:03.892Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T02:00:34.003Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T02:01:04.102Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T02:01:34.187Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T02:02:04.289Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T02:02:34.385Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T02:03:04.482Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T02:03:34.594Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T02:04:04.701Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T02:10:40.226Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T02:11:10.325Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T02:11:40.410Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T02:12:10.516Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T02:12:40.604Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T02:13:10.698Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T02:13:40.798Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T02:14:10.887Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T02:14:40.975Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T02:15:11.067Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T02:15:41.222Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T02:21:19.261Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T02:21:49.346Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T02:22:19.433Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T02:22:49.522Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T02:23:19.618Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T02:31:44.878Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T02:38:08.211Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T02:42:30.438Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T02:43:00.534Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T02:43:30.645Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T02:44:00.811Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "6ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T02:46:22.392Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T02:46:52.489Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T02:47:22.594Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T02:47:52.685Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T02:48:22.776Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T02:48:52.869Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T02:49:22.975Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T02:49:53.073Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T02:50:23.161Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T02:50:53.256Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T02:51:23.347Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T02:51:53.435Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T02:52:23.534Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T02:52:53.631Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T02:53:23.731Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T02:53:53.822Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T02:54:23.911Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T02:54:54.007Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T02:55:24.106Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T02:55:54.191Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T02:56:24.284Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T02:56:54.371Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T02:57:24.467Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T02:57:54.561Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T02:58:24.655Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T02:58:54.748Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T02:59:24.846Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T02:59:54.937Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T03:00:25.028Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T03:00:55.119Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T03:01:25.204Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T03:01:55.270Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T03:02:25.365Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T03:02:55.460Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T03:03:25.550Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T03:03:55.643Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T03:04:25.736Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T03:04:55.826Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T03:05:25.931Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T03:05:56.022Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T03:06:26.109Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T03:06:56.198Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T03:07:26.310Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T03:07:56.396Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T03:08:26.498Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T03:08:56.588Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T03:09:26.679Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T03:09:56.774Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T03:10:26.865Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T03:10:56.950Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T03:11:27.030Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T03:11:57.129Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T03:12:27.263Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T03:12:57.349Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T03:13:27.437Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T03:13:57.533Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T03:14:27.635Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T03:14:57.751Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T03:15:27.839Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T03:15:57.936Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T03:16:28.028Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T03:16:58.147Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T03:17:28.249Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T03:17:58.345Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T03:18:28.435Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T03:18:58.532Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T03:19:28.624Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T03:19:58.706Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T03:20:28.817Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T03:20:58.902Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T03:21:29.008Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T03:21:59.114Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T03:22:29.202Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T03:22:59.314Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T03:23:29.427Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T03:23:59.527Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T03:24:29.621Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T03:24:59.730Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T03:25:29.827Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T03:25:59.924Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T03:26:30.012Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T03:27:00.114Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T03:27:30.292Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T03:28:00.395Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T03:28:30.482Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T03:29:00.579Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T03:29:30.686Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T03:30:00.772Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T03:30:30.854Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T03:31:00.944Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T03:31:31.025Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T03:32:01.115Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T03:32:31.202Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T03:33:01.286Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T03:33:31.369Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T03:34:01.460Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T03:34:31.562Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T03:35:01.727Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T03:35:31.850Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T03:36:01.942Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T03:36:32.038Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T03:37:02.124Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T03:37:32.212Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T03:38:02.294Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T03:38:32.384Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T03:39:02.467Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T03:39:32.556Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T03:40:02.647Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T03:40:32.725Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T03:41:02.813Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T03:41:32.900Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T03:42:02.985Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T03:42:33.065Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T03:43:03.153Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T03:43:33.239Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T03:44:03.350Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T03:44:33.437Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T03:45:03.528Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T03:45:33.622Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T03:46:03.703Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T03:46:33.798Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T03:52:45.920Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T03:57:16.582Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T03:57:46.670Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T03:58:16.769Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T03:58:46.877Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T04:01:24.074Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T04:01:54.136Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T04:02:24.238Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T04:02:54.334Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T04:03:24.443Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T04:03:54.541Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T04:04:24.627Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T04:04:54.726Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T04:05:24.826Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T04:05:54.894Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T04:06:25.009Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T04:06:55.103Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T04:07:25.198Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T04:07:55.283Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T04:08:25.368Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T04:08:55.457Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T04:09:25.542Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T04:09:55.621Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T04:10:25.717Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T04:10:55.826Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T04:11:51.694Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T04:12:21.789Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T04:12:51.882Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T04:13:21.972Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T04:13:52.059Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T04:14:22.151Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T04:14:52.248Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T04:15:22.340Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T04:15:52.433Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T04:16:22.516Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T04:16:52.615Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T04:20:49.750Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T04:21:19.844Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T04:21:49.953Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T04:22:20.053Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T04:22:50.145Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T04:23:20.231Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T04:23:50.301Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T04:24:20.390Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T04:25:57.564Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T04:27:38.195Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T04:28:08.271Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T04:28:38.356Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T04:29:08.441Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T04:29:38.525Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T04:30:08.613Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T04:30:38.706Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T04:31:08.798Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T04:31:38.888Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T04:32:08.973Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T04:32:39.070Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T04:33:09.166Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T04:33:39.276Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T04:34:09.368Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T04:34:39.502Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T04:35:09.600Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T04:35:39.690Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T04:36:09.779Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T04:36:39.863Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T04:37:09.980Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T04:37:40.065Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T04:38:10.159Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T04:38:40.257Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T04:39:10.351Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T04:39:40.431Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T04:40:10.513Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T04:40:40.602Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T04:41:10.686Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T04:41:40.768Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T04:42:10.856Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T04:42:40.944Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T04:43:11.034Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T04:43:41.125Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T04:44:11.214Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T04:44:41.296Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T04:45:11.376Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T04:45:41.461Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T04:46:11.548Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T04:46:41.656Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T04:47:11.752Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T04:47:41.843Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T04:48:11.934Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T04:48:42.025Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T04:49:12.099Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T04:49:42.183Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T04:50:12.268Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T04:50:42.364Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T04:51:12.457Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T04:51:42.542Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T04:52:12.630Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T04:52:42.727Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T04:53:12.833Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T04:53:42.918Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T04:54:13.016Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T04:54:43.108Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T04:55:13.193Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T04:55:43.282Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T04:56:13.382Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T04:56:43.495Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T04:57:13.587Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T04:57:43.677Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T04:58:13.775Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T04:58:43.867Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T04:59:13.956Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T04:59:44.035Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T05:00:14.131Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T05:00:44.214Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T05:01:14.305Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T05:01:44.391Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T05:02:14.468Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T05:02:44.571Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T05:03:14.665Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T05:03:44.753Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T05:04:14.851Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T05:04:44.949Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T05:05:15.044Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T05:05:45.145Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T05:06:15.237Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T05:06:45.333Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T05:07:15.434Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T05:07:45.603Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T05:08:15.712Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T05:08:45.810Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T05:09:15.927Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T05:09:46.011Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T05:10:16.110Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T05:10:46.218Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T05:11:16.294Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T05:11:46.351Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T05:12:16.432Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T05:12:46.523Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T05:13:16.607Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T05:13:46.720Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T05:14:16.806Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T05:14:46.905Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T05:15:16.989Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T05:15:47.085Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T05:16:17.186Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T05:16:47.275Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T05:17:17.366Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T05:17:47.478Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T05:18:17.572Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T05:18:47.665Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T05:19:17.742Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T05:19:47.838Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T05:20:17.921Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T05:20:48.008Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T05:21:18.092Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T05:21:48.189Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T05:22:18.292Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T05:22:48.375Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T05:23:18.465Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T05:23:48.565Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T05:24:18.663Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T05:24:48.750Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T05:25:18.851Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T05:25:48.953Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T05:26:19.052Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T05:26:49.138Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T05:27:19.217Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T05:27:49.312Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T05:28:19.407Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T05:28:49.504Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T05:29:19.600Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T05:29:49.712Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T05:30:19.823Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T05:30:49.921Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T05:31:20.005Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T05:31:50.096Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T05:32:20.185Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T05:32:50.287Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T05:33:20.370Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T05:33:50.485Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T05:34:20.576Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T05:34:50.666Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T05:35:20.770Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T05:35:50.859Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T05:36:20.951Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T05:36:51.076Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T05:37:21.184Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T05:37:51.295Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T05:38:21.398Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T05:38:51.488Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T05:39:21.592Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T05:43:28.596Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T05:43:58.700Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T05:44:28.809Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T05:44:58.912Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T05:45:29.015Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T05:45:59.099Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T05:46:29.189Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T05:46:59.275Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T05:47:29.398Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T05:52:36.520Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T05:53:06.626Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T05:53:36.730Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T05:54:06.830Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T05:54:36.926Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T05:55:07.021Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T05:55:37.269Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "5ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T05:56:07.387Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T05:56:37.486Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T05:57:07.579Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T05:57:37.673Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T05:58:07.771Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T05:59:11.720Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T05:59:41.804Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T06:00:11.904Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T06:00:42.003Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T06:01:12.113Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T06:01:42.200Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T06:02:12.320Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T06:02:45.148Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T06:03:15.243Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T06:03:45.338Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T06:04:15.434Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T06:04:45.522Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T06:05:15.607Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T06:05:45.705Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T06:06:15.793Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T06:06:45.884Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T06:07:15.976Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T06:07:46.065Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T06:08:16.159Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T06:08:46.257Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T06:09:16.348Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T06:09:46.441Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T06:10:16.550Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T06:10:46.652Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T06:11:16.743Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T06:11:46.838Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T06:12:16.929Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T06:12:47.019Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T06:13:17.112Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T06:13:47.222Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T06:14:17.312Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T06:14:47.401Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T06:15:17.482Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T06:15:47.571Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T06:16:17.671Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T06:16:47.784Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T06:17:17.884Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T06:17:47.987Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T06:18:18.083Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T06:18:48.180Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T06:19:18.273Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T06:19:48.368Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T06:20:18.458Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T06:20:48.543Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T06:21:18.633Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T06:21:48.720Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T06:22:18.822Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T06:22:48.935Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T06:23:19.026Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T06:23:49.145Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T06:24:19.233Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T06:24:49.322Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T06:25:19.405Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T06:25:49.536Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T06:26:19.632Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T06:26:49.736Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T06:27:19.810Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T06:27:49.900Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T06:28:20.001Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T06:28:50.090Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T06:29:20.196Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T06:29:50.302Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T06:30:20.395Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T06:30:50.505Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T06:31:20.626Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T06:31:50.753Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T06:32:20.847Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T06:32:50.957Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T06:33:21.053Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T06:33:51.168Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T06:34:21.248Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T06:34:51.342Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T06:35:21.431Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T06:35:51.548Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T06:36:21.637Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T06:36:51.738Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T06:37:21.858Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T06:37:51.957Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T06:38:22.059Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T06:38:52.150Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T06:39:22.241Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T06:39:52.362Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T06:40:22.461Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T06:40:52.561Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T06:41:22.655Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T06:41:52.767Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T06:42:22.962Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T06:42:53.055Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T06:43:23.138Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T06:43:53.249Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T06:44:23.342Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T06:44:53.439Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T06:45:23.959Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "6ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T06:46:04.111Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T06:46:34.249Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T06:47:04.343Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T06:47:34.438Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T06:48:04.545Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T06:48:34.613Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T06:49:04.720Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T06:49:34.764Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T06:50:04.818Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T06:50:34.860Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T06:51:04.907Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T06:51:34.952Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T06:52:05.007Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T06:52:35.060Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T06:53:05.104Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T06:53:35.156Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T06:54:05.246Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T06:54:35.290Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T06:55:05.336Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T06:55:35.401Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T06:56:05.476Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T06:56:35.571Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T07:03:21.316Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T08:07:52.721Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T08:57:51.556Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T09:25:10.222Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T09:35:05.176Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T09:58:48.763Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T10:41:05.400Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T11:45:37.677Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T12:11:08.748Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T13:18:50.425Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T14:29:05.884Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T14:46:46.972Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T15:54:17.727Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T16:42:23.902Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T17:59:07.960Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T18:50:04.219Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T20:03:47.030Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T21:16:10.560Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T21:29:20.597Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T21:29:50.671Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T21:30:20.750Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T21:30:50.906Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T21:31:21.001Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T21:31:51.090Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T21:32:21.191Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T21:32:51.280Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T21:33:21.368Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T21:33:51.451Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T21:34:21.536Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T21:34:51.636Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T21:35:21.724Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T21:35:51.812Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T21:36:21.902Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T21:36:52.006Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T21:37:22.103Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T21:37:52.187Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T21:38:22.276Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T21:38:52.369Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T21:39:22.462Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T21:39:52.561Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T21:40:22.655Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T21:40:52.745Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T21:41:22.832Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T21:41:52.922Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T21:42:23.018Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T21:42:53.109Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T21:43:23.200Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T21:43:53.298Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T21:44:23.392Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T21:44:53.487Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T21:45:23.577Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T21:45:53.667Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T21:46:23.752Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T21:46:53.841Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T21:47:23.935Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T21:47:54.014Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T21:48:24.107Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T21:48:54.201Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T21:49:24.290Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T21:49:54.377Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T21:50:24.464Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T21:50:54.553Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T21:51:24.628Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T21:51:54.727Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T21:52:24.825Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T21:52:54.933Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T21:53:25.032Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T21:53:55.134Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T21:54:25.227Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T21:54:55.308Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T21:55:25.408Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T21:55:55.493Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T21:56:25.572Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T21:56:55.679Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T21:57:25.763Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T21:57:55.859Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T21:58:25.945Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T21:58:56.030Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T21:59:26.133Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T21:59:56.230Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T22:00:26.325Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T22:00:56.418Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T22:01:26.511Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T22:01:56.602Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T22:02:26.692Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T22:02:56.787Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T22:03:26.884Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T22:03:56.977Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T22:04:27.058Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T22:04:57.165Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T22:05:27.259Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T22:05:57.349Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T22:06:27.479Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T22:06:57.574Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T22:07:27.667Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T22:07:57.758Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T22:08:27.860Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T22:08:57.960Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T22:09:28.063Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T22:09:58.170Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T22:10:28.272Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T22:10:58.379Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T22:11:28.478Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T22:11:58.566Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T22:12:28.668Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T22:12:58.765Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T22:13:28.869Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T22:13:58.936Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T22:14:29.033Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T22:14:59.175Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T22:15:29.267Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T22:15:59.388Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T22:16:29.482Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T22:16:59.578Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T22:17:29.695Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T22:17:59.792Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T22:18:29.903Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T22:18:59.997Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T22:19:30.092Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T22:20:00.211Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T22:20:30.301Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T22:21:00.428Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T22:21:30.533Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T22:22:00.648Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T22:22:30.747Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T22:23:00.854Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T22:23:30.955Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T22:24:01.041Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T22:24:31.135Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T22:25:01.237Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T22:25:31.339Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T22:26:01.416Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T22:26:31.484Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T22:27:01.576Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T22:27:31.667Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T22:28:01.757Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T22:28:31.867Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T22:29:01.989Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T22:29:32.087Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T22:30:02.217Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "5ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T22:30:32.279Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T22:31:02.430Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T22:31:32.527Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T22:32:02.635Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T22:32:32.732Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T22:33:02.844Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T22:33:32.933Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T22:34:03.020Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T22:34:33.150Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T22:35:03.254Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T22:35:33.355Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T22:36:03.440Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T22:36:33.540Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T22:37:03.634Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T22:37:33.724Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T22:38:03.812Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T22:38:33.894Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T22:39:04.008Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T22:39:34.101Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T22:40:04.200Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T22:40:34.313Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T22:41:04.414Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T22:41:34.504Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T22:42:04.608Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T22:42:34.703Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T22:43:04.808Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T22:43:34.900Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T22:44:04.988Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T22:44:35.081Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T22:45:05.184Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T22:45:35.274Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T22:46:05.360Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T22:46:35.466Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T22:47:05.561Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T22:47:35.667Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T22:48:05.759Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T22:48:35.871Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T22:49:05.964Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T22:49:36.044Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T22:50:06.151Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T22:50:36.241Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T22:51:06.331Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T22:51:36.415Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T22:52:06.509Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T22:52:36.598Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T22:53:06.693Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T22:53:36.794Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T22:54:06.886Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T22:54:36.986Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T22:55:07.107Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T22:55:37.202Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T22:56:07.300Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T22:56:37.385Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T22:57:07.473Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T22:57:37.580Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T22:58:07.643Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T22:58:37.721Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T22:59:07.775Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T22:59:37.853Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T23:00:07.911Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T23:00:38.008Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T23:01:08.086Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T23:01:38.178Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T23:02:08.258Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T23:02:38.350Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T23:03:08.458Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T23:03:38.545Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T23:04:08.630Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T23:04:38.739Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T23:05:08.848Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T23:05:38.953Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T23:06:09.051Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T23:06:39.147Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T23:07:09.259Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T23:07:39.370Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T23:08:09.473Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T23:08:39.587Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T23:09:09.730Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T23:09:39.840Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T23:10:09.977Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T23:10:40.093Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T23:11:10.203Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T23:11:40.329Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "6ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T23:12:10.417Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T23:12:40.513Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T23:13:10.616Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T23:13:40.727Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T23:14:10.826Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T23:14:40.922Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T23:15:11.019Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T23:15:41.122Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T23:16:11.210Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T23:16:41.300Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T23:17:11.402Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T23:17:41.491Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T23:18:11.572Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T23:18:41.659Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T23:19:11.769Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T23:19:41.858Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T23:20:11.957Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T23:20:42.055Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T23:21:12.134Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T23:21:42.217Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T23:22:12.308Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T23:22:42.398Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T23:23:12.490Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T23:23:42.588Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T23:24:12.673Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T23:24:42.767Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T23:25:12.864Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T23:25:42.972Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T23:26:13.058Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T23:26:43.146Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T23:27:13.251Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T23:27:43.361Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T23:28:13.456Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T23:28:43.540Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T23:29:13.655Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T23:29:43.752Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T23:30:13.835Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T23:30:43.924Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T23:31:14.014Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T23:31:44.111Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T23:32:14.211Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T23:32:44.315Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T23:33:14.424Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T23:33:44.515Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T23:34:14.630Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T23:34:44.715Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T23:35:14.814Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T23:35:44.907Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T23:36:15.000Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T23:36:45.090Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T23:37:15.181Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T23:37:45.296Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T23:38:15.385Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T23:38:45.477Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T23:39:15.583Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T23:39:45.676Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T23:40:15.778Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T23:40:45.863Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T23:41:15.970Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T23:41:46.070Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T23:42:16.161Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T23:42:46.266Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T23:43:16.366Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T23:43:46.466Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T23:44:16.562Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T23:44:46.722Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T23:45:16.823Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T23:45:46.918Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T23:46:17.014Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T23:46:47.123Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T23:47:17.223Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T23:47:47.316Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T23:48:17.399Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T23:48:47.499Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T23:49:17.588Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T23:49:47.678Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T23:50:17.808Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T23:50:47.900Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T23:51:18.001Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T23:51:48.116Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T23:52:18.215Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T23:52:48.315Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T23:53:18.426Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T23:53:48.524Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T23:54:18.620Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T23:54:48.731Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T23:55:18.830Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T23:55:48.934Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T23:56:19.029Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T23:56:49.132Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T23:57:19.232Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T23:57:49.318Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T23:58:19.407Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T23:58:49.518Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T23:59:19.613Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-15T23:59:49.702Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T00:00:19.827Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T00:00:49.920Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T00:01:20.005Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T00:01:50.173Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T00:02:20.369Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T00:02:50.466Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T00:03:20.572Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T00:03:50.665Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T00:04:20.778Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T00:04:50.867Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T00:05:20.967Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T00:05:51.068Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T00:06:21.182Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T00:06:51.278Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T00:07:21.371Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T00:07:51.480Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T00:08:21.579Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T00:08:51.680Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T00:09:21.788Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T00:09:51.913Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T00:10:22.011Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T00:10:52.098Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T00:11:22.205Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T00:11:52.303Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T00:12:22.408Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T00:12:52.502Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T00:13:22.588Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T00:13:52.690Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T00:14:22.794Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T00:14:52.921Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T00:15:23.031Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T00:15:53.116Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T00:16:23.239Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T00:16:53.319Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T00:17:23.426Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T00:17:53.522Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T00:18:23.613Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T00:18:53.707Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T00:19:23.801Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T00:19:53.894Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T00:20:23.999Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T00:20:54.090Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T00:21:24.180Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T00:21:54.268Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T00:22:24.353Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T00:22:54.437Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T00:23:24.540Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T00:23:54.635Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T00:24:24.726Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T00:24:54.818Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T00:25:24.902Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T00:25:55.001Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T00:26:25.090Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T00:26:55.197Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T00:27:25.296Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T00:27:55.382Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T00:28:25.472Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T00:28:55.540Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T00:29:25.635Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T00:29:55.721Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T00:30:25.809Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T00:30:55.904Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T00:31:26.012Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T00:31:56.076Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T00:32:26.147Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T00:32:56.237Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T00:33:26.324Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T00:33:56.410Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T00:34:26.527Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T00:34:56.605Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T00:35:26.712Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T00:35:56.800Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T00:36:26.923Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T00:36:57.036Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T00:37:27.130Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T00:37:57.227Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T00:38:27.325Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T00:38:57.420Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T00:39:27.516Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T00:39:57.624Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T00:40:27.717Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T00:40:57.805Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T00:41:27.911Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T00:41:58.001Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T00:42:28.112Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T00:42:58.209Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T00:43:28.297Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T00:43:58.389Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T00:44:28.490Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T00:44:58.578Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T00:45:28.672Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T00:45:58.770Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T00:46:28.864Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T00:46:58.964Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T00:47:29.058Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T00:47:59.149Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T00:55:02.306Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T00:56:44.887Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T00:57:14.995Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T01:09:12.253Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T01:09:42.552Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T01:26:11.000Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T01:26:41.091Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T01:27:11.179Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T01:27:41.269Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T01:29:22.025Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T01:29:52.125Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T01:35:05.876Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T01:36:48.644Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T01:37:18.727Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T01:39:18.408Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T01:39:48.510Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T01:40:18.603Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T01:40:48.696Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T01:41:18.798Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T01:41:48.889Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T01:42:18.987Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T01:42:49.081Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T01:43:19.178Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T01:43:49.271Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T01:44:19.366Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T01:47:03.330Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T01:47:33.416Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T01:48:03.529Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T01:48:33.638Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T01:49:03.720Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T01:49:33.802Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T01:50:03.897Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T01:50:33.991Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T01:51:04.071Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T01:51:34.162Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T01:52:04.259Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T01:52:34.342Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T01:53:04.425Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T01:53:34.511Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T01:54:04.601Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T01:54:34.686Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T01:55:04.781Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T01:55:34.874Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T01:56:04.953Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T01:56:35.055Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T01:57:05.144Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T01:57:35.236Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T01:58:05.326Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T01:58:35.563Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T02:02:34.269Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T02:03:04.374Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T02:03:34.518Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T02:04:04.658Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T02:04:34.829Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T02:05:04.931Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T02:05:35.078Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T02:06:05.194Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T02:06:35.282Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T02:07:05.367Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T02:07:35.418Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T02:08:05.550Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T02:15:09.724Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T02:16:52.459Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T02:17:22.566Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T02:24:06.572Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T02:25:31.619Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T02:26:01.734Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T02:35:09.373Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T02:36:52.809Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T02:37:22.925Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T02:38:13.881Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T02:40:26.077Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T02:40:56.160Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T02:42:14.416Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "8ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T02:42:44.516Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T02:43:14.611Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T02:43:44.768Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T02:44:14.924Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "6ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T02:44:45.025Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T02:45:15.137Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T02:45:45.237Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T02:46:15.357Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T02:46:45.462Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T02:47:15.598Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T02:47:45.702Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T02:48:15.815Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T02:48:45.938Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T02:49:16.026Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T02:49:46.130Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T02:50:16.243Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T02:50:46.344Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T02:51:16.453Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T02:51:46.541Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T02:52:16.641Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T02:52:46.743Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T02:53:16.818Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T02:53:59.029Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T02:54:29.122Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T02:54:59.237Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T02:55:29.326Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T02:55:59.427Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T02:56:29.525Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T02:56:59.613Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T02:57:29.700Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T02:57:59.802Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T02:58:29.884Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T02:58:59.978Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T02:59:30.086Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T03:00:00.221Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T03:00:30.315Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T03:01:00.407Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T03:01:30.502Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T03:02:00.630Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "6ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T03:02:30.726Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T03:03:00.857Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "14ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T03:03:30.942Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T03:04:01.053Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T03:04:31.145Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T03:05:01.258Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T03:05:31.360Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T03:06:01.454Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T03:06:31.585Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "5ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T03:07:01.672Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T03:07:31.764Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T03:08:01.883Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "10ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T03:08:31.985Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T03:09:02.092Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T03:09:32.204Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T03:10:02.316Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T03:10:32.420Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T03:11:02.508Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T03:11:32.606Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T03:12:02.719Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T03:12:32.837Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T03:13:02.929Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T03:13:33.073Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T03:14:03.165Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T03:14:33.284Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T03:15:03.382Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T03:15:33.478Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T03:16:03.563Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T03:16:33.665Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T03:17:03.744Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T03:17:33.849Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T03:18:03.937Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T03:18:34.025Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T03:19:04.158Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "9ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T03:19:34.264Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T03:20:04.365Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T03:20:34.458Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T03:21:04.583Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T03:21:34.685Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T03:22:04.786Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T03:22:34.864Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T03:23:04.970Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T03:23:35.083Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T03:24:05.179Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T03:24:35.268Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T03:25:05.354Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T03:25:35.468Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T03:26:05.563Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T03:26:35.647Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T03:27:05.757Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T03:27:35.849Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T03:28:05.937Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T03:28:36.029Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T03:29:06.128Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T03:30:54.140Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T03:31:24.240Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T03:31:54.364Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T03:32:24.488Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T03:32:54.575Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T03:33:24.672Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T03:33:54.765Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T03:34:24.841Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T03:34:54.936Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T03:35:25.040Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T03:35:55.139Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T03:36:25.237Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T03:36:55.323Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T03:37:25.411Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T03:37:55.507Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T03:38:25.613Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T03:38:56.205Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "13ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T03:39:26.828Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T03:39:57.341Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T03:40:28.068Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "11ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T03:40:58.730Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T03:41:28.969Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T03:41:59.068Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T03:42:29.152Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T03:42:59.234Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T03:43:29.369Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T03:43:59.452Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T03:44:29.716Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T03:45:00.408Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T03:45:31.827Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T03:46:01.949Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T03:46:32.056Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T03:47:02.154Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T03:47:32.258Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T03:48:02.341Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T03:48:32.421Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T03:49:02.860Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "6ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T03:49:33.254Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "5ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T03:50:03.364Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T03:50:33.537Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T03:51:03.645Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T03:51:33.723Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T03:52:03.822Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "7ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T03:52:33.930Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T03:53:04.011Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T03:53:34.087Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T03:54:04.164Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T03:54:34.253Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T03:55:04.363Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T04:03:05.738Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T04:03:35.866Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T04:05:19.412Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T04:05:49.518Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T04:06:19.596Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T04:06:49.661Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T04:07:19.790Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T04:07:49.885Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T04:08:19.964Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T04:08:50.041Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T04:09:20.138Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T04:09:50.233Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T04:10:20.371Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T04:10:50.454Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T04:11:20.590Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T04:11:50.718Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T04:12:20.890Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T04:12:50.985Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T04:13:21.141Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "24ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T04:13:51.256Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T04:14:21.365Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T04:14:51.453Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T04:15:21.572Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T04:15:51.659Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T04:16:21.768Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T04:16:51.869Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T04:17:21.979Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T04:17:52.096Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T04:18:22.187Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T04:18:52.277Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T04:19:22.396Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T04:19:52.491Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T04:20:22.627Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T04:20:52.736Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T04:21:22.853Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T04:21:52.944Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T04:22:23.039Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T04:22:53.125Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T04:23:23.244Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T04:23:53.335Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T04:24:23.421Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T04:24:53.531Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T04:25:23.636Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T04:25:53.748Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T04:26:23.850Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T04:26:53.948Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T04:27:24.068Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T04:27:54.174Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T04:28:24.262Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T04:28:54.383Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T04:29:24.517Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T04:29:54.607Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T04:30:24.730Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T04:30:54.832Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T04:31:24.979Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T04:31:55.084Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T04:32:25.215Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T04:32:55.339Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T04:33:25.432Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T04:33:55.529Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T04:34:25.628Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T04:34:55.726Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T04:35:25.799Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T04:35:55.887Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T04:36:26.002Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T04:36:56.131Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T04:37:26.236Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T04:37:56.351Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T04:38:26.451Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T04:38:56.591Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "15ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T04:39:26.695Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T04:39:56.789Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T04:40:26.882Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T04:40:57.007Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "8ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T04:41:27.108Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T04:41:57.195Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T04:42:27.326Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T04:42:57.422Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "6ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T04:43:27.531Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T04:43:57.634Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T04:44:27.740Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T04:44:57.864Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T04:45:28.034Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T04:45:58.138Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T04:46:28.256Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T04:46:58.372Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T04:47:28.494Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T04:47:58.626Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T04:48:28.726Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T04:48:58.818Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T04:49:28.917Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T04:49:59.048Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "6ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T04:50:29.186Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T04:50:59.287Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T04:51:29.403Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T04:51:59.534Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T04:52:29.635Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T04:52:59.751Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T04:53:29.850Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T04:53:59.980Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T04:54:30.073Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T04:55:00.221Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T04:55:30.315Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T04:56:00.419Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T04:56:30.511Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T04:57:00.614Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T04:57:30.729Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T04:58:00.916Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "16ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T04:58:31.039Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T04:59:01.133Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T04:59:31.257Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T05:00:01.353Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T05:00:31.446Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T05:01:01.586Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T05:01:31.688Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T05:02:01.793Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T05:02:31.900Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T05:03:02.009Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T05:03:32.161Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T05:04:02.260Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T05:04:32.388Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T05:05:02.559Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T05:05:32.723Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T05:06:02.815Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T05:06:32.910Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T05:07:03.009Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T05:07:33.106Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T05:08:03.200Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T05:08:33.284Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T05:09:03.391Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T05:09:33.509Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T05:10:03.618Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T05:10:33.735Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T05:11:03.867Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T05:11:34.005Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T05:12:04.168Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T05:12:47.978Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T05:13:18.123Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "7ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T05:13:48.225Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T05:14:18.332Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T05:14:48.425Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T05:15:18.508Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T05:15:48.605Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T05:16:18.672Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T05:16:48.771Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T05:17:18.850Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T05:17:48.954Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T05:18:19.033Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T05:18:49.131Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T05:19:19.236Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T05:21:01.425Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "10ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T05:21:31.549Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "5ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T05:22:01.657Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T05:22:31.761Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T05:23:01.856Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T05:29:07.150Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T05:29:37.253Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T05:31:13.236Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T05:31:43.331Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T05:32:13.446Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T05:33:07.392Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T05:33:37.496Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T05:41:28.395Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T05:41:58.642Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T05:47:45.260Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T05:48:39.862Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T05:51:09.535Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T05:52:54.004Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T05:53:24.098Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T06:02:53.751Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T06:03:23.889Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T06:03:53.982Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T06:04:24.122Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "5ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T06:04:54.216Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T06:05:24.328Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T06:05:54.417Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T06:06:24.539Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T06:06:54.651Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T06:07:24.824Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T06:07:54.923Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T06:08:25.056Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T06:08:55.203Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T06:09:25.354Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T06:09:55.503Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T06:10:25.632Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T06:10:55.755Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T06:11:25.848Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T06:11:55.943Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T06:12:26.034Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T06:12:56.118Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T06:13:26.222Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T06:13:56.351Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T06:14:26.485Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T06:14:56.574Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T06:15:26.668Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T06:15:56.787Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T06:16:26.884Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T06:16:56.980Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T06:17:27.076Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T06:17:57.170Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T06:18:27.256Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T06:18:57.363Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T06:19:27.455Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T06:19:57.543Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T06:20:27.629Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T06:20:57.729Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T06:21:27.816Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T06:21:57.974Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "5ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T06:22:28.066Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T06:22:58.156Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T06:23:28.255Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T06:23:58.346Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T06:24:28.426Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T06:24:58.525Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T06:25:28.632Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T06:25:58.721Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T06:26:28.798Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T06:26:58.863Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T06:27:28.930Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T06:27:59.003Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T06:28:29.083Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T06:28:59.160Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T06:29:29.245Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T06:29:59.342Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T06:30:29.428Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T06:30:59.526Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T06:31:29.648Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T06:31:59.749Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T06:32:29.861Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T06:32:59.969Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T06:33:30.034Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T06:34:00.128Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T06:34:30.224Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T06:35:00.308Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T06:35:30.403Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T06:36:00.497Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T06:36:30.582Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T06:37:00.670Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T06:37:30.771Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T06:38:00.858Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T06:38:30.954Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T06:39:01.041Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T06:39:31.126Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T06:40:01.195Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T06:40:31.259Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T06:41:01.328Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T06:41:31.405Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T06:42:01.504Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T06:42:31.595Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T06:43:01.679Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T06:43:31.772Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T06:44:01.891Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T06:44:31.978Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T06:45:02.089Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T06:45:32.163Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T06:46:02.237Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T06:46:32.308Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T06:47:02.424Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T06:47:32.515Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T06:48:02.599Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T06:48:32.688Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T06:49:02.781Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T06:49:32.871Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T06:50:02.965Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T06:50:33.053Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T06:51:03.137Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T06:51:33.227Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T06:52:03.304Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T06:52:33.379Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T06:53:03.464Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T06:53:33.549Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T06:54:03.645Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T06:54:33.727Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T06:55:03.815Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T06:55:33.898Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T06:56:44.072Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T06:57:14.162Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T07:13:50.062Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T07:14:20.153Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T07:14:50.250Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T07:15:20.342Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T07:15:50.435Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T07:16:20.537Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T07:16:50.633Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T07:17:20.687Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T07:17:50.750Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T07:18:20.805Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T07:18:50.865Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T07:19:20.919Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T07:19:50.959Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T07:33:44.894Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T07:34:14.952Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T07:34:45.007Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T07:35:15.064Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T07:35:45.125Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T07:36:15.177Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T07:36:45.232Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T07:37:15.284Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T07:37:45.338Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T07:38:15.406Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T07:38:45.466Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T07:39:15.525Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T07:39:45.579Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T07:40:15.631Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T07:40:45.685Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T07:41:15.740Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T07:41:45.799Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T07:42:15.860Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T07:42:45.922Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T07:43:15.977Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T07:43:46.037Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T07:44:16.095Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T07:44:46.146Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T07:45:16.195Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T07:45:46.246Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T07:55:41.847Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T07:57:04.103Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T07:57:34.162Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T07:58:38.001Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T07:59:08.055Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T07:59:38.111Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T08:00:08.163Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T08:00:38.221Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T08:01:08.261Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T08:01:38.318Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T08:03:58.292Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T08:04:28.346Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T08:04:58.400Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T08:05:28.456Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T08:05:58.512Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T08:06:28.566Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T08:06:58.618Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T08:07:28.672Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T08:07:58.734Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T08:08:28.787Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T08:08:58.843Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T08:09:28.921Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T08:09:59.006Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T08:10:29.069Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T08:10:59.141Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T08:11:29.222Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T08:11:59.300Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T08:12:29.385Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T08:12:59.474Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T08:13:29.562Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T08:13:59.657Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T08:14:29.739Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T08:14:59.834Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T08:15:29.920Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T08:16:00.014Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T08:16:30.112Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T08:17:00.194Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T08:17:30.290Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T08:18:00.388Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T08:18:30.481Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T08:19:00.567Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T08:19:30.651Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T08:20:00.737Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T08:20:30.830Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T08:21:00.907Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T08:21:31.001Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T08:22:01.088Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T08:22:31.175Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T08:23:01.258Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T08:23:31.347Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T08:24:01.436Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T08:24:31.524Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T08:25:01.628Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T08:25:31.718Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T08:26:01.797Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T08:26:31.893Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T08:27:01.977Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T08:27:32.086Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T08:28:02.170Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T08:28:32.271Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T08:29:02.368Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T08:29:32.456Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T08:30:02.554Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T08:30:32.658Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T08:31:02.748Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T08:31:32.829Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T08:32:02.931Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T08:32:33.025Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T08:33:03.108Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T08:33:33.204Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T08:34:03.312Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T08:34:33.397Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T08:35:03.491Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T08:35:33.584Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T08:36:03.669Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T08:36:33.763Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T08:37:03.853Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T08:37:33.937Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T08:38:04.030Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T08:38:34.109Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T08:54:41.743Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T08:55:11.839Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T08:57:20.413Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T08:57:50.513Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T09:14:06.929Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T09:30:10.264Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T09:30:40.333Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T09:36:29.399Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T09:36:59.501Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T09:52:35.974Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T09:57:55.641Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T09:58:31.042Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T09:59:01.149Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T10:01:12.433Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T10:01:42.524Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T10:18:11.687Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T10:34:45.885Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T10:35:15.980Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T10:51:25.740Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T10:51:55.822Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T10:59:04.821Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T11:15:57.332Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T11:16:27.411Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T11:33:27.714Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T11:46:29.471Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T11:46:59.563Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T11:59:40.953Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T12:00:11.043Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T12:16:11.608Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T12:16:41.716Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T12:32:26.613Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T12:40:20.590Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T12:40:50.679Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T12:45:54.115Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T13:00:44.846Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T13:01:14.934Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T13:17:36.991Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T13:24:45.326Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T13:25:15.410Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T13:42:33.418Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T13:43:03.521Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T14:00:44.685Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T14:01:14.781Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T14:17:31.284Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T14:33:14.607Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T14:33:44.700Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T14:50:22.056Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T14:50:52.160Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T15:01:50.897Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T15:02:20.987Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T15:10:57.110Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T15:11:27.197Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T15:11:57.284Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T15:27:25.325Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T15:43:02.689Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T15:43:32.778Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T15:59:38.813Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T16:00:08.911Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T16:16:39.006Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T16:33:13.167Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T16:33:43.252Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T16:49:21.286Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T16:49:51.383Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T17:08:06.350Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T17:08:36.561Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T17:24:39.594Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T17:40:38.800Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T17:41:08.892Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T17:58:14.426Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T17:58:44.528Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T17:59:14.619Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T17:59:44.720Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T18:00:14.811Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T18:00:44.905Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T18:01:15.000Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T18:01:45.088Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T18:02:15.178Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T18:02:45.275Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T18:03:15.347Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T18:03:45.452Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T18:04:15.541Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T18:04:45.631Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T18:05:15.718Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T18:05:45.807Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T18:06:15.902Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T18:06:45.991Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T18:07:16.073Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T18:07:46.158Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T18:08:16.230Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T18:08:46.334Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T18:09:16.443Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T18:09:46.543Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T18:26:33.503Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T18:27:03.605Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T18:43:53.131Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T18:44:23.209Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T18:55:24.187Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T18:55:54.281Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T19:12:21.514Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T19:29:08.213Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T19:29:38.300Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T19:30:08.390Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T19:30:38.484Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T19:31:08.589Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T19:31:38.682Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T19:32:08.774Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T19:32:38.875Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T19:33:08.965Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T19:33:39.054Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T19:34:09.164Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T19:34:39.273Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T19:35:09.380Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T19:51:59.191Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T19:52:29.339Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T20:08:54.616Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T20:25:03.807Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T20:25:33.903Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T20:42:36.150Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T20:43:06.251Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T20:56:43.376Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T21:12:29.760Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T21:12:59.847Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T21:29:16.382Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T21:37:57.923Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T21:38:28.025Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T21:55:56.138Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T21:56:26.239Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T22:11:56.342Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T22:27:51.406Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T22:28:21.506Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T22:46:15.872Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T22:57:21.966Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T22:57:52.050Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T23:13:37.513Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T23:29:40.037Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T23:30:10.122Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T23:46:45.316Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T23:47:15.411Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T23:50:48.653Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T23:51:18.757Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T23:52:08.583Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T23:55:42.294Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T23:56:12.388Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-16T23:58:37.045Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T00:03:25.872Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T00:03:55.960Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T00:13:44.395Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T00:30:10.198Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T00:30:40.276Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T00:33:33.514Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T00:34:03.605Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T00:39:22.373Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T00:54:50.109Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T00:55:20.194Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T00:59:36.346Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T01:00:21.805Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T01:00:51.877Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T01:01:21.954Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T01:02:38.902Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T01:19:58.970Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T01:20:29.067Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T01:22:28.560Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T01:38:03.782Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T01:38:33.877Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T01:54:02.020Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T01:54:32.125Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T01:55:02.219Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T01:55:32.307Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T02:00:38.362Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T02:01:08.460Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T02:17:40.244Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T02:18:10.329Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T02:33:42.606Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T02:45:50.407Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T02:46:20.502Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T02:46:50.604Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T02:47:20.723Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T02:47:50.829Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T02:48:20.924Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T02:48:51.006Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T02:49:21.088Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T02:49:51.182Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T02:50:21.275Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T02:50:51.366Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T02:51:21.461Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T02:51:51.549Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T02:52:21.640Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T02:52:51.736Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T02:53:21.829Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T02:53:51.918Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T02:54:22.009Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T02:54:52.096Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T02:55:22.191Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T02:55:52.293Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T02:56:22.377Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T02:56:52.479Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T02:57:22.567Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T02:57:52.659Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T03:01:26.061Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T03:01:56.155Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T03:18:58.603Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T03:34:32.665Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T03:35:02.765Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T03:51:18.963Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T03:51:49.061Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T04:02:27.300Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T04:02:57.391Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T04:18:43.318Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T04:34:51.467Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T04:35:21.539Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T04:51:53.561Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T04:52:23.623Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T04:52:53.711Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T04:53:23.803Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T04:53:53.884Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T05:03:37.846Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T05:04:07.941Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T05:19:51.295Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T05:35:41.697Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T05:36:11.792Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T05:51:21.908Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T05:51:51.999Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T05:58:11.214Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T05:59:18.496Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T05:59:48.580Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T06:00:24.410Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T06:00:54.499Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T06:04:51.652Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T06:21:11.792Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T06:21:41.875Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T06:38:01.180Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T06:53:53.406Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T06:54:23.504Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T06:55:57.212Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T06:56:27.298Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T07:05:39.381Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T07:06:09.472Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T07:21:56.683Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T07:28:52.805Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T07:29:22.887Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T07:29:52.980Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T07:30:23.078Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T07:30:53.178Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T07:31:23.270Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T07:31:53.362Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T07:32:23.462Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T07:32:53.551Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T07:33:23.649Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T07:33:53.752Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T07:34:23.834Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T07:34:53.939Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T07:35:24.028Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T07:35:54.131Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T07:52:12.122Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T07:52:42.209Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T07:57:07.112Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T07:57:37.195Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T07:58:07.287Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T07:58:37.385Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T07:59:07.480Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T07:59:37.566Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T08:06:52.187Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T08:24:02.239Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T08:24:32.339Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T08:41:53.392Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T08:57:26.656Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T08:57:56.747Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T08:59:35.805Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T09:07:27.725Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T09:07:57.814Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T09:25:03.255Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T09:25:33.356Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T09:41:33.380Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T09:57:03.251Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T09:57:33.348Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T10:08:45.497Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T10:25:23.845Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T10:25:53.947Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T10:41:43.349Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T10:42:13.450Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T10:57:53.170Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T10:58:23.261Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T11:09:51.176Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T11:10:57.604Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T11:11:27.694Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T11:12:23.886Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T11:16:16.911Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T11:16:47.009Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T11:17:18.957Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T11:17:49.050Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T11:33:40.938Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T11:50:12.151Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T11:50:42.231Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T12:08:36.492Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T12:09:06.593Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T12:10:47.734Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T12:26:06.141Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T12:26:36.225Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T12:28:39.098Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T12:29:09.185Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T12:45:31.070Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T12:46:01.151Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T12:54:57.461Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T13:01:17.163Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T13:01:47.275Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T13:11:48.185Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T13:12:18.284Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T13:12:48.390Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T13:13:18.488Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T13:13:48.585Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T13:14:18.681Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T13:14:48.774Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T13:15:18.863Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T13:15:48.958Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T13:16:19.052Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T13:16:49.132Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T13:17:19.216Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T13:17:49.317Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T13:18:19.405Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T13:18:49.501Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T13:19:19.604Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T13:19:49.699Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T13:20:19.786Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T13:20:49.890Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T13:21:19.983Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T13:21:50.082Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T13:22:20.168Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T13:22:50.260Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T13:23:20.336Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T13:23:50.420Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T13:40:25.221Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T13:40:55.331Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T13:57:20.866Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T14:04:15.345Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T14:04:45.439Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T14:06:34.028Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T14:12:33.884Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T14:13:03.981Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T14:19:48.151Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T14:20:18.232Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T14:27:42.550Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T14:42:28.541Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T14:42:58.626Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T14:46:12.664Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T14:46:42.755Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T15:02:52.610Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T15:11:23.037Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T15:11:53.143Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T15:12:23.242Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T15:12:53.325Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T15:28:22.009Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T15:28:52.100Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T15:34:18.160Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T15:35:06.986Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T15:35:37.088Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T15:51:26.126Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T15:51:56.223Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T16:07:56.597Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T16:08:26.683Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T16:23:55.960Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T16:40:08.098Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T16:40:38.187Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T16:57:18.613Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T17:13:03.110Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T17:13:33.189Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T17:29:04.306Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T17:29:34.393Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T17:46:47.481Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T18:03:31.971Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T18:20:29.966Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T18:21:00.052Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T18:38:14.351Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T18:55:59.841Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T18:56:29.940Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T19:13:23.540Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T19:13:53.645Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T19:31:05.771Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T19:31:35.869Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T19:32:05.957Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T19:32:36.058Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T19:33:06.144Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T19:33:36.228Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T19:34:06.320Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T19:34:36.413Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T19:35:06.499Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T19:35:36.594Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T19:36:06.687Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T19:36:36.778Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T19:37:06.859Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T19:54:35.944Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T19:55:06.005Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T20:04:36.972Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T20:21:18.936Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T20:21:49.020Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T20:39:13.189Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T20:46:32.106Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T20:47:02.189Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T21:03:06.823Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T21:05:12.557Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T21:05:42.649Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T21:22:41.107Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T21:23:11.199Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T21:38:48.487Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T21:55:34.987Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T21:56:05.076Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T22:06:20.012Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T22:06:50.099Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T22:07:20.194Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T22:16:47.125Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T22:17:17.216Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T22:17:47.307Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T22:18:17.399Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T22:18:47.485Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T22:19:17.586Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T22:19:47.680Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T22:20:17.777Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T22:20:47.869Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T22:21:17.952Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T22:21:48.051Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T22:22:18.141Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T22:22:48.241Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T22:23:18.326Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T22:23:48.406Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T22:24:18.493Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T22:24:48.579Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T22:25:18.678Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T22:25:48.766Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T22:26:18.849Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T22:26:48.936Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T22:27:19.031Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T22:27:49.129Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T22:28:19.237Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T22:28:49.327Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T22:29:19.440Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T22:45:14.372Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T23:02:03.702Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T23:02:33.811Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T23:07:33.046Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T23:08:03.148Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T23:24:26.644Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T23:40:21.062Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T23:40:51.156Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T23:56:24.883Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T23:56:54.967Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-17T23:59:47.365Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T00:01:32.820Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T00:02:02.924Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T00:08:36.314Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T00:09:06.406Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T00:09:36.495Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T00:10:06.590Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T00:10:36.689Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T00:11:06.765Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T00:26:38.157Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T00:35:58.229Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T00:36:28.315Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T00:43:30.407Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T00:44:00.492Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T00:53:32.885Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T01:09:08.450Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T01:09:38.546Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T01:25:31.669Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T01:26:01.755Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T01:42:22.960Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T01:42:53.052Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T01:55:54.447Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T01:57:01.884Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T01:57:31.962Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T02:10:28.998Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T02:26:10.199Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T02:26:40.300Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T02:43:04.432Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T02:43:34.539Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T02:59:18.839Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T02:59:48.924Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T03:11:36.092Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T03:27:37.177Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T03:28:07.269Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T03:44:06.782Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T03:44:36.839Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T04:02:06.556Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T04:12:11.066Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T04:12:41.156Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T04:28:38.539Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T04:29:08.629Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T04:47:09.964Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T04:47:40.047Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T05:04:16.555Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T05:13:19.934Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T05:13:50.005Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T05:30:22.308Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T05:47:27.547Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T05:47:57.659Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T06:04:03.989Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T06:04:34.075Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T06:14:25.207Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T06:14:55.297Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T06:30:18.377Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T06:46:39.088Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T06:47:09.185Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T07:04:23.453Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T07:04:53.538Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T07:07:42.927Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T07:15:13.512Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T07:15:43.602Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T07:26:58.664Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T07:27:28.764Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T07:28:15.278Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T07:34:19.406Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T07:34:49.498Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T07:35:19.591Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T07:35:49.693Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T07:36:19.783Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T07:36:49.880Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T07:37:19.980Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T07:37:50.064Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T07:38:20.158Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T07:38:50.251Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T07:39:20.346Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T07:39:50.441Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T07:40:20.525Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T07:55:58.324Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T08:13:24.493Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T08:13:54.581Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T08:16:34.664Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T08:25:31.103Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T08:26:01.193Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T08:43:06.610Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T08:43:36.691Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T08:59:41.295Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T09:00:11.386Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T09:00:41.490Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T09:01:11.581Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T09:01:41.685Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T09:02:11.778Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T09:02:41.862Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T09:03:11.953Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T09:03:42.048Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T09:04:12.148Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T09:04:42.248Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T09:05:12.344Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T09:05:42.434Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T09:06:12.527Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T09:06:42.621Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T09:07:12.714Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T09:07:42.815Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T09:08:12.915Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T09:08:43.011Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T09:09:13.108Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T09:09:43.208Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T09:10:13.297Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T09:10:43.388Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T09:11:13.466Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T09:17:22.108Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T09:17:52.194Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T09:19:45.257Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T09:37:37.987Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T09:38:08.085Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T09:52:29.700Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T09:52:59.788Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T09:55:55.432Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T09:56:25.523Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T10:11:59.523Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T10:18:23.882Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T10:18:53.973Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T10:20:50.061Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T10:23:05.826Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T10:23:35.905Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T10:39:21.037Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T10:39:51.136Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T10:40:27.369Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T10:43:32.317Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T10:44:02.397Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T10:44:59.962Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T11:00:34.236Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T11:01:04.321Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T11:17:08.643Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T11:19:20.177Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T11:19:50.283Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T11:36:56.084Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T11:37:26.179Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T11:54:09.367Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T11:54:39.452Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T12:11:25.276Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T12:20:24.908Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T12:20:55.006Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T12:38:32.533Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T12:54:13.716Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T12:54:43.813Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T12:55:13.908Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T13:11:29.563Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T13:21:30.139Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T13:22:00.226Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T13:39:39.638Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T13:55:46.146Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T13:56:16.252Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T14:12:22.583Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T14:22:21.315Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T14:22:51.403Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T14:38:22.919Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T14:38:53.016Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T14:43:28.404Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T14:43:58.497Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T15:00:43.563Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T15:01:13.651Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T15:17:48.743Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T15:18:18.836Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T15:34:26.089Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T15:51:17.247Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T15:51:47.320Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T16:09:22.679Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T16:09:52.766Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T16:26:24.991Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T16:44:18.070Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T16:44:48.173Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T17:01:56.473Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T17:02:26.556Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T17:02:56.655Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T17:03:26.734Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T17:03:56.835Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T17:04:26.918Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T17:04:57.004Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T17:05:27.089Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T17:05:57.178Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T17:06:27.270Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T17:22:49.424Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T17:23:19.524Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T17:38:50.651Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T17:39:20.739Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T17:39:50.832Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T17:40:20.923Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T17:40:51.009Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T17:41:21.100Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T17:41:51.199Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T17:42:21.294Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T17:42:51.385Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T17:43:21.481Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T17:43:51.567Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T17:44:21.655Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T17:44:51.747Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T17:45:21.837Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T17:45:51.920Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T17:46:22.017Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T17:46:52.113Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T17:47:22.193Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T17:47:52.290Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T17:48:22.387Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T17:48:52.495Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T17:49:22.600Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T17:49:52.693Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T17:50:22.787Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T17:50:52.870Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T18:06:27.283Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T18:06:57.372Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T18:14:30.419Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T18:30:59.913Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T18:31:30.015Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T18:48:02.303Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T18:48:32.389Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T19:04:19.156Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T19:21:23.521Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T19:21:53.593Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T19:22:23.691Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T19:22:53.781Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T19:23:23.865Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T19:39:50.398Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T19:56:10.749Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T19:56:40.840Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T20:13:22.000Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T20:15:13.373Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T20:15:43.483Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T20:32:31.671Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T20:48:45.041Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T20:49:15.134Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T20:49:45.220Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T21:05:57.164Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T21:16:18.365Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T21:16:48.463Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T21:34:40.630Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T21:37:00.718Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T21:51:03.423Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T21:51:33.527Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T21:52:03.618Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T21:52:33.687Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T21:53:03.820Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T21:53:33.892Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T21:54:03.965Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T21:54:34.052Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T21:55:04.140Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T21:55:34.217Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T21:56:04.319Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T21:56:34.397Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T21:57:04.467Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T21:57:34.556Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T21:58:04.646Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T21:58:34.774Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T22:05:55.479Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "5ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T22:06:25.596Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T22:06:55.714Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T22:07:25.817Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T22:07:55.902Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T22:08:25.992Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T22:08:56.077Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T22:09:26.178Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T22:09:56.266Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T22:10:26.359Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T22:10:56.430Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T22:11:26.528Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T22:11:56.614Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T22:12:26.705Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T22:12:56.800Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T22:13:26.889Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T22:13:56.977Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T22:14:27.091Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T22:14:57.184Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T22:15:27.272Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T22:15:57.358Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T22:16:27.445Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T22:16:57.517Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T22:17:27.599Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T22:17:57.702Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T22:18:27.785Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T22:18:57.897Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T22:19:27.990Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T22:19:58.078Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T22:20:28.166Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T22:20:58.262Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T22:21:28.355Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T22:21:58.440Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T22:22:28.543Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T22:22:58.638Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T22:23:28.730Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T22:23:58.819Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T22:24:28.899Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T22:24:59.044Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T22:25:29.151Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T22:25:59.228Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T22:26:29.323Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T22:26:59.416Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T22:27:29.491Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T22:27:59.602Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T22:28:29.695Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T22:28:59.788Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T22:29:29.878Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T22:29:59.988Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T22:30:30.079Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T22:31:00.160Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T22:31:30.242Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T22:32:00.329Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T22:32:30.419Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T22:33:00.508Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T22:33:30.616Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T22:34:00.699Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T22:34:30.812Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T22:35:00.892Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T22:35:30.978Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T22:36:01.070Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T22:36:31.163Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T22:37:01.246Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T22:37:31.342Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T22:38:01.434Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T22:38:31.523Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T22:39:01.617Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T22:39:31.708Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T22:40:01.792Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T22:40:31.874Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T22:41:01.967Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T22:41:32.056Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T22:42:02.135Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T22:42:32.230Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T22:43:02.328Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T22:43:32.416Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T22:44:02.516Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T22:44:32.604Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T22:45:02.717Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T22:45:32.807Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T22:46:02.919Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T22:46:33.015Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T22:47:03.104Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T22:47:33.202Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T22:48:03.284Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T22:48:33.357Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T22:49:03.490Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T22:49:33.583Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T22:50:03.727Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T22:50:33.829Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T22:51:03.943Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T22:51:34.048Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T22:52:04.155Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T22:52:34.256Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T22:53:04.352Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T22:53:34.452Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T22:54:04.548Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T22:54:34.645Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T22:55:04.743Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T22:55:34.847Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T22:56:04.936Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T22:56:35.028Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T22:57:05.115Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T22:57:35.225Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T22:58:05.314Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T22:58:35.407Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T22:59:05.493Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T22:59:35.580Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T23:00:05.666Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T23:00:35.751Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T23:01:05.842Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T23:01:35.936Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T23:02:06.026Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T23:02:36.119Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T23:03:06.208Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T23:03:36.298Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T23:04:06.392Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T23:04:36.480Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T23:05:03.270Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:172.20.0.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:05:06.578Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T23:05:07.058Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 200, - "duration": "123ms", - "ip": "::ffff:172.20.0.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:05:07.881Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-18", - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:05:07.893Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:05:07.893Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-18&view_all=true", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:172.20.0.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:05:07.902Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "29ms", - "ip": "::ffff:172.20.0.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:05:08.667Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:172.20.0.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:05:36.671Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T23:06:06.779Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T23:06:36.875Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T23:07:06.965Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T23:07:37.077Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T23:08:07.167Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T23:08:37.252Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T23:09:07.343Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T23:09:35.424Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "22ms", - "ip": "::ffff:172.20.0.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:09:36.344Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:172.20.0.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:09:37.456Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T23:10:07.544Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T23:10:37.647Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T23:10:52.964Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:172.20.0.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:10:53.883Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:172.20.0.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:10:57.364Z] [ERROR] ❌ 작업자 수정 중 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 작업자 수정 중 오류가 발생했습니다\n at /usr/src/app/controllers/workerController.js:121:23\n at Object.update (/usr/src/app/models/workerModel.js:119:4)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "url": "/api/workers/7", - "method": "PUT", - "user": "김두수" -} -[2026-01-18T23:10:57.366Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "PUT", - "url": "/api/workers/7", - "statusCode": 500, - "duration": "7ms", - "ip": "::ffff:172.20.0.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:11:07.752Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T23:11:37.851Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T23:12:07.953Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T23:12:38.031Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T23:13:08.116Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T23:13:38.235Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T23:14:08.314Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T23:14:10.422Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "22ms", - "ip": "::ffff:172.20.0.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:14:11.364Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:172.20.0.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:14:14.769Z] [ERROR] ❌ 작업자 수정 중 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 작업자 수정 중 오류가 발생했습니다\n at /usr/src/app/controllers/workerController.js:121:23\n at Object.update (/usr/src/app/models/workerModel.js:119:4)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "url": "/api/workers/7", - "method": "PUT", - "user": "김두수" -} -[2026-01-18T23:14:14.772Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "PUT", - "url": "/api/workers/7", - "statusCode": 500, - "duration": "7ms", - "ip": "::ffff:172.20.0.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:14:38.425Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T23:14:41.472Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-18", - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:14:41.475Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:14:41.476Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-18&view_all=true", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:172.20.0.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:14:41.481Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "22ms", - "ip": "::ffff:172.20.0.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:14:42.383Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:172.20.0.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:14:54.694Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "17ms", - "ip": "::ffff:172.20.0.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:14:55.667Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:172.20.0.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:15:08.525Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T23:15:38.628Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T23:15:44.096Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2026-01-18T23:15:44.099Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-01-18T23:15:44.742Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-18T23:15:44.845Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-01-18T23:15:44.964Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2026-01-18T23:15:44.967Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-01-18T23:15:49.522Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "6ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T23:16:19.615Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T23:16:41.139Z] [INFO] ℹ️ MariaDB 연결 성공 - Context: { - "connection": "db:3306", - "database": "hyungi", - "connectionLimit": 10 -} -[2026-01-18T23:16:41.150Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "96ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:16:42.046Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:16:46.906Z] [ERROR] ❌ 작업자 수정 중 오류가 발생했습니다: Unknown column 'phone_number' in 'field list' - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 작업자 수정 중 오류가 발생했습니다: Unknown column 'phone_number' in 'field list'\n at /usr/src/app/controllers/workerController.js:129:16\n at Object.update (/usr/src/app/models/workerModel.js:116:5)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "url": "/api/workers/7", - "method": "PUT", - "user": "김두수" -} -[2026-01-18T23:16:46.908Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "PUT", - "url": "/api/workers/7", - "statusCode": 500, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:16:49.704Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T23:17:19.815Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T23:17:50.015Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T23:18:20.140Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T23:18:50.239Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T23:19:20.340Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T23:19:50.432Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T23:20:14.829Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2026-01-18T23:20:14.830Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-01-18T23:20:15.264Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-18T23:20:15.323Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-01-18T23:20:15.387Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2026-01-18T23:20:15.390Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-01-18T23:20:20.235Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T23:20:50.329Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T23:21:20.419Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T23:21:50.516Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T23:22:19.601Z] [INFO] ℹ️ MariaDB 연결 성공 - Context: { - "connection": "db:3306", - "database": "hyungi", - "connectionLimit": 10 -} -[2026-01-18T23:22:19.615Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "80ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:22:20.545Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:22:20.643Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T23:22:23.447Z] [INFO] ℹ️ 작업자 수정 후 캐시 무효화 - Context: { - "worker_id": 7 -} -[2026-01-18T23:22:23.450Z] [INFO] ℹ️ 작업자 수정 성공 - Context: { - "worker_id": 7 -} -[2026-01-18T23:22:23.451Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "PUT", - "url": "/api/workers/7", - "statusCode": 200, - "duration": "16ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:22:28.568Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-18", - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:22:28.578Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:22:28.579Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-18&view_all=true", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:22:28.585Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "21ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:22:29.475Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:22:36.059Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:22:37.045Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:22:50.731Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T23:22:54.206Z] [INFO] ℹ️ 작업자 생성 요청 - Context: {} -[2026-01-18T23:22:54.213Z] [INFO] ℹ️ 작업자 생성 성공 - Context: { - "worker_id": 12 -} -[2026-01-18T23:22:54.215Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/workers", - "statusCode": 201, - "duration": "11ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:22:54.227Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:22:58.267Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-18", - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:22:58.269Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:22:58.271Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-18&view_all=true", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:22:58.275Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "14ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:22:59.264Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:23:20.843Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T23:23:50.943Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T23:24:21.037Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T23:24:51.134Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T23:25:21.223Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T23:25:33.272Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 200, - "duration": "44ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:25:34.217Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:25:45.986Z] [INFO] ℹ️ 프로젝트 수정 성공 - Context: { - "project_id": 8 -} -[2026-01-18T23:25:45.988Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "PUT", - "url": "/api/projects/8", - "statusCode": 200, - "duration": "14ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:25:46.001Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:25:51.318Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T23:25:53.172Z] [INFO] ℹ️ 프로젝트 수정 성공 - Context: { - "project_id": 3 -} -[2026-01-18T23:25:53.174Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "PUT", - "url": "/api/projects/3", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:25:53.187Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:26:21.419Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T23:26:27.932Z] [INFO] ℹ️ 프로젝트 생성 요청 - Context: {} -[2026-01-18T23:26:27.940Z] [INFO] ℹ️ 프로젝트 생성 성공 - Context: { - "project_id": 16 -} -[2026-01-18T23:26:27.946Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/projects", - "statusCode": 201, - "duration": "17ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:26:27.956Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:26:36.223Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-18", - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:26:36.232Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:26:36.234Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:26:36.234Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-18&view_all=true", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:26:37.216Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:26:38.919Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-18", - "worker_id": 12, - "created_by_user_id": 3, - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:26:38.932Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:26:38.936Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:26:38.937Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-18&worker_id=12", - "statusCode": 200, - "duration": "19ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:26:38.945Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:26:38.950Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 200, - "duration": "27ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:26:38.954Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 200, - "duration": "28ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:26:51.505Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T23:26:51.962Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-18", - "worker": 12, - "creator": "김두수", - "entries_count": 1 -} -[2026-01-18T23:26:51.978Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-01-18T23:26:51.980Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "20ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:26:51.987Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-18", - "worker_id": 12, - "created_by_user_id": 3, - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:26:51.989Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 1 -} -[2026-01-18T23:26:51.990Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-18&worker_id=12", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:26:51.997Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:26:51.999Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-18", - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:26:52.001Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 1 -} -[2026-01-18T23:26:52.003Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-18&view_all=true", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:27:21.598Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T23:27:51.684Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T23:28:21.769Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T23:28:51.860Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T23:29:21.997Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T23:35:19.966Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T23:35:50.059Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T23:36:20.154Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T23:36:50.260Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T23:37:20.365Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T23:37:50.464Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T23:38:20.568Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T23:38:50.668Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T23:39:20.759Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T23:39:50.864Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T23:40:07.507Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:40:11.244Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 200, - "duration": "106ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:40:11.937Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-18", - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:40:11.945Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 1 -} -[2026-01-18T23:40:11.948Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-18&view_all=true", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:40:11.951Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "18ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:40:12.850Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:40:20.941Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T23:40:51.069Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T23:41:21.266Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T23:41:51.366Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T23:42:21.473Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T23:42:51.568Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T23:43:21.692Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T23:43:48.356Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-18", - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:43:48.365Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 1 -} -[2026-01-18T23:43:48.366Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-18&view_all=true", - "statusCode": 200, - "duration": "16ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:43:48.367Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:43:49.402Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:43:49.418Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:43:49.429Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/tasks", - "method": "GET" -} -[2026-01-18T23:43:49.430Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/tasks", - "statusCode": 404, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:43:50.387Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:43:51.810Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T23:44:01.835Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "23ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:02.784Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:21.944Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T23:44:47.477Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-18", - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:44:47.479Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "15ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:47.483Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 1 -} -[2026-01-18T23:44:47.484Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-18&view_all=true", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:48.450Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:52.059Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T23:44:53.871Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 304, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:53.896Z] [INFO] ℹ️ 월별 캘린더 데이터 조회 요청 - Context: { - "year": 2026, - "month": 1 -} -[2026-01-18T23:44:53.901Z] [ERROR] ❌ 월별 캘린더 데이터 조회 실패 - Context: { - "year": 2026, - "month": 1, - "error": "Table 'hyungi.monthly_summary' doesn't exist" -} -[2026-01-18T23:44:53.905Z] [ERROR] ❌ 월별 캘린더 데이터 조회 중 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 월별 캘린더 데이터 조회 중 오류가 발생했습니다\n at /usr/src/app/controllers/monthlyStatusController.js:80:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "url": "/api/monthly-status/calendar?year=2026&month=1", - "method": "GET", - "user": "anonymous" -} -[2026-01-18T23:44:53.906Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/monthly-status/calendar?year=2026&month=1", - "statusCode": 500, - "duration": "16ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:53.991Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-18", - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:44:53.999Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 1 -} -[2026-01-18T23:44:54.001Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-18&view_all=true", - "statusCode": 304, - "duration": "11ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:54.003Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2025-12-31", - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:44:54.005Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-06", - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:44:54.008Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-02", - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:44:54.009Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-03", - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:44:54.010Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:44:54.011Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-12-31&view_all=true", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:54.013Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:44:54.014Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-06&view_all=true", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:54.015Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:44:54.016Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-02&view_all=true", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:54.017Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:44:54.017Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-03&view_all=true", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:54.019Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-01", - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:44:54.021Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-05", - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:44:54.022Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-04", - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:44:54.023Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:44:54.024Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-01&view_all=true", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:54.026Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-08", - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:44:54.028Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:44:54.029Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-05&view_all=true", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:54.029Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:44:54.029Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-04&view_all=true", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:54.030Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:44:54.031Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-08&view_all=true", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:54.032Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-09", - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:44:54.032Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-10", - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:44:54.033Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:44:54.033Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-09&view_all=true", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:54.034Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-11", - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:44:54.035Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-07", - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:44:54.037Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:44:54.037Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-10&view_all=true", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:54.037Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:44:54.038Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-11&view_all=true", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:54.040Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-13", - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:44:54.041Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-14", - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:44:54.042Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:44:54.042Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-07&view_all=true", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:54.042Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:44:54.043Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-13&view_all=true", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:54.044Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-15", - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:44:54.045Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:44:54.046Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-14&view_all=true", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:54.046Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:44:54.047Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-15&view_all=true", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:54.048Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-16", - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:44:54.049Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-12", - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:44:54.050Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:44:54.050Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-16&view_all=true", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:54.051Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-19", - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:44:54.052Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-20", - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:44:54.054Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:44:54.054Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-12&view_all=true", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:54.054Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:44:54.055Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-19&view_all=true", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:54.056Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-21", - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:44:54.057Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-22", - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:44:54.057Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:44:54.058Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-20&view_all=true", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:54.058Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:44:54.059Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-21&view_all=true", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:54.060Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-17", - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:44:54.061Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:44:54.061Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-22&view_all=true", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:54.061Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:44:54.062Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-17&view_all=true", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:54.063Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-24", - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:44:54.063Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-25", - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:44:54.064Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:44:54.064Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-24&view_all=true", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:54.065Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-23", - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:44:54.066Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-28", - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:44:54.066Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:44:54.067Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-25&view_all=true", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:54.067Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:44:54.068Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-23&view_all=true", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:54.068Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-29", - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:44:54.069Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-26", - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:44:54.070Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:44:54.070Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-28&view_all=true", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:54.070Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:44:54.071Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-29&view_all=true", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:54.072Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-27", - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:44:54.073Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:44:54.073Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-26&view_all=true", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:54.074Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:44:54.074Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-27&view_all=true", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:54.075Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-30", - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:44:54.076Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:44:54.076Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-30&view_all=true", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:54.844Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:57.255Z] [INFO] ℹ️ 월별 캘린더 데이터 조회 요청 - Context: { - "year": 2025, - "month": 12 -} -[2026-01-18T23:44:57.259Z] [ERROR] ❌ 월별 캘린더 데이터 조회 실패 - Context: { - "year": 2025, - "month": 12, - "error": "Table 'hyungi.monthly_summary' doesn't exist" -} -[2026-01-18T23:44:57.262Z] [ERROR] ❌ 월별 캘린더 데이터 조회 중 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 월별 캘린더 데이터 조회 중 오류가 발생했습니다\n at /usr/src/app/controllers/monthlyStatusController.js:80:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "url": "/api/monthly-status/calendar?year=2025&month=12", - "method": "GET", - "user": "anonymous" -} -[2026-01-18T23:44:57.264Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/monthly-status/calendar?year=2025&month=12", - "statusCode": 500, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:57.301Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2025-11-30", - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:44:57.305Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2025-12-04", - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:44:57.310Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:44:57.313Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-11-30&view_all=true", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:57.317Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2025-12-05", - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:44:57.319Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2025-12-01", - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:44:57.323Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2025-12-02", - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:44:57.324Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2025-12-03", - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:44:57.328Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:44:57.329Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-12-04&view_all=true", - "statusCode": 200, - "duration": "25ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:57.332Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:44:57.332Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-12-05&view_all=true", - "statusCode": 200, - "duration": "18ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:57.332Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:44:57.333Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-12-01&view_all=true", - "statusCode": 200, - "duration": "15ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:57.333Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:44:57.334Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-12-02&view_all=true", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:57.335Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2025-12-06", - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:44:57.336Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2025-12-07", - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:44:57.337Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2025-12-08", - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:44:57.338Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2025-12-09", - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:44:57.338Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:44:57.339Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-12-06&view_all=true", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:57.339Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2025-12-10", - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:44:57.340Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:44:57.340Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-12-07&view_all=true", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:57.341Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:44:57.341Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-12-08&view_all=true", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:57.342Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:44:57.342Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-12-09&view_all=true", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:57.343Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:44:57.343Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-12-10&view_all=true", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:57.344Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2025-12-11", - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:44:57.345Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2025-12-12", - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:44:57.345Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2025-12-13", - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:44:57.346Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:44:57.346Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-12-03&view_all=true", - "statusCode": 200, - "duration": "23ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:57.346Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:44:57.347Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-12-11&view_all=true", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:57.347Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:44:57.347Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-12-12&view_all=true", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:57.348Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:44:57.348Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-12-13&view_all=true", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:57.360Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2025-12-14", - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:44:57.361Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2025-12-15", - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:44:57.361Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2025-12-20", - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:44:57.362Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2025-12-16", - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:44:57.362Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2025-12-17", - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:44:57.363Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2025-12-18", - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:44:57.364Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:44:57.364Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-12-14&view_all=true", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:57.364Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:44:57.365Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-12-15&view_all=true", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:57.365Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:44:57.365Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-12-20&view_all=true", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:57.366Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:44:57.366Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-12-16&view_all=true", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:57.366Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:44:57.367Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-12-17&view_all=true", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:57.368Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2025-12-19", - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:44:57.369Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2025-12-22", - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:44:57.369Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2025-12-23", - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:44:57.370Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2025-12-24", - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:44:57.371Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2025-12-21", - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:44:57.371Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:44:57.372Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-12-19&view_all=true", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:57.372Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:44:57.373Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-12-22&view_all=true", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:57.373Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:44:57.374Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-12-23&view_all=true", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:57.374Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:44:57.374Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-12-24&view_all=true", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:57.375Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:44:57.375Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-12-21&view_all=true", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:57.376Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:44:57.377Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-12-18&view_all=true", - "statusCode": 200, - "duration": "14ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:57.378Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2025-12-27", - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:44:57.379Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2025-12-28", - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:44:57.379Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2025-12-25", - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:44:57.380Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2025-12-26", - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:44:57.380Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2025-12-29", - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:44:57.381Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:44:57.382Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-12-27&view_all=true", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:57.382Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:44:57.382Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-12-28&view_all=true", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:57.383Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:44:57.383Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-12-25&view_all=true", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:57.384Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:44:57.384Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-12-26&view_all=true", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:57.384Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:44:57.385Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-12-29&view_all=true", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:57.385Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2025-12-30", - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:44:57.386Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:44:57.386Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-12-30&view_all=true", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:57.935Z] [INFO] ℹ️ 월별 캘린더 데이터 조회 요청 - Context: { - "year": 2025, - "month": 11 -} -[2026-01-18T23:44:57.938Z] [ERROR] ❌ 월별 캘린더 데이터 조회 실패 - Context: { - "year": 2025, - "month": 11, - "error": "Table 'hyungi.monthly_summary' doesn't exist" -} -[2026-01-18T23:44:57.940Z] [ERROR] ❌ 월별 캘린더 데이터 조회 중 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 월별 캘린더 데이터 조회 중 오류가 발생했습니다\n at /usr/src/app/controllers/monthlyStatusController.js:80:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "url": "/api/monthly-status/calendar?year=2025&month=11", - "method": "GET", - "user": "anonymous" -} -[2026-01-18T23:44:57.943Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/monthly-status/calendar?year=2025&month=11", - "statusCode": 500, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:57.982Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2025-10-31", - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:44:57.983Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2025-11-01", - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:44:57.985Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2025-11-02", - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:44:57.986Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:44:57.986Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-10-31&view_all=true", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:57.987Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:44:57.987Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-11-01&view_all=true", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:57.988Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2025-11-03", - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:44:57.989Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2025-11-04", - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:44:57.990Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2025-11-05", - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:44:57.991Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:44:57.991Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-11-02&view_all=true", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:57.992Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2025-11-06", - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:44:57.993Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:44:57.993Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-11-03&view_all=true", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:57.993Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:44:57.994Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-11-04&view_all=true", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:57.995Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:44:57.995Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-11-05&view_all=true", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:57.996Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2025-11-07", - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:44:57.997Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:44:57.997Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-11-06&view_all=true", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:57.998Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2025-11-08", - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:44:57.999Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2025-11-09", - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:44:57.999Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:44:58.000Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-11-07&view_all=true", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:58.000Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2025-11-10", - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:44:58.001Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2025-11-11", - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:44:58.002Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:44:58.002Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-11-08&view_all=true", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:58.002Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:44:58.003Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-11-09&view_all=true", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:58.003Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2025-11-12", - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:44:58.004Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:44:58.005Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-11-10&view_all=true", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:58.005Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:44:58.005Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-11-11&view_all=true", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:58.006Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2025-11-13", - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:44:58.007Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2025-11-14", - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:44:58.007Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:44:58.008Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-11-12&view_all=true", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:58.009Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2025-11-15", - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:44:58.011Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2025-11-16", - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:44:58.012Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2025-11-17", - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:44:58.012Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:44:58.013Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-11-13&view_all=true", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:58.013Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:44:58.013Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-11-14&view_all=true", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:58.014Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:44:58.014Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-11-15&view_all=true", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:58.014Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:44:58.015Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-11-16&view_all=true", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:58.015Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:44:58.015Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-11-17&view_all=true", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:58.016Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2025-11-18", - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:44:58.017Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2025-11-19", - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:44:58.018Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2025-11-20", - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:44:58.018Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2025-11-21", - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:44:58.019Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:44:58.019Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-11-18&view_all=true", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:58.019Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:44:58.019Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-11-19&view_all=true", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:58.020Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2025-11-22", - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:44:58.020Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2025-11-23", - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:44:58.021Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:44:58.021Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-11-20&view_all=true", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:58.021Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:44:58.022Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-11-21&view_all=true", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:58.022Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:44:58.023Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-11-22&view_all=true", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:58.023Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:44:58.023Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-11-23&view_all=true", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:58.024Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2025-11-24", - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:44:58.025Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2025-11-25", - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:44:58.025Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2025-11-26", - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:44:58.026Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2025-11-27", - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:44:58.027Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2025-11-28", - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:44:58.027Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2025-11-29", - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:44:58.028Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:44:58.028Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-11-24&view_all=true", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:58.028Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:44:58.028Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-11-25&view_all=true", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:58.029Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:44:58.029Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-11-26&view_all=true", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:58.029Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:44:58.030Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-11-27&view_all=true", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:58.030Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:44:58.030Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-11-28&view_all=true", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:58.031Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:44:58.031Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-11-29&view_all=true", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:58.520Z] [INFO] ℹ️ 월별 캘린더 데이터 조회 요청 - Context: { - "year": 2025, - "month": 10 -} -[2026-01-18T23:44:58.524Z] [ERROR] ❌ 월별 캘린더 데이터 조회 실패 - Context: { - "year": 2025, - "month": 10, - "error": "Table 'hyungi.monthly_summary' doesn't exist" -} -[2026-01-18T23:44:58.526Z] [ERROR] ❌ 월별 캘린더 데이터 조회 중 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 월별 캘린더 데이터 조회 중 오류가 발생했습니다\n at /usr/src/app/controllers/monthlyStatusController.js:80:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "url": "/api/monthly-status/calendar?year=2025&month=10", - "method": "GET", - "user": "anonymous" -} -[2026-01-18T23:44:58.529Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/monthly-status/calendar?year=2025&month=10", - "statusCode": 500, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:58.561Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2025-09-30", - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:44:58.562Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2025-10-01", - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:44:58.564Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2025-10-02", - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:44:58.565Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-10-03&view_all=true", - "statusCode": 429, - "duration": "0ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:58.566Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-10-04&view_all=true", - "statusCode": 429, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:58.567Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-10-05&view_all=true", - "statusCode": 429, - "duration": "0ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:58.568Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 9 -} -[2026-01-18T23:44:58.569Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:44:58.570Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-10-01&view_all=true", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:58.571Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 9 -} -[2026-01-18T23:44:58.572Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-09-30&view_all=true", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:58.574Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-10-06&view_all=true", - "statusCode": 429, - "duration": "0ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:58.579Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-10-07&view_all=true", - "statusCode": 429, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:58.581Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-10-08&view_all=true", - "statusCode": 429, - "duration": "0ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:58.585Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-10-02&view_all=true", - "statusCode": 200, - "duration": "21ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:58.585Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-10-09&view_all=true", - "statusCode": 429, - "duration": "0ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:58.587Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-10-10&view_all=true", - "statusCode": 429, - "duration": "0ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:58.588Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-10-11&view_all=true", - "statusCode": 429, - "duration": "0ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:58.589Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-10-12&view_all=true", - "statusCode": 429, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:58.590Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-10-13&view_all=true", - "statusCode": 429, - "duration": "0ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:58.590Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-10-14&view_all=true", - "statusCode": 429, - "duration": "0ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:58.592Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-10-15&view_all=true", - "statusCode": 429, - "duration": "0ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:58.592Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-10-16&view_all=true", - "statusCode": 429, - "duration": "0ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:58.593Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-10-17&view_all=true", - "statusCode": 429, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:58.593Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-10-18&view_all=true", - "statusCode": 429, - "duration": "0ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:58.595Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-10-19&view_all=true", - "statusCode": 429, - "duration": "0ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:58.596Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-10-20&view_all=true", - "statusCode": 429, - "duration": "0ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:58.597Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-10-21&view_all=true", - "statusCode": 429, - "duration": "0ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:58.597Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-10-22&view_all=true", - "statusCode": 429, - "duration": "0ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:58.598Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-10-23&view_all=true", - "statusCode": 429, - "duration": "0ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:58.598Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-10-24&view_all=true", - "statusCode": 429, - "duration": "0ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:58.599Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-10-25&view_all=true", - "statusCode": 429, - "duration": "0ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:58.600Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-10-26&view_all=true", - "statusCode": 429, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:58.601Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-10-27&view_all=true", - "statusCode": 429, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:58.601Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-10-28&view_all=true", - "statusCode": 429, - "duration": "0ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:58.601Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-10-29&view_all=true", - "statusCode": 429, - "duration": "0ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:58.602Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-10-30&view_all=true", - "statusCode": 429, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:59.910Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/monthly-status/calendar?year=2025&month=9", - "statusCode": 429, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:59.938Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-08-31&view_all=true", - "statusCode": 429, - "duration": "0ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:59.940Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-09-01&view_all=true", - "statusCode": 429, - "duration": "0ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:59.941Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-09-02&view_all=true", - "statusCode": 429, - "duration": "0ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:59.942Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-09-03&view_all=true", - "statusCode": 429, - "duration": "0ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:59.943Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-09-04&view_all=true", - "statusCode": 429, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:59.944Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-09-05&view_all=true", - "statusCode": 429, - "duration": "0ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:59.945Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-09-06&view_all=true", - "statusCode": 429, - "duration": "0ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:59.946Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-09-07&view_all=true", - "statusCode": 429, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:59.946Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-09-08&view_all=true", - "statusCode": 429, - "duration": "0ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:59.947Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-09-09&view_all=true", - "statusCode": 429, - "duration": "0ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:59.948Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-09-10&view_all=true", - "statusCode": 429, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:59.949Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-09-11&view_all=true", - "statusCode": 429, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:59.949Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-09-12&view_all=true", - "statusCode": 429, - "duration": "0ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:59.950Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-09-13&view_all=true", - "statusCode": 429, - "duration": "0ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:59.952Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-09-14&view_all=true", - "statusCode": 429, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:59.952Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-09-15&view_all=true", - "statusCode": 429, - "duration": "0ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:59.953Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-09-16&view_all=true", - "statusCode": 429, - "duration": "0ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:59.954Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-09-19&view_all=true", - "statusCode": 429, - "duration": "0ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:59.954Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-09-20&view_all=true", - "statusCode": 429, - "duration": "0ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:59.955Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-09-17&view_all=true", - "statusCode": 429, - "duration": "0ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:59.956Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-09-18&view_all=true", - "statusCode": 429, - "duration": "0ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:59.956Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-09-21&view_all=true", - "statusCode": 429, - "duration": "0ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:59.957Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-09-22&view_all=true", - "statusCode": 429, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:59.958Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-09-23&view_all=true", - "statusCode": 429, - "duration": "0ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:59.958Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-09-24&view_all=true", - "statusCode": 429, - "duration": "0ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:59.959Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-09-25&view_all=true", - "statusCode": 429, - "duration": "0ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:59.960Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-09-26&view_all=true", - "statusCode": 429, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:59.960Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-09-27&view_all=true", - "statusCode": 429, - "duration": "0ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:59.961Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-09-28&view_all=true", - "statusCode": 429, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:59.962Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-09-29&view_all=true", - "statusCode": 429, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:45:00.618Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/monthly-status/daily-details?date=2025-11-03", - "statusCode": 429, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:45:22.144Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T23:45:52.219Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T23:46:15.383Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-18", - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:46:15.394Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 1 -} -[2026-01-18T23:46:15.395Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-18&view_all=true", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:46:15.399Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "27ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:46:16.330Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:46:17.409Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:46:17.424Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:46:17.431Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/tasks", - "method": "GET" -} -[2026-01-18T23:46:17.431Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/tasks", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:46:18.393Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:46:22.311Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T23:46:33.575Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-18", - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:46:33.579Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:46:33.580Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 1 -} -[2026-01-18T23:46:33.581Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-18&view_all=true", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:46:34.571Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:46:52.403Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T23:47:22.517Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T23:47:23.607Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-18", - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:47:23.609Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:47:23.611Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 1 -} -[2026-01-18T23:47:23.612Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-18&view_all=true", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:47:24.604Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:47:29.495Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:47:29.519Z] [INFO] ℹ️ 월별 캘린더 데이터 조회 요청 - Context: { - "year": 2026, - "month": 1 -} -[2026-01-18T23:47:29.522Z] [ERROR] ❌ 월별 캘린더 데이터 조회 실패 - Context: { - "year": 2026, - "month": 1, - "error": "Table 'hyungi.monthly_summary' doesn't exist" -} -[2026-01-18T23:47:29.524Z] [ERROR] ❌ 월별 캘린더 데이터 조회 중 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 월별 캘린더 데이터 조회 중 오류가 발생했습니다\n at /usr/src/app/controllers/monthlyStatusController.js:80:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "url": "/api/monthly-status/calendar?year=2026&month=1", - "method": "GET", - "user": "anonymous" -} -[2026-01-18T23:47:29.525Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/monthly-status/calendar?year=2026&month=1", - "statusCode": 500, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:47:29.540Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2025-12-31", - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:47:29.541Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-02", - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:47:29.542Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-01", - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:47:29.544Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-03", - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:47:29.545Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-04", - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:47:29.547Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:47:29.548Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-12-31&view_all=true", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:47:29.548Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:47:29.549Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-02&view_all=true", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:47:29.549Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:47:29.550Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-01&view_all=true", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:47:29.551Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:47:29.552Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-03&view_all=true", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:47:29.553Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:47:29.554Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-04&view_all=true", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:47:29.661Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-05", - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:47:29.663Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-06", - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:47:29.664Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-07", - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:47:29.665Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-08", - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:47:29.666Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-09", - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:47:29.666Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:47:29.667Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-05&view_all=true", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:47:29.667Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:47:29.667Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-06&view_all=true", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:47:29.668Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:47:29.669Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-07&view_all=true", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:47:29.669Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:47:29.670Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-08&view_all=true", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:47:29.670Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:47:29.670Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-09&view_all=true", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:47:29.779Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-11", - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:47:29.781Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-10", - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:47:29.782Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:47:29.783Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-11&view_all=true", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:47:29.783Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:47:29.784Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-10&view_all=true", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:47:29.785Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-12", - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:47:29.786Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-13", - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:47:29.788Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-14", - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:47:29.788Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:47:29.788Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-12&view_all=true", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:47:29.789Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:47:29.789Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-13&view_all=true", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:47:29.790Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:47:29.790Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-14&view_all=true", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:47:29.902Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-18", - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:47:29.907Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-15", - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:47:29.909Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-16", - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:47:29.912Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-17", - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:47:29.912Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 1 -} -[2026-01-18T23:47:29.913Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-18&view_all=true", - "statusCode": 304, - "duration": "12ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:47:29.915Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:47:29.916Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-15&view_all=true", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:47:29.916Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:47:29.917Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-16&view_all=true", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:47:29.918Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-19", - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:47:29.919Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:47:29.920Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-17&view_all=true", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:47:29.920Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:47:29.921Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-19&view_all=true", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:47:30.041Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-21", - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:47:30.043Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-22", - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:47:30.045Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-20", - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:47:30.046Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-23", - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:47:30.047Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:47:30.048Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-21&view_all=true", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:47:30.048Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:47:30.049Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-22&view_all=true", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:47:30.050Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-24", - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:47:30.052Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:47:30.053Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-20&view_all=true", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:47:30.053Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:47:30.054Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-23&view_all=true", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:47:30.054Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:47:30.055Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-24&view_all=true", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:47:30.171Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-25", - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:47:30.173Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-26", - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:47:30.175Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-27", - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:47:30.176Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:47:30.177Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-25&view_all=true", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:47:30.177Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:47:30.177Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-26&view_all=true", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:47:30.178Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-28", - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:47:30.179Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-29", - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:47:30.179Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:47:30.180Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-27&view_all=true", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:47:30.180Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:47:30.180Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-28&view_all=true", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:47:30.181Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:47:30.182Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-29&view_all=true", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:47:30.295Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-30", - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:47:30.298Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:47:30.302Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-30&view_all=true", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:47:30.487Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:47:52.622Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T23:48:15.489Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-18", - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:48:15.533Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 304, - "duration": "56ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:48:15.543Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 1 -} -[2026-01-18T23:48:15.544Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-18&view_all=true", - "statusCode": 304, - "duration": "60ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:48:16.455Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:48:16.554Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 200, - "duration": "25ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:48:16.562Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:48:16.568Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/tasks", - "method": "GET" -} -[2026-01-18T23:48:16.569Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/tasks", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:48:17.511Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:48:17.980Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-18", - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:48:17.984Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:48:17.987Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 1 -} -[2026-01-18T23:48:17.988Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-18&view_all=true", - "statusCode": 304, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:48:18.981Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?status=active&limit=1000", - "statusCode": 200, - "duration": "20ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:48:18.991Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:48:19.001Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:48:19.009Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:48:19.021Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:48:19.028Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-19", - "created_by_user_id": 3, - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:48:19.031Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:48:19.032Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-19&created_by=3", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:48:19.955Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:48:20.891Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-18", - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:48:20.899Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 1 -} -[2026-01-18T23:48:20.904Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-18&view_all=true", - "statusCode": 304, - "duration": "13ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:48:20.909Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 304, - "duration": "13ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:48:21.862Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 304, - "duration": "13ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:48:21.901Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:48:21.906Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/tasks", - "method": "GET" -} -[2026-01-18T23:48:21.907Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/tasks", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:48:22.757Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T23:48:22.851Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:48:52.866Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T23:49:22.981Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T23:49:34.986Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-18", - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:49:34.997Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 304, - "duration": "16ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:49:35.002Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 1 -} -[2026-01-18T23:49:35.003Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-18&view_all=true", - "statusCode": 304, - "duration": "18ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:49:35.927Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:49:37.946Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?status=active&limit=1000", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:49:37.959Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:49:37.964Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:49:37.970Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:49:37.977Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:49:37.984Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-19", - "created_by_user_id": 3, - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:49:37.987Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:49:37.989Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-19&created_by=3", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:49:38.895Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:49:50.888Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-18", - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:49:50.893Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:49:50.900Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 1 -} -[2026-01-18T23:49:50.904Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-18&view_all=true", - "statusCode": 200, - "duration": "18ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:49:51.810Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:49:53.090Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T23:50:23.188Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T23:50:23.992Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-18", - "requester": 3, - "isAdmin": false -} -[2026-01-18T23:50:23.996Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 1 -} -[2026-01-18T23:50:23.997Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-18&view_all=true", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:50:23.998Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:50:24.995Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:50:53.287Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T23:51:23.369Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T23:51:53.445Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T23:52:23.543Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T23:52:53.654Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T23:52:59.539Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:53:22.602Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 200, - "duration": "94ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:53:23.338Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-18", - "requester": 1, - "isAdmin": true -} -[2026-01-18T23:53:23.345Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 1 -} -[2026-01-18T23:53:23.348Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-18&view_all=true", - "statusCode": 304, - "duration": "12ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:53:23.352Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "30ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:53:23.794Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T23:53:24.312Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:53:53.925Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T23:54:20.500Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?status=active&limit=1000", - "statusCode": 200, - "duration": "19ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:54:20.507Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:54:20.512Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:54:20.517Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:54:20.526Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:54:20.539Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-19", - "created_by_user_id": 1, - "requester": 1, - "isAdmin": true -} -[2026-01-18T23:54:20.544Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:54:20.545Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-19&created_by=1", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:54:21.434Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:54:23.373Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:54:23.397Z] [INFO] ℹ️ 월별 캘린더 데이터 조회 요청 - Context: { - "year": 2026, - "month": 1 -} -[2026-01-18T23:54:23.399Z] [ERROR] ❌ 월별 캘린더 데이터 조회 실패 - Context: { - "year": 2026, - "month": 1, - "error": "Table 'hyungi.monthly_summary' doesn't exist" -} -[2026-01-18T23:54:23.400Z] [ERROR] ❌ 월별 캘린더 데이터 조회 중 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 월별 캘린더 데이터 조회 중 오류가 발생했습니다\n at /usr/src/app/controllers/monthlyStatusController.js:80:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "url": "/api/monthly-status/calendar?year=2026&month=1", - "method": "GET", - "user": "anonymous" -} -[2026-01-18T23:54:23.402Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/monthly-status/calendar?year=2026&month=1", - "statusCode": 500, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:54:23.420Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2025-12-31", - "requester": 1, - "isAdmin": true -} -[2026-01-18T23:54:23.424Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-01", - "requester": 1, - "isAdmin": true -} -[2026-01-18T23:54:23.426Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:54:23.427Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-12-31&view_all=true", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:54:23.430Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-03", - "requester": 1, - "isAdmin": true -} -[2026-01-18T23:54:23.432Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-04", - "requester": 1, - "isAdmin": true -} -[2026-01-18T23:54:23.435Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-02", - "requester": 1, - "isAdmin": true -} -[2026-01-18T23:54:23.437Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:54:23.439Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-01&view_all=true", - "statusCode": 200, - "duration": "17ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:54:23.440Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:54:23.441Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-03&view_all=true", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:54:23.442Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:54:23.444Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-04&view_all=true", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:54:23.447Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:54:23.448Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-02&view_all=true", - "statusCode": 200, - "duration": "14ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:54:23.555Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-05", - "requester": 1, - "isAdmin": true -} -[2026-01-18T23:54:23.557Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-06", - "requester": 1, - "isAdmin": true -} -[2026-01-18T23:54:23.558Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:54:23.559Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-05&view_all=true", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:54:23.560Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-07", - "requester": 1, - "isAdmin": true -} -[2026-01-18T23:54:23.561Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-08", - "requester": 1, - "isAdmin": true -} -[2026-01-18T23:54:23.561Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-09", - "requester": 1, - "isAdmin": true -} -[2026-01-18T23:54:23.562Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:54:23.562Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-06&view_all=true", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:54:23.562Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:54:23.563Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-07&view_all=true", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:54:23.563Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:54:23.564Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-08&view_all=true", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:54:23.564Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:54:23.564Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-09&view_all=true", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:54:23.672Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-10", - "requester": 1, - "isAdmin": true -} -[2026-01-18T23:54:23.673Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-11", - "requester": 1, - "isAdmin": true -} -[2026-01-18T23:54:23.675Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-12", - "requester": 1, - "isAdmin": true -} -[2026-01-18T23:54:23.676Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-13", - "requester": 1, - "isAdmin": true -} -[2026-01-18T23:54:23.677Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-14", - "requester": 1, - "isAdmin": true -} -[2026-01-18T23:54:23.677Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:54:23.678Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-10&view_all=true", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:54:23.679Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:54:23.680Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-11&view_all=true", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:54:23.680Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:54:23.680Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-12&view_all=true", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:54:23.681Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:54:23.681Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-13&view_all=true", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:54:23.681Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:54:23.682Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-14&view_all=true", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:54:23.796Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-18", - "requester": 1, - "isAdmin": true -} -[2026-01-18T23:54:23.797Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-16", - "requester": 1, - "isAdmin": true -} -[2026-01-18T23:54:23.799Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-17", - "requester": 1, - "isAdmin": true -} -[2026-01-18T23:54:23.800Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-15", - "requester": 1, - "isAdmin": true -} -[2026-01-18T23:54:23.801Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-19", - "requester": 1, - "isAdmin": true -} -[2026-01-18T23:54:23.802Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 1 -} -[2026-01-18T23:54:23.802Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-18&view_all=true", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:54:23.803Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:54:23.803Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-16&view_all=true", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:54:23.804Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:54:23.804Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-17&view_all=true", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:54:23.805Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:54:23.805Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-15&view_all=true", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:54:23.805Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:54:23.806Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-19&view_all=true", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:54:23.926Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-20", - "requester": 1, - "isAdmin": true -} -[2026-01-18T23:54:23.929Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-22", - "requester": 1, - "isAdmin": true -} -[2026-01-18T23:54:23.931Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-21", - "requester": 1, - "isAdmin": true -} -[2026-01-18T23:54:23.934Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:54:23.935Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-20&view_all=true", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:54:23.936Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:54:23.937Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-22&view_all=true", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:54:23.938Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:54:23.940Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-21&view_all=true", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:54:23.942Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-23", - "requester": 1, - "isAdmin": true -} -[2026-01-18T23:54:23.943Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-24", - "requester": 1, - "isAdmin": true -} -[2026-01-18T23:54:23.945Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:54:23.947Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-23&view_all=true", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:54:23.947Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:54:23.948Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-24&view_all=true", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:54:24.019Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T23:54:24.057Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-25", - "requester": 1, - "isAdmin": true -} -[2026-01-18T23:54:24.059Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-26", - "requester": 1, - "isAdmin": true -} -[2026-01-18T23:54:24.060Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:54:24.061Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-25&view_all=true", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:54:24.062Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-27", - "requester": 1, - "isAdmin": true -} -[2026-01-18T23:54:24.064Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-28", - "requester": 1, - "isAdmin": true -} -[2026-01-18T23:54:24.065Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-29", - "requester": 1, - "isAdmin": true -} -[2026-01-18T23:54:24.065Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:54:24.066Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-26&view_all=true", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:54:24.066Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:54:24.066Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-27&view_all=true", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:54:24.067Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:54:24.068Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-28&view_all=true", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:54:24.068Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:54:24.069Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-29&view_all=true", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:54:24.181Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-30", - "requester": 1, - "isAdmin": true -} -[2026-01-18T23:54:24.183Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-18T23:54:24.184Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-30&view_all=true", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:54:24.361Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:54:34.553Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-18", - "requester": 1, - "isAdmin": true -} -[2026-01-18T23:54:34.556Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:54:34.557Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 1 -} -[2026-01-18T23:54:34.559Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-18&view_all=true", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:54:35.557Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:54:48.150Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:54:48.156Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:54:48.298Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/tasks", - "method": "GET" -} -[2026-01-18T23:54:48.300Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/tasks", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:54:49.078Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:54:52.995Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 304, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:54:53.008Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 304, - "duration": "11ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:54:53.016Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 304, - "duration": "17ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:54:53.917Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:54:54.143Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T23:55:24.283Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T23:55:54.382Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T23:56:24.681Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T23:56:55.368Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T23:57:25.461Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T23:57:39.223Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2026-01-18T23:57:39.225Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-01-18T23:57:39.739Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-18T23:57:40.261Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-18T23:57:40.794Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-18T23:57:41.535Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-18T23:57:42.672Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-18T23:57:44.669Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-18T23:57:48.268Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-18T23:57:55.089Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-18T23:58:08.242Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-18T23:58:24.653Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-18T23:58:25.075Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-18T23:58:25.573Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-18T23:58:26.312Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-18T23:58:27.455Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-18T23:58:29.376Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-18T23:58:32.951Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-18T23:58:39.714Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-18T23:58:52.847Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-18T23:59:00.482Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-18T23:59:00.537Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-01-18T23:59:00.633Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2026-01-18T23:59:00.636Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-01-18T23:59:05.405Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T23:59:31.120Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2026-01-18T23:59:31.122Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-01-18T23:59:31.590Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-18T23:59:31.649Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-01-18T23:59:31.738Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2026-01-18T23:59:31.742Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-01-18T23:59:32.851Z] [INFO] ℹ️ MariaDB 연결 성공 - Context: { - "connection": "db:3306", - "database": "hyungi", - "connectionLimit": 10 -} -[2026-01-18T23:59:32.862Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 200, - "duration": "69ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:59:32.870Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "68ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:59:32.873Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 200, - "duration": "67ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:59:33.746Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:59:35.239Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 200, - "duration": "20ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:59:35.257Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:59:35.263Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/tasks", - "method": "GET" -} -[2026-01-18T23:59:35.263Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/tasks", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:59:36.192Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:59:36.493Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-18T23:59:40.568Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-18", - "requester": 1, - "isAdmin": true -} -[2026-01-18T23:59:40.574Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:59:40.577Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 1 -} -[2026-01-18T23:59:40.578Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-18&view_all=true", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:59:41.560Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:59:42.140Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:59:43.133Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:59:43.140Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:59:50.287Z] [INFO] ℹ️ 프로젝트별-작업별 시간 분석 요청 - Context: { - "start": "2025-08-01", - "end": "2026-01-31" -} -[2026-01-18T23:59:50.293Z] [INFO] ℹ️ 작업자별 통계 조회 요청 - Context: { - "start": "2025-08-01", - "end": "2026-01-31" -} -[2026-01-18T23:59:50.304Z] [INFO] ℹ️ 작업자별 통계 조회 성공 - Context: { - "start": "2025-08-01", - "end": "2026-01-31", - "workerCount": 11 -} -[2026-01-18T23:59:50.307Z] [INFO] ℹ️ 프로젝트별-작업별 시간 분석 성공 - Context: { - "start": "2025-08-01", - "end": "2026-01-31", - "projectCount": 6, - "workTypeCount": 3, - "totalHours": 3204 -} -[2026-01-18T23:59:50.309Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-analysis/worker-stats?start=2025-08-01&end=2026-01-31", - "statusCode": 200, - "duration": "18ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:59:50.310Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-analysis/project-worktype-analysis?start=2025-08-01&end=2026-01-31", - "statusCode": 200, - "duration": "26ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:59:50.317Z] [INFO] ℹ️ 최근 작업 현황 조회 요청 - Context: { - "start": "2025-08-01", - "end": "2026-01-31", - "limit": 2000 -} -[2026-01-18T23:59:50.334Z] [INFO] ℹ️ 최근 작업 현황 조회 성공 - Context: { - "start": "2025-08-01", - "end": "2026-01-31", - "limit": 2000, - "resultCount": 448 -} -[2026-01-18T23:59:50.340Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-analysis/recent-work?start=2025-08-01&end=2026-01-31&limit=2000", - "statusCode": 200, - "duration": "25ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T00:00:06.611Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T00:00:36.729Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T00:01:06.819Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T00:01:36.956Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T00:02:07.113Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T00:02:37.240Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T00:03:07.348Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T00:03:37.442Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T00:04:07.531Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T00:04:37.637Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T00:05:07.725Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T00:05:37.827Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T00:06:07.947Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T00:06:38.033Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T00:07:08.132Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T00:07:38.235Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T00:08:08.336Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T00:08:38.434Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T00:09:08.526Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T00:09:38.611Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T00:10:08.697Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T00:10:38.803Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T00:11:08.904Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T00:11:38.991Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T00:12:09.080Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T00:12:39.178Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T00:13:09.268Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T00:13:39.362Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T00:14:09.477Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T00:14:39.555Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T00:15:09.664Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T00:17:08.880Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T00:17:38.982Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T00:18:30.833Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T00:19:47.838Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T00:20:17.941Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T00:20:48.056Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T00:21:18.155Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T00:21:48.241Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T00:22:18.331Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T00:22:48.425Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T00:23:18.527Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T00:23:48.603Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T00:24:18.673Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T00:24:48.815Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T00:25:33.257Z] [INFO] ℹ️ 사용자 목록 조회 요청 - Context: { - "requestedBy": "hyungi" -} -[2026-01-19T00:25:33.270Z] [ERROR] ❌ 사용자 목록 조회 실패 - Context: { - "error": "Unknown column 'phone' in 'field list'" -} -[2026-01-19T00:25:33.275Z] [ERROR] ❌ 사용자 목록을 조회하는데 실패했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 사용자 목록을 조회하는데 실패했습니다\n at /usr/src/app/controllers/userController.js:64:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "url": "/api/users", - "method": "GET", - "user": "hyungi" -} -[2026-01-19T00:25:33.276Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/users", - "statusCode": 500, - "duration": "45ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T00:25:34.241Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T00:25:37.818Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T00:26:07.914Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T00:26:38.010Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T00:27:08.100Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T00:27:12.280Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2026-01-19T00:27:12.283Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-01-19T00:27:12.782Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-19T00:27:12.853Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-01-19T00:27:12.936Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2026-01-19T00:27:12.939Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-01-19T00:27:17.657Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T00:27:47.768Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T00:28:17.856Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T00:28:22.861Z] [INFO] ℹ️ 사용자 목록 조회 요청 - Context: { - "requestedBy": "hyungi" -} -[2026-01-19T00:28:22.898Z] [INFO] ℹ️ MariaDB 연결 성공 - Context: { - "connection": "db:3306", - "database": "hyungi", - "connectionLimit": 10 -} -[2026-01-19T00:28:22.901Z] [ERROR] ❌ 사용자 목록 조회 실패 - Context: { - "error": "Unknown column 'phone' in 'field list'" -} -[2026-01-19T00:28:22.903Z] [ERROR] ❌ 사용자 목록을 조회하는데 실패했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 사용자 목록을 조회하는데 실패했습니다\n at /usr/src/app/controllers/userController.js:64:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "url": "/api/users", - "method": "GET", - "user": "hyungi" -} -[2026-01-19T00:28:22.904Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/users", - "statusCode": 500, - "duration": "77ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T00:28:23.819Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T00:28:47.966Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T00:29:18.058Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T00:29:35.237Z] [WARN] ⚠️ 인증 실패: 유효하지 않은 토큰 - Context: { - "error": "jwt malformed", - "path": "/", - "ip": "::ffff:192.168.65.1" -} -[2026-01-19T00:29:35.240Z] [WARN] ⚠️ 유효하지 않은 토큰입니다 - Context: { - "code": "AUTHENTICATION_ERROR", - "url": "/api/users", - "method": "GET", - "user": "anonymous" -} -[2026-01-19T00:29:35.252Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/users", - "statusCode": 401, - "duration": "18ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-01-19T00:29:48.152Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T00:30:18.239Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T00:30:48.326Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T00:31:18.426Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T00:31:48.485Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T00:32:18.554Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T00:32:48.626Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T00:33:18.693Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T00:33:48.765Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T00:34:18.853Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T00:34:48.950Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T00:35:19.036Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T00:35:49.124Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T00:36:19.206Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T00:36:31.597Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-01-19T00:36:49.294Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T00:37:19.403Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T00:37:37.825Z] [INFO] ℹ️ 사용자 목록 조회 요청 - Context: { - "requestedBy": "hyungi" -} -[2026-01-19T00:37:37.852Z] [ERROR] ❌ 사용자 목록 조회 실패 - Context: { - "error": "Unknown column 'phone' in 'field list'" -} -[2026-01-19T00:37:37.856Z] [ERROR] ❌ 사용자 목록을 조회하는데 실패했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 사용자 목록을 조회하는데 실패했습니다\n at /usr/src/app/controllers/userController.js:64:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "url": "/api/users", - "method": "GET", - "user": "hyungi" -} -[2026-01-19T00:37:37.860Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/users", - "statusCode": 500, - "duration": "38ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T00:37:38.817Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T00:37:49.517Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T00:38:19.598Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T00:38:49.659Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T00:39:19.722Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T00:39:44.207Z] [WARN] ⚠️ 인증 실패: 유효하지 않은 토큰 - Context: { - "error": "invalid signature", - "path": "/", - "ip": "::ffff:192.168.65.1" -} -[2026-01-19T00:39:44.209Z] [WARN] ⚠️ 유효하지 않은 토큰입니다 - Context: { - "code": "AUTHENTICATION_ERROR", - "url": "/api/users", - "method": "GET", - "user": "anonymous" -} -[2026-01-19T00:39:44.212Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/users", - "statusCode": 401, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-01-19T00:39:49.803Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T00:40:19.891Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T00:40:49.971Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T00:41:20.071Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T00:41:50.167Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T00:42:20.270Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T00:42:24.865Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2026-01-19T00:42:24.868Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-01-19T00:42:25.341Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-19T00:42:25.400Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-01-19T00:42:25.501Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2026-01-19T00:42:25.504Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-01-19T00:42:30.259Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T00:42:55.843Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2026-01-19T00:42:55.846Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-01-19T00:42:56.279Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-19T00:42:56.340Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-01-19T00:42:56.404Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2026-01-19T00:42:56.407Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-01-19T00:43:01.191Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T00:43:31.275Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T00:43:47.185Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2026-01-19T00:43:47.187Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-01-19T00:43:48.332Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-19T00:43:48.390Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-01-19T00:43:48.460Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2026-01-19T00:43:48.463Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-01-19T00:43:53.220Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T00:44:23.306Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T00:44:53.399Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T00:45:23.496Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T00:45:53.590Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T00:46:23.684Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T00:46:53.777Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T00:47:23.864Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T00:47:53.959Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T00:48:24.060Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T00:48:54.161Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T00:49:24.259Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T00:49:54.356Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T00:50:24.450Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T00:50:26.243Z] [INFO] ℹ️ MariaDB 연결 성공 - Context: { - "connection": "db:3306", - "database": "hyungi", - "connectionLimit": 10 -} -[2026-01-19T00:50:26.248Z] [ERROR] ❌ 서버 오류가 발생했습니다. - Context: { - "code": "INTERNAL_ERROR", - "stack": "AppError: 서버 오류가 발생했습니다.\n at errorHandler (/usr/src/app/middlewares/errorHandler.js:51:13)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:71:5)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/src/app/node_modules/express/lib/router/index.js:280:10)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:67:12)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)", - "url": "/api/auth/login", - "method": "POST", - "user": "anonymous" -} -[2026-01-19T00:50:26.249Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 500, - "duration": "17ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-01-19T00:50:44.368Z] [ERROR] ❌ 서버 오류가 발생했습니다. - Context: { - "code": "INTERNAL_ERROR", - "stack": "AppError: 서버 오류가 발생했습니다.\n at errorHandler (/usr/src/app/middlewares/errorHandler.js:51:13)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:71:5)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/src/app/node_modules/express/lib/router/index.js:280:10)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:67:12)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)", - "url": "/api/auth/login", - "method": "POST", - "user": "anonymous" -} -[2026-01-19T00:50:44.372Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 500, - "duration": "11ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-01-19T00:50:52.780Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2026-01-19T00:50:52.781Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-01-19T00:50:53.239Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-19T00:50:53.295Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-01-19T00:50:53.361Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2026-01-19T00:50:53.364Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-01-19T00:50:58.158Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T00:51:02.683Z] [INFO] ℹ️ MariaDB 연결 성공 - Context: { - "connection": "db:3306", - "database": "hyungi", - "connectionLimit": 10 -} -[2026-01-19T00:51:02.688Z] [ERROR] ❌ 아이디 또는 비밀번호가 올바르지 않습니다. - Context: { - "code": "INTERNAL_ERROR", - "stack": "AppError: 아이디 또는 비밀번호가 올바르지 않습니다.\n at errorHandler (/usr/src/app/middlewares/errorHandler.js:51:13)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:71:5)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/src/app/node_modules/express/lib/router/index.js:280:10)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:67:12)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)", - "url": "/api/auth/login", - "method": "POST", - "user": "anonymous" -} -[2026-01-19T00:51:02.690Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 500, - "duration": "21ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-01-19T00:51:28.305Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T00:51:58.437Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T00:52:04.069Z] [ERROR] ❌ 아이디 또는 비밀번호가 올바르지 않습니다. - Context: { - "code": "INTERNAL_ERROR", - "stack": "AppError: 아이디 또는 비밀번호가 올바르지 않습니다.\n at errorHandler (/usr/src/app/middlewares/errorHandler.js:51:13)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:71:5)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/src/app/node_modules/express/lib/router/index.js:280:10)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:67:12)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)", - "url": "/api/auth/login", - "method": "POST", - "user": "anonymous" -} -[2026-01-19T00:52:04.071Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 500, - "duration": "101ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-01-19T00:52:09.791Z] [ERROR] ❌ 아이디 또는 비밀번호가 올바르지 않습니다. - Context: { - "code": "INTERNAL_ERROR", - "stack": "AppError: 아이디 또는 비밀번호가 올바르지 않습니다.\n at errorHandler (/usr/src/app/middlewares/errorHandler.js:51:13)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:71:5)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/src/app/node_modules/express/lib/router/index.js:280:10)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:67:12)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)", - "url": "/api/auth/login", - "method": "POST", - "user": "anonymous" -} -[2026-01-19T00:52:09.793Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 500, - "duration": "81ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-01-19T00:52:28.540Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T00:52:49.711Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2026-01-19T00:52:49.714Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-01-19T00:52:50.187Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-19T00:52:50.245Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-01-19T00:52:50.313Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2026-01-19T00:52:50.316Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-01-19T00:52:55.086Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T00:53:00.469Z] [ERROR] ❌ Unexpected token ! in JSON at position 44 - Context: { - "code": "INTERNAL_ERROR", - "stack": "AppError: Unexpected token ! in JSON at position 44\n at errorHandler (/usr/src/app/middlewares/errorHandler.js:51:13)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:71:5)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/src/app/node_modules/express/lib/router/index.js:280:10)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:67:12)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)", - "url": "/api/auth/login", - "method": "POST", - "user": "anonymous" -} -[2026-01-19T00:53:04.691Z] [INFO] ℹ️ MariaDB 연결 성공 - Context: { - "connection": "db:3306", - "database": "hyungi", - "connectionLimit": 10 -} -[2026-01-19T00:53:04.774Z] [ERROR] ❌ 아이디 또는 비밀번호가 올바르지 않습니다. - Context: { - "code": "INTERNAL_ERROR", - "stack": "AppError: 아이디 또는 비밀번호가 올바르지 않습니다.\n at errorHandler (/usr/src/app/middlewares/errorHandler.js:51:13)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:71:5)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/src/app/node_modules/express/lib/router/index.js:280:10)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:67:12)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)", - "url": "/api/auth/login", - "method": "POST", - "user": "anonymous" -} -[2026-01-19T00:53:04.775Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 500, - "duration": "103ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-01-19T00:53:25.177Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T00:53:47.331Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 200, - "duration": "70ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-01-19T00:53:54.154Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-19", - "requester": 1, - "isAdmin": true -} -[2026-01-19T00:53:54.174Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T00:53:54.175Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-19&view_all=true", - "statusCode": 200, - "duration": "23ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T00:53:54.185Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "42ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T00:53:55.122Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T00:53:55.325Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T00:54:01.281Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T00:54:01.300Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T00:54:01.323Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/tasks", - "method": "GET" -} -[2026-01-19T00:54:01.324Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/tasks", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T00:54:02.276Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T00:54:03.570Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T00:54:04.561Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T00:54:14.483Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-19", - "requester": 1, - "isAdmin": true -} -[2026-01-19T00:54:14.488Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "17ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T00:54:14.489Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T00:54:14.490Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-19&view_all=true", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T00:54:16.387Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T00:54:17.355Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T00:54:17.371Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T00:54:18.949Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-19", - "requester": 1, - "isAdmin": true -} -[2026-01-19T00:54:18.967Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T00:54:18.969Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-19&view_all=true", - "statusCode": 200, - "duration": "22ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T00:54:18.972Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "31ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T00:54:19.942Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T00:54:23.250Z] [INFO] ℹ️ 사용자 목록 조회 요청 - Context: { - "requestedBy": "hyungi" -} -[2026-01-19T00:54:23.251Z] [ERROR] ❌ 사용자 목록 조회 실패 - Context: { - "error": "Unknown column 'phone' in 'field list'" -} -[2026-01-19T00:54:23.252Z] [ERROR] ❌ 사용자 목록을 조회하는데 실패했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 사용자 목록을 조회하는데 실패했습니다\n at /usr/src/app/controllers/userController.js:64:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "url": "/api/users", - "method": "GET", - "user": "hyungi" -} -[2026-01-19T00:54:23.253Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/users", - "statusCode": 500, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T00:54:24.248Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T00:54:25.418Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T00:54:26.035Z] [WARN] ⚠️ 관리자 권한 없는 접근 시도 - Context: { - "userId": 1, - "username": "hyungi", - "role": "Admin", - "url": "/api/users" -} -[2026-01-19T00:54:26.037Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/users", - "statusCode": 403, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "curl/8.7.1" -} -[2026-01-19T00:54:49.356Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2026-01-19T00:54:49.359Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-01-19T00:54:49.833Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-19T00:54:49.892Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-01-19T00:54:49.966Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2026-01-19T00:54:49.969Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-01-19T00:54:54.715Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T00:55:13.652Z] [INFO] ℹ️ MariaDB 연결 성공 - Context: { - "connection": "db:3306", - "database": "hyungi", - "connectionLimit": 10 -} -[2026-01-19T00:55:13.738Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 200, - "duration": "108ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-01-19T00:55:18.122Z] [WARN] ⚠️ 인증 실패: 유효하지 않은 토큰 - Context: { - "error": "jwt malformed", - "path": "/", - "ip": "::ffff:192.168.65.1" -} -[2026-01-19T00:55:18.125Z] [WARN] ⚠️ 유효하지 않은 토큰입니다 - Context: { - "code": "AUTHENTICATION_ERROR", - "url": "/api/users", - "method": "GET", - "user": "anonymous" -} -[2026-01-19T00:55:18.128Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/users", - "statusCode": 401, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-01-19T00:55:24.810Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T00:55:54.911Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T00:56:25.002Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T00:56:55.098Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T00:57:25.210Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T00:57:29.712Z] [WARN] ⚠️ 관리자 권한 없는 접근 시도 - Context: { - "userId": 1, - "username": "hyungi", - "role": "Admin", - "url": "/api/users" -} -[2026-01-19T00:57:29.715Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/users", - "statusCode": 403, - "duration": "12ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "curl/8.7.1" -} -[2026-01-19T00:57:53.621Z] [WARN] ⚠️ 관리자 권한 없는 접근 시도 - Context: { - "userId": 1, - "username": "hyungi", - "role": "Admin", - "url": "/api/users" -} -[2026-01-19T00:57:53.623Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/users", - "statusCode": 403, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "curl/8.7.1" -} -[2026-01-19T00:57:55.300Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T00:57:59.844Z] [WARN] ⚠️ 관리자 권한 없는 접근 시도 - Context: { - "userId": 1, - "username": "hyungi", - "role": "Admin", - "url": "/api/users" -} -[2026-01-19T00:57:59.847Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/users", - "statusCode": 403, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "curl/8.7.1" -} -[2026-01-19T00:58:25.394Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T00:58:33.576Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2026-01-19T00:58:33.578Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-01-19T00:58:33.994Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-19T00:58:34.050Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-01-19T00:58:34.119Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2026-01-19T00:58:34.122Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-01-19T00:58:38.902Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T00:58:44.507Z] [INFO] ℹ️ MariaDB 연결 성공 - Context: { - "connection": "db:3306", - "database": "hyungi", - "connectionLimit": 10 -} -[2026-01-19T00:58:44.590Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 200, - "duration": "97ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-01-19T00:58:44.606Z] [WARN] ⚠️ 인증 실패: 유효하지 않은 토큰 - Context: { - "error": "jwt malformed", - "path": "/", - "ip": "::ffff:192.168.65.1" -} -[2026-01-19T00:58:44.607Z] [WARN] ⚠️ 유효하지 않은 토큰입니다 - Context: { - "code": "AUTHENTICATION_ERROR", - "url": "/api/users", - "method": "GET", - "user": "anonymous" -} -[2026-01-19T00:58:44.608Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/users", - "statusCode": 401, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-01-19T00:58:48.873Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 200, - "duration": "80ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-01-19T00:58:54.608Z] [INFO] ℹ️ 사용자 목록 조회 요청 - Context: { - "requestedBy": "hyungi" -} -[2026-01-19T00:58:54.612Z] [ERROR] ❌ 사용자 목록 조회 실패 - Context: { - "error": "Unknown column 'phone' in 'field list'" -} -[2026-01-19T00:58:54.613Z] [ERROR] ❌ 사용자 목록을 조회하는데 실패했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 사용자 목록을 조회하는데 실패했습니다\n at /usr/src/app/controllers/userController.js:64:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "url": "/api/users", - "method": "GET", - "user": "hyungi" -} -[2026-01-19T00:58:54.615Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/users", - "statusCode": 500, - "duration": "17ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "curl/8.7.1" -} -[2026-01-19T00:59:09.008Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T00:59:30.532Z] [INFO] ℹ️ 사용자 목록 조회 요청 - Context: { - "requestedBy": "hyungi" -} -[2026-01-19T00:59:30.534Z] [ERROR] ❌ 사용자 목록 조회 실패 - Context: { - "error": "Unknown column 'phone' in 'field list'" -} -[2026-01-19T00:59:30.536Z] [ERROR] ❌ 사용자 목록을 조회하는데 실패했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 사용자 목록을 조회하는데 실패했습니다\n at /usr/src/app/controllers/userController.js:64:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "url": "/api/users", - "method": "GET", - "user": "hyungi" -} -[2026-01-19T00:59:30.538Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/users", - "statusCode": 500, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "curl/8.7.1" -} -[2026-01-19T00:59:39.076Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T00:59:45.309Z] [INFO] ℹ️ 사용자 목록 조회 요청 - Context: { - "requestedBy": "hyungi" -} -[2026-01-19T00:59:45.312Z] [ERROR] ❌ 사용자 목록 조회 실패 - Context: { - "error": "Unknown column 'phone' in 'field list'" -} -[2026-01-19T00:59:45.314Z] [ERROR] ❌ 사용자 목록을 조회하는데 실패했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 사용자 목록을 조회하는데 실패했습니다\n at /usr/src/app/controllers/userController.js:64:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "url": "/api/users", - "method": "GET", - "user": "hyungi" -} -[2026-01-19T00:59:45.316Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/users", - "statusCode": 500, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "curl/8.7.1" -} -[2026-01-19T01:00:09.189Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "5ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T01:00:39.280Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T01:00:44.328Z] [INFO] ℹ️ 사용자 목록 조회 요청 - Context: { - "requestedBy": "hyungi" -} -[2026-01-19T01:00:44.331Z] [ERROR] ❌ 사용자 목록 조회 실패 - Context: { - "error": "Unknown column 'phone' in 'field list'" -} -[2026-01-19T01:00:44.331Z] [ERROR] ❌ 사용자 목록을 조회하는데 실패했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 사용자 목록을 조회하는데 실패했습니다\n at /usr/src/app/controllers/userController.js:64:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "url": "/api/users", - "method": "GET", - "user": "hyungi" -} -[2026-01-19T01:00:44.333Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/users", - "statusCode": 500, - "duration": "13ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "curl/8.7.1" -} -[2026-01-19T01:01:03.344Z] [INFO] ℹ️ 사용자 목록 조회 요청 - Context: { - "requestedBy": "hyungi" -} -[2026-01-19T01:01:03.347Z] [ERROR] ❌ 사용자 목록 조회 실패 - Context: { - "error": "Unknown column 'phone' in 'field list'" -} -[2026-01-19T01:01:03.348Z] [ERROR] ❌ 사용자 목록을 조회하는데 실패했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 사용자 목록을 조회하는데 실패했습니다\n at /usr/src/app/controllers/userController.js:64:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "url": "/api/users", - "method": "GET", - "user": "hyungi" -} -[2026-01-19T01:01:03.350Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/users", - "statusCode": 500, - "duration": "12ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "curl/8.7.1" -} -[2026-01-19T01:01:09.404Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T01:01:09.930Z] [INFO] ℹ️ 사용자 목록 조회 요청 - Context: { - "requestedBy": "hyungi" -} -[2026-01-19T01:01:09.933Z] [ERROR] ❌ 사용자 목록 조회 실패 - Context: { - "error": "Unknown column 'phone' in 'field list'" -} -[2026-01-19T01:01:09.935Z] [ERROR] ❌ 사용자 목록을 조회하는데 실패했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 사용자 목록을 조회하는데 실패했습니다\n at /usr/src/app/controllers/userController.js:64:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "url": "/api/users", - "method": "GET", - "user": "hyungi" -} -[2026-01-19T01:01:09.937Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/users", - "statusCode": 500, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "curl/8.7.1" -} -[2026-01-19T01:01:21.609Z] [INFO] ℹ️ 사용자 목록 조회 요청 - Context: { - "requestedBy": "hyungi" -} -[2026-01-19T01:01:21.612Z] [ERROR] ❌ 사용자 목록 조회 실패 - Context: { - "error": "Unknown column 'phone' in 'field list'" -} -[2026-01-19T01:01:21.613Z] [ERROR] ❌ 사용자 목록을 조회하는데 실패했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 사용자 목록을 조회하는데 실패했습니다\n at /usr/src/app/controllers/userController.js:64:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "url": "/api/users", - "method": "GET", - "user": "hyungi" -} -[2026-01-19T01:01:21.614Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/users", - "statusCode": 500, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "curl/8.7.1" -} -[2026-01-19T01:01:26.717Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2026-01-19T01:01:26.720Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-01-19T01:01:27.358Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-19T01:01:27.433Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-01-19T01:01:27.513Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2026-01-19T01:01:27.516Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-01-19T01:01:32.185Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T01:01:38.378Z] [INFO] ℹ️ MariaDB 연결 성공 - Context: { - "connection": "db:3306", - "database": "hyungi", - "connectionLimit": 10 -} -[2026-01-19T01:01:38.503Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 200, - "duration": "152ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-01-19T01:01:38.518Z] [WARN] ⚠️ 인증 실패: 유효하지 않은 토큰 - Context: { - "error": "jwt malformed", - "path": "/", - "ip": "::ffff:192.168.65.1" -} -[2026-01-19T01:01:38.519Z] [WARN] ⚠️ 유효하지 않은 토큰입니다 - Context: { - "code": "AUTHENTICATION_ERROR", - "url": "/api/users", - "method": "GET", - "user": "anonymous" -} -[2026-01-19T01:01:38.521Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/users", - "statusCode": 401, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-01-19T01:01:56.930Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 200, - "duration": "75ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-01-19T01:02:02.283Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T01:02:03.016Z] [INFO] ℹ️ 사용자 목록 조회 요청 - Context: { - "requestedBy": "hyungi" -} -[2026-01-19T01:02:03.027Z] [INFO] ℹ️ 사용자 목록 조회 성공 - Context: { - "count": 6 -} -[2026-01-19T01:02:03.029Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users", - "statusCode": 200, - "duration": "21ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "curl/8.7.1" -} -[2026-01-19T01:02:32.360Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T01:03:02.462Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T01:03:32.552Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T01:04:02.652Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T01:04:04.730Z] [INFO] ℹ️ 사용자 목록 조회 요청 - Context: { - "requestedBy": "hyungi" -} -[2026-01-19T01:04:04.741Z] [INFO] ℹ️ 사용자 목록 조회 성공 - Context: { - "count": 6 -} -[2026-01-19T01:04:04.752Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users", - "statusCode": 200, - "duration": "36ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T01:04:05.721Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T01:04:32.765Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T01:04:48.507Z] [INFO] ℹ️ 사용자 목록 조회 요청 - Context: { - "requestedBy": "hyungi" -} -[2026-01-19T01:04:48.510Z] [INFO] ℹ️ 사용자 목록 조회 성공 - Context: { - "count": 6 -} -[2026-01-19T01:04:48.516Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users", - "statusCode": 200, - "duration": "16ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T01:04:49.485Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T01:05:02.853Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T01:05:12.975Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-19", - "requester": 1, - "isAdmin": true -} -[2026-01-19T01:05:12.983Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T01:05:12.983Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-19&view_all=true", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T01:05:12.985Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "15ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T01:05:15.068Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T01:05:15.085Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T01:05:15.110Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/tasks", - "method": "GET" -} -[2026-01-19T01:05:15.110Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/tasks", - "statusCode": 404, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T01:05:16.064Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T01:05:18.173Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T01:05:19.161Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T01:05:32.958Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T01:05:36.550Z] [ERROR] ❌ 작업자 수정 중 오류가 발생했습니다: Unknown column 'show_in_work_reports' in 'field list' - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 작업자 수정 중 오류가 발생했습니다: Unknown column 'show_in_work_reports' in 'field list'\n at /usr/src/app/controllers/workerController.js:129:16\n at Object.update (/usr/src/app/models/workerModel.js:145:5)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "url": "/api/workers/7", - "method": "PUT", - "user": "hyungi" -} -[2026-01-19T01:05:36.555Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "PUT", - "url": "/api/workers/7", - "statusCode": 500, - "duration": "20ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T01:06:03.056Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T01:06:33.162Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T01:07:03.257Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T01:07:33.328Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T01:08:03.422Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T01:08:33.522Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T01:09:03.648Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T01:09:33.763Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T01:10:03.851Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T01:10:33.945Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T01:11:04.032Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T01:14:57.683Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T01:16:57.032Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T01:17:27.138Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T01:18:07.978Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T01:18:38.065Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T01:19:08.147Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T01:19:38.254Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T01:20:02.866Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "14ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T01:20:03.830Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T01:20:08.351Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T01:20:19.705Z] [ERROR] ❌ 작업자 수정 중 오류가 발생했습니다: Unknown column 'employment_status' in 'field list' - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 작업자 수정 중 오류가 발생했습니다: Unknown column 'employment_status' in 'field list'\n at /usr/src/app/controllers/workerController.js:129:16\n at Object.update (/usr/src/app/models/workerModel.js:145:5)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "url": "/api/workers/7", - "method": "PUT", - "user": "hyungi" -} -[2026-01-19T01:20:19.708Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "PUT", - "url": "/api/workers/7", - "statusCode": 500, - "duration": "11ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T01:20:38.459Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T01:21:08.571Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T01:21:38.674Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T01:22:08.754Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T01:22:38.826Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T01:23:08.932Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T01:23:39.028Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T01:24:09.125Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T01:24:39.223Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T01:25:04.434Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 200, - "duration": "73ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-01-19T01:25:09.325Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T01:25:39.431Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T01:26:09.529Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T01:27:11.709Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T01:27:41.795Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T01:27:52.024Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 200, - "duration": "74ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-01-19T01:28:00.203Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/users/me/attendance-records?year=2026&month=1", - "statusCode": 500, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "curl/8.7.1" -} -[2026-01-19T01:28:11.878Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T01:28:41.991Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T01:28:52.115Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/users/me/attendance-records?year=2026&month=1", - "statusCode": 500, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "curl/8.7.1" -} -[2026-01-19T01:28:58.814Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2026-01-19T01:28:58.816Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-01-19T01:28:59.272Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-19T01:28:59.331Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-01-19T01:28:59.399Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2026-01-19T01:28:59.402Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-01-19T01:29:04.170Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T01:29:26.271Z] [INFO] ℹ️ MariaDB 연결 성공 - Context: { - "connection": "db:3306", - "database": "hyungi", - "connectionLimit": 10 -} -[2026-01-19T01:29:26.354Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 200, - "duration": "99ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-01-19T01:29:34.135Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users/me/attendance-records?year=2026&month=1", - "statusCode": 200, - "duration": "15ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "curl/8.7.1" -} -[2026-01-19T01:29:34.243Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T01:29:45.341Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/users/me/vacation-balance?year=2026", - "statusCode": 500, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "curl/8.7.1" -} -[2026-01-19T01:29:45.481Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/users/me/monthly-stats?year=2026&month=1", - "statusCode": 500, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "curl/8.7.1" -} -[2026-01-19T01:30:04.333Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T01:30:34.432Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T01:31:04.532Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T01:31:34.624Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T01:32:04.715Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T01:32:34.812Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T01:33:04.905Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T01:33:35.018Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T01:34:05.110Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T01:34:27.016Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2026-01-19T01:34:27.019Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-01-19T01:34:27.610Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-19T01:34:27.703Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-01-19T01:34:27.795Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2026-01-19T01:34:27.799Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-01-19T01:34:32.399Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T01:34:39.963Z] [INFO] ℹ️ MariaDB 연결 성공 - Context: { - "connection": "db:3306", - "database": "hyungi", - "connectionLimit": 10 -} -[2026-01-19T01:34:40.050Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 200, - "duration": "104ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-01-19T01:35:02.504Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T01:35:32.595Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T01:36:02.694Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T01:36:32.787Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T01:37:02.881Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T01:37:32.975Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T01:37:43.515Z] [WARN] ⚠️ 인증 실패: Bearer 토큰 누락 - Context: { - "path": "/", - "method": "GET", - "ip": "::ffff:192.168.65.1" -} -[2026-01-19T01:37:43.517Z] [WARN] ⚠️ Bearer 토큰이 필요합니다 - Context: { - "code": "AUTHENTICATION_ERROR", - "url": "/api/users/me/vacation-balance?year=2026", - "method": "GET", - "user": "anonymous" -} -[2026-01-19T01:37:43.518Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/users/me/vacation-balance?year=2026", - "statusCode": 401, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-01-19T01:37:43.604Z] [WARN] ⚠️ 인증 실패: Bearer 토큰 누락 - Context: { - "path": "/", - "method": "GET", - "ip": "::ffff:192.168.65.1" -} -[2026-01-19T01:37:43.606Z] [WARN] ⚠️ Bearer 토큰이 필요합니다 - Context: { - "code": "AUTHENTICATION_ERROR", - "url": "/api/users/me/monthly-stats?year=2026&month=1", - "method": "GET", - "user": "anonymous" -} -[2026-01-19T01:37:43.608Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/users/me/monthly-stats?year=2026&month=1", - "statusCode": 401, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-01-19T01:37:53.595Z] [ERROR] ❌ 아이디 또는 비밀번호가 올바르지 않습니다. - Context: { - "code": "INTERNAL_ERROR", - "stack": "AppError: 아이디 또는 비밀번호가 올바르지 않습니다.\n at errorHandler (/usr/src/app/middlewares/errorHandler.js:51:13)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:71:5)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/src/app/node_modules/express/lib/router/index.js:280:10)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:67:12)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)", - "url": "/api/auth/login", - "method": "POST", - "user": "anonymous" -} -[2026-01-19T01:37:53.596Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 500, - "duration": "84ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-01-19T01:38:00.327Z] [ERROR] ❌ 아이디 또는 비밀번호가 올바르지 않습니다. - Context: { - "code": "INTERNAL_ERROR", - "stack": "AppError: 아이디 또는 비밀번호가 올바르지 않습니다.\n at errorHandler (/usr/src/app/middlewares/errorHandler.js:51:13)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:71:5)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/src/app/node_modules/express/lib/router/index.js:280:10)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:67:12)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)", - "url": "/api/auth/login", - "method": "POST", - "user": "anonymous" -} -[2026-01-19T01:38:00.328Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 500, - "duration": "84ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-01-19T01:38:03.067Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T01:38:33.176Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "5ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T01:39:03.277Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T01:39:13.291Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 200, - "duration": "88ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-01-19T01:39:30.767Z] [WARN] ⚠️ 인증 실패: Bearer 토큰 누락 - Context: { - "path": "/", - "method": "GET", - "ip": "::ffff:192.168.65.1" -} -[2026-01-19T01:39:30.768Z] [WARN] ⚠️ Bearer 토큰이 필요합니다 - Context: { - "code": "AUTHENTICATION_ERROR", - "url": "/api/users/me/vacation-balance?year=2026", - "method": "GET", - "user": "anonymous" -} -[2026-01-19T01:39:30.771Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/users/me/vacation-balance?year=2026", - "statusCode": 401, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-01-19T01:39:30.889Z] [WARN] ⚠️ 인증 실패: Bearer 토큰 누락 - Context: { - "path": "/", - "method": "GET", - "ip": "::ffff:192.168.65.1" -} -[2026-01-19T01:39:30.889Z] [WARN] ⚠️ Bearer 토큰이 필요합니다 - Context: { - "code": "AUTHENTICATION_ERROR", - "url": "/api/users/me/monthly-stats?year=2026&month=1", - "method": "GET", - "user": "anonymous" -} -[2026-01-19T01:39:30.890Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/users/me/monthly-stats?year=2026&month=1", - "statusCode": 401, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-01-19T01:39:30.989Z] [WARN] ⚠️ 인증 실패: Bearer 토큰 누락 - Context: { - "path": "/", - "method": "GET", - "ip": "::ffff:192.168.65.1" -} -[2026-01-19T01:39:30.990Z] [WARN] ⚠️ Bearer 토큰이 필요합니다 - Context: { - "code": "AUTHENTICATION_ERROR", - "url": "/api/users/me/attendance-records?year=2026&month=1", - "method": "GET", - "user": "anonymous" -} -[2026-01-19T01:39:30.991Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/users/me/attendance-records?year=2026&month=1", - "statusCode": 401, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-01-19T01:39:33.300Z] [INFO] ℹ️ MariaDB 연결 성공 - Context: { - "connection": "localhost:20306", - "database": "hyungi", - "connectionLimit": 10 -} -[2026-01-19T01:39:33.387Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T01:39:52.592Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/users/me/vacation-balance?year=2026", - "statusCode": 500, - "duration": "18ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "curl/8.7.1" -} -[2026-01-19T01:40:03.477Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T01:40:11.756Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users/me/monthly-stats?year=2026&month=1", - "statusCode": 200, - "duration": "19ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "curl/8.7.1" -} -[2026-01-19T01:40:14.046Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users/me/attendance-records?year=2026&month=1", - "statusCode": 200, - "duration": "15ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "curl/8.7.1" -} -[2026-01-19T01:40:25.901Z] [INFO] ℹ️ MariaDB 연결 성공 - Context: { - "connection": "localhost:20306", - "database": "hyungi", - "connectionLimit": 10 -} -[2026-01-19T01:40:33.570Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T01:40:45.475Z] [WARN] ⚠️ 인증 실패: 유효하지 않은 토큰 - Context: { - "error": "jwt malformed", - "path": "/", - "ip": "::ffff:192.168.65.1" -} -[2026-01-19T01:40:45.476Z] [WARN] ⚠️ 유효하지 않은 토큰입니다 - Context: { - "code": "AUTHENTICATION_ERROR", - "url": "/api/users/me/vacation-balance?year=2026", - "method": "GET", - "user": "anonymous" -} -[2026-01-19T01:40:45.477Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/users/me/vacation-balance?year=2026", - "statusCode": 401, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-01-19T01:40:45.492Z] [WARN] ⚠️ 인증 실패: 유효하지 않은 토큰 - Context: { - "error": "jwt malformed", - "path": "/", - "ip": "::ffff:192.168.65.1" -} -[2026-01-19T01:40:45.492Z] [WARN] ⚠️ 유효하지 않은 토큰입니다 - Context: { - "code": "AUTHENTICATION_ERROR", - "url": "/api/users/me/monthly-stats?year=2026&month=1", - "method": "GET", - "user": "anonymous" -} -[2026-01-19T01:40:45.493Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/users/me/monthly-stats?year=2026&month=1", - "statusCode": 401, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-01-19T01:40:45.503Z] [WARN] ⚠️ 인증 실패: 유효하지 않은 토큰 - Context: { - "error": "jwt malformed", - "path": "/", - "ip": "::ffff:192.168.65.1" -} -[2026-01-19T01:40:45.503Z] [WARN] ⚠️ 유효하지 않은 토큰입니다 - Context: { - "code": "AUTHENTICATION_ERROR", - "url": "/api/users/me/attendance-records?year=2026&month=1", - "method": "GET", - "user": "anonymous" -} -[2026-01-19T01:40:45.505Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/users/me/attendance-records?year=2026&month=1", - "statusCode": 401, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-01-19T01:40:51.152Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 200, - "duration": "65ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-01-19T01:41:03.451Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/users/me/vacation-balance?year=2026", - "statusCode": 500, - "duration": "16ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "curl/8.7.1" -} -[2026-01-19T01:41:03.480Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users/me/monthly-stats?year=2026&month=1", - "statusCode": 200, - "duration": "17ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "curl/8.7.1" -} -[2026-01-19T01:41:03.495Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users/me/attendance-records?year=2026&month=1", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "curl/8.7.1" -} -[2026-01-19T01:41:03.656Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T01:41:30.018Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users/me/vacation-balance?year=2026", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "curl/8.7.1" -} -[2026-01-19T01:41:30.034Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users/me/monthly-stats?year=2026&month=1", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "curl/8.7.1" -} -[2026-01-19T01:41:30.054Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users/me/attendance-records?year=2026&month=1", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "curl/8.7.1" -} -[2026-01-19T01:41:33.761Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T01:41:52.175Z] [INFO] ℹ️ MariaDB 연결 성공 - Context: { - "connection": "localhost:20306", - "database": "hyungi", - "connectionLimit": 10 -} -[2026-01-19T01:42:03.653Z] [WARN] ⚠️ 인증 실패: 유효하지 않은 토큰 - Context: { - "error": "jwt malformed", - "path": "/", - "ip": "::ffff:192.168.65.1" -} -[2026-01-19T01:42:03.654Z] [WARN] ⚠️ 유효하지 않은 토큰입니다 - Context: { - "code": "AUTHENTICATION_ERROR", - "url": "/api/users/me/attendance-records?year=2026&month=1", - "method": "GET", - "user": "anonymous" -} -[2026-01-19T01:42:03.658Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/users/me/attendance-records?year=2026&month=1", - "statusCode": 401, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-01-19T01:42:03.847Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T01:42:09.624Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 429, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-01-19T01:42:20.909Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 429, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-01-19T01:42:25.827Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 429, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-01-19T01:42:33.928Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T01:42:35.144Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 429, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-01-19T01:42:42.258Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 429, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-01-19T01:43:07.163Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2026-01-19T01:43:07.165Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-01-19T01:43:40.584Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-19T01:43:40.670Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-01-19T01:43:40.765Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2026-01-19T01:43:40.768Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-01-19T01:43:44.157Z] [INFO] ℹ️ MariaDB 연결 성공 - Context: { - "connection": "db:3306", - "database": "hyungi", - "connectionLimit": 10 -} -[2026-01-19T01:43:44.236Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 200, - "duration": "88ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-01-19T01:43:45.229Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T01:43:53.093Z] [WARN] ⚠️ 인증 실패: 유효하지 않은 토큰 - Context: { - "error": "jwt malformed", - "path": "/", - "ip": "::ffff:192.168.65.1" -} -[2026-01-19T01:43:53.110Z] [WARN] ⚠️ 유효하지 않은 토큰입니다 - Context: { - "code": "AUTHENTICATION_ERROR", - "url": "/api/users/me/vacation-balance?year=2026", - "method": "GET", - "user": "anonymous" -} -[2026-01-19T01:43:53.112Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/users/me/vacation-balance?year=2026", - "statusCode": 401, - "duration": "21ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-01-19T01:43:53.124Z] [WARN] ⚠️ 인증 실패: 유효하지 않은 토큰 - Context: { - "error": "jwt malformed", - "path": "/", - "ip": "::ffff:192.168.65.1" -} -[2026-01-19T01:43:53.126Z] [WARN] ⚠️ 유효하지 않은 토큰입니다 - Context: { - "code": "AUTHENTICATION_ERROR", - "url": "/api/users/me/monthly-stats?year=2026&month=1", - "method": "GET", - "user": "anonymous" -} -[2026-01-19T01:43:53.127Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/users/me/monthly-stats?year=2026&month=1", - "statusCode": 401, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-01-19T01:43:53.138Z] [WARN] ⚠️ 인증 실패: 유효하지 않은 토큰 - Context: { - "error": "jwt malformed", - "path": "/", - "ip": "::ffff:192.168.65.1" -} -[2026-01-19T01:43:53.139Z] [WARN] ⚠️ 유효하지 않은 토큰입니다 - Context: { - "code": "AUTHENTICATION_ERROR", - "url": "/api/users/me/attendance-records?year=2026&month=1", - "method": "GET", - "user": "anonymous" -} -[2026-01-19T01:43:53.141Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/users/me/attendance-records?year=2026&month=1", - "statusCode": 401, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-01-19T01:44:15.319Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T01:44:22.743Z] [WARN] ⚠️ 인증 실패: 유효하지 않은 토큰 - Context: { - "error": "jwt malformed", - "path": "/", - "ip": "::ffff:192.168.65.1" -} -[2026-01-19T01:44:22.743Z] [WARN] ⚠️ 유효하지 않은 토큰입니다 - Context: { - "code": "AUTHENTICATION_ERROR", - "url": "/api/users/me/vacation-balance?year=2026", - "method": "GET", - "user": "anonymous" -} -[2026-01-19T01:44:22.744Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/users/me/vacation-balance?year=2026", - "statusCode": 401, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-01-19T01:44:45.424Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T01:45:15.516Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T01:45:36.123Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2026-01-19T01:45:36.125Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-01-19T01:45:36.543Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-19T01:45:36.618Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-01-19T01:45:36.684Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2026-01-19T01:45:36.687Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-01-19T01:45:41.472Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "5ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T01:46:11.558Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T01:46:26.024Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2026-01-19T01:46:26.025Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-01-19T01:46:26.455Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-19T01:46:26.511Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-01-19T01:46:26.570Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2026-01-19T01:46:26.573Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-01-19T01:46:31.361Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T01:47:01.416Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T01:47:31.478Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T01:47:53.854Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T01:47:58.539Z] [INFO] ℹ️ MariaDB 연결 성공 - Context: { - "connection": "db:3306", - "database": "hyungi", - "connectionLimit": 10 -} -[2026-01-19T01:47:58.618Z] [ERROR] ❌ 아이디 또는 비밀번호가 올바르지 않습니다. - Context: { - "code": "INTERNAL_ERROR", - "stack": "AppError: 아이디 또는 비밀번호가 올바르지 않습니다.\n at errorHandler (/usr/src/app/middlewares/errorHandler.js:51:13)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:71:5)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/src/app/node_modules/express/lib/router/index.js:280:10)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:67:12)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)", - "url": "/api/auth/login", - "method": "POST", - "user": "anonymous" -} -[2026-01-19T01:47:58.620Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 500, - "duration": "103ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T01:48:01.565Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T01:48:31.675Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T01:48:43.659Z] [ERROR] ❌ 아이디 또는 비밀번호가 올바르지 않습니다. - Context: { - "code": "INTERNAL_ERROR", - "stack": "AppError: 아이디 또는 비밀번호가 올바르지 않습니다.\n at errorHandler (/usr/src/app/middlewares/errorHandler.js:51:13)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:71:5)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/src/app/node_modules/express/lib/router/index.js:280:10)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:67:12)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)", - "url": "/api/auth/login", - "method": "POST", - "user": "anonymous" -} -[2026-01-19T01:48:43.661Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 500, - "duration": "84ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T01:49:01.796Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T01:49:31.902Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T01:49:59.185Z] [INFO] ℹ️ MariaDB 연결 성공 - Context: { - "connection": "db:3306", - "database": "hyungi", - "connectionLimit": 10 -} -[2026-01-19T01:50:01.995Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T01:50:03.277Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T01:50:32.096Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T01:50:49.683Z] [ERROR] ❌ 아이디 또는 비밀번호가 올바르지 않습니다. - Context: { - "code": "INTERNAL_ERROR", - "stack": "AppError: 아이디 또는 비밀번호가 올바르지 않습니다.\n at errorHandler (/usr/src/app/middlewares/errorHandler.js:51:13)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:71:5)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/src/app/node_modules/express/lib/router/index.js:280:10)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:67:12)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)", - "url": "/api/auth/login", - "method": "POST", - "user": "anonymous" -} -[2026-01-19T01:50:49.686Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 500, - "duration": "94ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T01:51:02.193Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T01:51:23.830Z] [INFO] ℹ️ MariaDB 연결 성공 - Context: { - "connection": "db:3306", - "database": "hyungi", - "connectionLimit": 10 -} -[2026-01-19T01:51:32.281Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T01:51:38.605Z] [INFO] ℹ️ MariaDB 연결 성공 - Context: { - "connection": "db:3306", - "database": "hyungi", - "connectionLimit": 10 -} -[2026-01-19T01:52:02.390Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T01:52:06.551Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 200, - "duration": "93ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T01:52:07.377Z] [WARN] ⚠️ 인증 실패: 유효하지 않은 토큰 - Context: { - "error": "jwt malformed", - "path": "/", - "ip": "::ffff:192.168.65.1" -} -[2026-01-19T01:52:07.378Z] [WARN] ⚠️ 유효하지 않은 토큰입니다 - Context: { - "code": "AUTHENTICATION_ERROR", - "url": "/api/workers", - "method": "GET", - "user": "anonymous" -} -[2026-01-19T01:52:07.379Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 401, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T01:52:07.387Z] [WARN] ⚠️ 인증 실패: 유효하지 않은 토큰 - Context: { - "error": "jwt malformed", - "path": "/", - "ip": "::ffff:192.168.65.1" -} -[2026-01-19T01:52:07.388Z] [WARN] ⚠️ 유효하지 않은 토큰입니다 - Context: { - "code": "AUTHENTICATION_ERROR", - "url": "/api/daily-work-reports?date=2026-01-19&view_all=true", - "method": "GET", - "user": "anonymous" -} -[2026-01-19T01:52:08.835Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T01:52:32.492Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T01:52:55.902Z] [WARN] ⚠️ 인증 실패: Authorization 헤더 없음 - Context: { - "path": "/", - "method": "GET", - "ip": "::ffff:192.168.65.1" -} -[2026-01-19T01:52:55.902Z] [WARN] ⚠️ Authorization 헤더가 필요합니다 - Context: { - "code": "AUTHENTICATION_ERROR", - "url": "/api/workers", - "method": "GET", - "user": "anonymous" -} -[2026-01-19T01:52:55.903Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 401, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-01-19T01:53:02.589Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T01:53:32.668Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T01:53:48.787Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 200, - "duration": "80ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-01-19T01:54:02.756Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T01:54:32.846Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T01:54:58.825Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 429, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T01:55:02.942Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T01:55:33.054Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "5ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T01:55:35.203Z] [INFO] ℹ️ MariaDB 연결 성공 - Context: { - "connection": "db:3306", - "database": "hyungi", - "connectionLimit": 10 -} -[2026-01-19T01:55:39.921Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 429, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T01:55:49.132Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T01:55:54.493Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 429, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T01:56:03.163Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T01:56:15.160Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2026-01-19T01:56:15.162Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-01-19T01:56:15.592Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-19T01:56:15.651Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-01-19T01:56:15.718Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2026-01-19T01:56:15.721Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-01-19T01:56:20.479Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T01:56:43.677Z] [INFO] ℹ️ MariaDB 연결 성공 - Context: { - "connection": "db:3306", - "database": "hyungi", - "connectionLimit": 10 -} -[2026-01-19T01:56:43.759Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 200, - "duration": "99ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-01-19T01:56:50.574Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T01:57:00.006Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T01:57:03.013Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 200, - "duration": "92ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T01:57:03.481Z] [WARN] ⚠️ 인증 실패: 유효하지 않은 토큰 - Context: { - "error": "jwt malformed", - "path": "/", - "ip": "::ffff:192.168.65.1" -} -[2026-01-19T01:57:03.483Z] [WARN] ⚠️ 유효하지 않은 토큰입니다 - Context: { - "code": "AUTHENTICATION_ERROR", - "url": "/api/workers", - "method": "GET", - "user": "anonymous" -} -[2026-01-19T01:57:04.574Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T01:57:20.669Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T01:57:50.790Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T01:58:20.924Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T01:58:31.223Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 200, - "duration": "80ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-01-19T01:58:31.289Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "21ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "curl/8.7.1" -} -[2026-01-19T01:58:31.317Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-19", - "requester": 1, - "isAdmin": false -} -[2026-01-19T01:58:31.320Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T01:58:31.321Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-19&view_all=true", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "curl/8.7.1" -} -[2026-01-19T01:58:51.043Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T01:59:06.374Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T01:59:10.699Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 200, - "duration": "91ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T01:59:12.425Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T01:59:21.144Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T01:59:51.193Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T02:00:21.291Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T02:00:51.371Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T02:01:21.468Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T02:01:34.346Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 200, - "duration": "92ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T02:01:51.579Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T02:02:21.666Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T02:02:25.940Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T02:02:51.767Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T02:03:21.835Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T02:03:51.895Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T02:04:21.970Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T02:09:35.992Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-19T02:09:36.599Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-01-19T02:09:37.056Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2026-01-19T02:09:37.059Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-01-19T02:09:39.610Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "7ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T02:10:03.607Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/", - "method": "GET" -} -[2026-01-19T02:10:09.685Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T02:10:15.854Z] [INFO] ℹ️ MariaDB 연결 성공 - Context: { - "connection": "db:3306", - "database": "hyungi", - "connectionLimit": 10 -} -[2026-01-19T02:10:15.944Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 200, - "duration": "102ms", - "ip": "::ffff:172.20.0.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T02:10:18.121Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:172.20.0.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T02:10:39.777Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T02:11:09.862Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T02:11:38.791Z] [WARN] ⚠️ 인증 실패: Authorization 헤더 없음 - Context: { - "path": "/", - "method": "POST", - "ip": "::ffff:172.20.0.1" -} -[2026-01-19T02:11:38.794Z] [WARN] ⚠️ Authorization 헤더가 필요합니다 - Context: { - "code": "AUTHENTICATION_ERROR", - "url": "/api/users/login", - "method": "POST", - "user": "anonymous" -} -[2026-01-19T02:11:38.795Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "POST", - "url": "/api/users/login", - "statusCode": 401, - "duration": "5ms", - "ip": "::ffff:172.20.0.1", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-01-19T02:11:39.954Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T02:12:10.044Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T02:12:35.830Z] [ERROR] ❌ 아이디 또는 비밀번호가 올바르지 않습니다. - Context: { - "code": "INTERNAL_ERROR", - "stack": "AppError: 아이디 또는 비밀번호가 올바르지 않습니다.\n at errorHandler (/usr/src/app/middlewares/errorHandler.js:51:13)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:71:5)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/src/app/node_modules/express/lib/router/index.js:280:10)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:67:12)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)", - "url": "/api/auth/login", - "method": "POST", - "user": "anonymous" -} -[2026-01-19T02:12:35.832Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 500, - "duration": "90ms", - "ip": "::ffff:172.20.0.1", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-01-19T02:12:40.134Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T02:12:42.433Z] [ERROR] ❌ 아이디 또는 비밀번호가 올바르지 않습니다. - Context: { - "code": "INTERNAL_ERROR", - "stack": "AppError: 아이디 또는 비밀번호가 올바르지 않습니다.\n at errorHandler (/usr/src/app/middlewares/errorHandler.js:51:13)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:71:5)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/src/app/node_modules/express/lib/router/index.js:280:10)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:67:12)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)", - "url": "/api/auth/login", - "method": "POST", - "user": "anonymous" -} -[2026-01-19T02:12:42.434Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 500, - "duration": "86ms", - "ip": "::ffff:172.20.0.1", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-01-19T02:13:05.050Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 200, - "duration": "67ms", - "ip": "::ffff:172.20.0.1", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-01-19T02:13:10.225Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T02:13:40.317Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T02:14:10.398Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T02:14:40.487Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T02:15:10.589Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T02:15:16.668Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 200, - "duration": "73ms", - "ip": "::ffff:172.20.0.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T02:15:17.361Z] [WARN] ⚠️ 인증 실패: 유효하지 않은 토큰 - Context: { - "error": "jwt malformed", - "path": "/", - "ip": "::ffff:172.20.0.1" -} -[2026-01-19T02:15:17.362Z] [WARN] ⚠️ 유효하지 않은 토큰입니다 - Context: { - "code": "AUTHENTICATION_ERROR", - "url": "/api/workers", - "method": "GET", - "user": "anonymous" -} -[2026-01-19T02:15:18.647Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:172.20.0.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T02:15:40.674Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T02:16:10.769Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T02:16:40.847Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T02:17:10.940Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T02:17:41.027Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T02:18:11.128Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T02:18:41.218Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T02:19:11.302Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T02:19:41.393Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T02:20:11.484Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T02:20:41.567Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T02:21:11.640Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T02:21:41.708Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T02:22:11.800Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T02:22:41.892Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T02:23:11.977Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T02:23:42.068Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T02:24:12.158Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T02:24:42.246Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T02:24:44.193Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 429, - "duration": "3ms", - "ip": "::ffff:172.20.0.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T02:24:52.044Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:172.20.0.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T02:24:54.946Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 429, - "duration": "1ms", - "ip": "::ffff:172.20.0.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T02:25:12.338Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T02:25:42.430Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T02:26:12.520Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T02:26:42.618Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T02:27:12.716Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T02:27:42.810Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T02:28:12.893Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T02:28:42.982Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T02:29:13.073Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T02:29:43.178Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T02:30:13.268Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T02:30:43.356Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T02:31:13.448Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T02:31:43.527Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T02:32:13.614Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T02:32:43.696Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T02:33:13.782Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T02:33:43.865Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T02:34:13.944Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T02:34:44.015Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T02:35:14.105Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T02:35:44.191Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T02:36:14.272Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T02:36:44.368Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T02:40:59.837Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T02:41:29.926Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T02:45:18.377Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T02:45:48.496Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T02:47:07.775Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T02:47:37.859Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T02:48:07.953Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T02:48:38.061Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T02:49:08.167Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T02:49:38.248Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T02:50:08.345Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T02:50:38.434Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T02:51:08.539Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T02:51:38.640Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T02:52:08.742Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T02:52:38.823Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T02:53:08.907Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T02:53:38.986Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T02:54:09.068Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T02:54:39.168Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T02:55:09.258Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T02:55:39.357Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T02:56:09.446Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T02:56:39.533Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T02:57:09.625Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T02:57:39.735Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T02:58:09.802Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T02:58:39.855Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T02:59:09.923Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T02:59:39.995Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T03:00:10.083Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T03:00:40.208Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T03:01:10.338Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T03:01:40.436Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T03:02:10.533Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T03:02:40.627Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T03:03:10.925Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T03:03:41.167Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T03:04:11.500Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T03:04:41.600Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T03:05:11.688Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T03:05:41.774Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T03:06:11.857Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T03:06:41.949Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T03:07:12.041Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T03:07:42.139Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T03:08:12.247Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T03:08:42.342Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T03:09:12.434Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T03:09:42.519Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T03:10:12.608Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T03:10:42.697Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T03:11:12.797Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T03:11:42.882Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T03:12:12.949Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T03:12:43.022Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T03:13:13.107Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T03:13:43.192Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T03:14:13.274Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T03:14:43.387Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T03:17:28.437Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T03:17:58.585Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T03:18:28.677Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T03:18:58.765Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T03:19:28.869Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T03:19:58.946Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T03:20:29.037Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T03:20:59.145Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T03:21:29.211Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T03:21:59.306Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T03:22:29.371Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T03:22:59.467Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T03:23:29.573Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T03:23:59.658Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T03:24:29.750Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T03:24:59.839Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T03:25:29.931Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T03:26:00.020Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T03:26:30.109Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T03:27:00.199Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T03:27:30.299Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T03:28:00.400Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T03:28:30.493Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T03:29:00.586Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T03:29:30.674Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T03:30:00.756Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T03:30:30.853Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T03:31:00.949Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T03:31:31.047Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T03:32:01.151Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T03:32:31.243Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T03:33:01.335Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T03:33:31.425Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T03:34:01.511Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T03:34:31.609Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T03:35:01.719Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T03:35:31.805Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T03:36:01.895Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T03:36:31.977Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T03:37:02.060Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T03:37:32.179Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T03:38:02.273Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T03:38:32.359Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T03:39:02.443Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T03:39:32.539Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T03:40:02.618Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T03:40:32.692Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T03:41:02.764Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T03:41:32.846Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T03:42:02.923Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T03:42:33.022Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T03:43:03.114Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T03:43:33.204Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T03:44:03.285Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T03:44:33.375Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T03:45:03.492Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T03:45:33.591Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T03:46:03.676Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T03:46:33.759Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T03:47:03.866Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T03:47:33.937Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T03:48:04.033Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T03:48:34.126Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T03:49:04.211Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T03:49:34.300Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T03:51:04.050Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T03:51:34.133Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T03:52:04.221Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T03:52:34.306Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T03:53:04.387Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T03:53:34.470Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T03:54:04.560Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T03:54:34.658Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T03:55:04.767Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T03:55:34.862Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T03:56:04.968Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T03:56:35.063Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T03:57:05.160Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T03:57:35.244Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T03:58:05.338Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T03:58:35.436Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T03:59:05.519Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T03:59:35.604Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T04:00:05.688Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T04:00:35.787Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T04:01:05.874Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T04:01:35.973Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T04:02:06.065Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T04:02:36.160Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T04:03:06.254Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T04:03:36.340Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T04:04:06.424Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T04:04:36.507Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T04:05:06.624Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T04:05:36.719Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T04:06:06.811Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T04:06:36.908Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T04:07:07.008Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T04:07:37.103Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T04:08:07.195Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T04:08:37.280Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T04:09:07.359Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T04:09:37.458Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T04:10:07.548Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T04:10:37.599Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T04:11:07.687Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T04:11:37.760Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T04:12:07.840Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T04:12:37.933Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T04:13:07.997Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T04:13:38.058Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T04:14:08.125Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T04:14:38.195Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T04:15:08.285Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T04:15:38.375Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T04:16:08.475Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T04:16:38.573Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T04:17:08.643Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T04:17:38.741Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T04:18:08.834Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T04:18:38.931Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T04:19:09.023Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T04:19:39.115Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T04:20:09.206Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T04:20:39.298Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T04:21:09.382Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T04:21:39.481Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T04:22:09.562Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T04:22:39.653Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T04:23:09.744Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T04:23:39.830Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T04:24:09.929Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T04:24:40.023Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T04:25:10.112Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T04:25:40.206Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T04:26:10.351Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T04:26:40.430Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T04:27:10.515Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T04:27:40.610Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T04:28:10.703Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T04:28:40.794Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T04:29:10.891Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T04:29:40.975Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T04:30:11.061Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T04:30:41.152Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T04:31:11.259Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T04:31:41.346Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T04:32:11.438Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T04:32:41.528Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T04:33:11.608Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T04:33:41.704Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T04:34:11.803Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T04:34:41.896Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T04:35:11.992Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T04:35:42.086Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T04:36:12.179Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T04:36:42.272Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T04:37:12.389Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T04:37:42.483Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T04:38:12.587Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T04:38:42.683Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T04:39:12.784Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T04:39:42.881Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T04:40:12.985Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T04:40:43.071Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T04:41:13.156Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T04:41:43.250Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T04:42:13.332Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T04:42:43.427Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T04:43:13.516Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T04:43:43.609Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T04:44:13.693Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T04:44:43.781Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T04:45:13.873Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T04:45:43.955Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T04:46:14.065Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T04:46:44.156Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T04:47:14.253Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T04:47:44.340Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T04:48:14.425Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T04:48:44.524Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T04:49:14.612Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T04:49:44.712Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T04:50:14.803Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T04:50:44.905Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T04:51:15.003Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T04:51:45.137Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T04:52:15.230Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T04:52:45.338Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T04:53:15.439Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T04:53:45.536Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T04:54:15.635Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T04:54:45.729Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T04:55:15.831Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T04:55:45.940Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T04:56:16.035Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T04:56:46.125Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T04:57:16.212Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T04:57:46.305Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T04:59:25.662Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T04:59:55.750Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T05:00:25.845Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T05:00:55.951Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T05:01:26.054Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T05:01:56.146Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T05:02:26.240Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T05:02:56.337Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T05:03:26.423Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T05:03:56.516Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T05:04:26.596Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T05:04:56.689Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T05:05:26.787Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T05:05:56.889Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T05:06:26.998Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T05:06:57.089Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T05:07:27.191Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T05:07:57.302Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T05:31:42.867Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T05:32:12.956Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T05:32:43.033Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T05:33:13.123Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T05:33:43.233Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T05:34:13.308Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T05:34:43.396Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T05:35:13.462Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T05:35:43.522Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T05:36:13.574Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T05:36:43.639Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T05:37:13.711Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T05:37:43.804Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T05:38:13.915Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "6ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T05:38:43.987Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T05:39:14.075Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T05:39:44.163Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T05:40:14.257Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T05:40:44.347Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T05:41:14.435Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T05:41:44.527Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T05:42:14.618Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T05:45:19.995Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T05:45:50.083Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T05:46:20.169Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T05:46:50.269Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T05:47:20.375Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T05:48:19.003Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T05:48:49.094Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T05:49:19.199Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T05:49:49.278Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T05:50:19.363Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T05:50:49.438Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T05:51:19.532Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T05:51:49.627Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T05:52:19.719Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T05:52:49.804Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T05:53:19.877Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T05:53:49.980Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T05:54:20.101Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T05:54:50.184Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T05:55:20.271Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T05:55:50.395Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T05:56:20.496Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T05:56:50.585Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T05:57:20.695Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T05:57:50.775Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T05:58:20.871Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T05:58:50.964Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T05:59:21.051Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T05:59:51.158Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T06:00:21.239Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T06:00:51.329Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T06:01:21.429Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T06:01:51.514Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T06:02:21.600Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T06:02:51.686Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T06:03:21.788Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T06:03:51.879Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T06:04:21.969Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T06:04:52.060Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T06:05:22.150Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T06:05:52.254Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T06:06:22.349Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T06:06:52.445Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T06:07:22.528Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T06:07:52.622Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T06:08:22.743Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T06:08:52.845Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T06:09:22.931Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T06:09:53.033Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T06:10:23.138Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T06:10:53.222Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T06:11:23.321Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T06:11:53.415Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T06:12:23.497Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T06:12:53.600Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T06:13:23.705Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T06:13:53.852Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T06:14:23.955Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T06:14:54.054Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T06:15:24.144Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T06:15:54.239Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T06:16:24.343Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T06:16:54.457Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T06:17:24.554Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T06:17:54.665Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T06:18:24.762Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T06:18:54.842Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T06:19:24.939Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T06:19:55.038Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T06:20:25.142Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T06:20:55.232Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T06:21:25.329Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T06:21:55.427Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T06:22:25.521Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T06:22:55.606Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T06:23:25.700Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T06:23:55.796Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T06:24:25.882Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T06:24:55.982Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T06:25:26.077Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T06:25:56.138Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T06:26:26.203Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T06:26:56.359Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "8ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T06:27:55.736Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T06:28:25.814Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T06:28:55.877Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T06:29:25.971Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T06:29:56.034Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T06:30:26.126Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T06:30:56.205Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T06:31:26.290Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T06:31:56.362Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T06:32:26.444Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T06:32:56.546Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T06:33:26.659Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T06:33:56.753Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T06:34:26.845Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T06:34:56.928Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T06:35:27.021Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T06:35:57.122Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T06:36:27.225Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T06:36:57.310Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T06:37:27.417Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T06:37:57.496Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T06:38:27.598Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T06:38:57.727Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T06:39:27.827Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T06:39:57.935Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T06:40:28.034Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T06:40:58.167Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T06:41:28.271Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T06:41:58.406Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T06:42:28.517Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T06:42:58.622Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T06:43:28.723Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T06:43:58.852Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T06:44:28.955Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T06:44:59.065Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T06:45:29.171Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T06:45:59.262Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T06:46:29.372Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T06:46:59.496Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T06:47:29.616Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T06:47:59.703Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T06:48:29.815Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T06:48:59.908Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T06:49:30.047Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T06:50:00.164Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T06:50:30.261Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T06:51:00.423Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T06:51:30.536Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T06:52:00.642Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T06:52:30.739Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T06:53:00.829Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T06:53:30.906Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T06:54:00.990Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T06:54:31.086Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T06:55:01.192Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T06:55:31.321Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T07:24:36.594Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T07:25:06.687Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T08:16:38.109Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T08:57:06.257Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T09:13:25.176Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T09:14:00.856Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T09:17:43.259Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T09:18:13.350Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T09:36:29.512Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T09:36:59.602Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T09:58:11.140Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T10:15:33.696Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T10:16:03.764Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T10:38:58.499Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T10:39:28.593Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T10:47:01.326Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T10:51:01.314Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T10:51:31.406Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T10:59:07.760Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T11:00:28.257Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T11:00:58.351Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T11:01:35.396Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T11:02:05.487Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T11:14:50.690Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T11:20:11.665Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T11:20:41.763Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T12:00:01.217Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T12:00:31.322Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T12:53:10.815Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T12:53:40.911Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T13:01:11.099Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T13:17:09.043Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T14:02:08.192Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T14:03:16.200Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T14:07:46.896Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T14:08:16.993Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T14:24:51.473Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T14:25:21.571Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T14:35:18.955Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T14:36:06.368Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T14:36:36.456Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T14:47:08.852Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T14:55:44.465Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T14:56:14.555Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T15:03:08.989Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T15:10:49.904Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T15:12:00.430Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T15:12:30.518Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T15:29:05.561Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T15:29:35.645Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T15:33:24.600Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T16:21:43.778Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T17:39:09.326Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T17:39:39.415Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T17:40:30.607Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T17:50:53.288Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T17:51:23.385Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T17:52:43.767Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T18:59:15.737Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T18:59:45.824Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T20:06:01.844Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T20:06:31.935Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T20:57:45.300Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T21:00:40.009Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T21:33:31.657Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T21:34:01.759Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T21:34:31.838Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T21:35:01.939Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T21:35:32.048Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "5ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T21:36:02.131Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T21:36:32.220Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T21:37:02.307Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T21:37:32.420Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T21:38:02.508Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T21:38:32.602Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T21:39:02.702Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T21:39:32.797Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T21:40:02.896Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T21:40:32.983Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T21:41:03.080Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T21:41:33.184Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T21:42:03.273Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "8ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T21:42:33.360Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T21:43:03.457Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T21:43:33.547Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T21:44:03.644Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T21:44:33.782Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T21:45:03.871Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T21:45:33.965Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T21:46:04.077Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T21:46:34.164Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T21:47:04.252Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T21:47:34.346Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T21:48:04.423Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T21:48:34.521Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T21:49:04.623Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T21:49:34.725Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T21:50:04.818Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T21:50:34.920Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "6ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T21:51:05.041Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T21:51:35.157Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T21:52:05.272Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T21:52:35.385Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T21:53:05.581Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T21:53:35.680Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T21:54:05.776Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T21:54:35.872Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T21:55:05.993Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T21:55:36.153Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T21:56:06.268Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T21:56:36.363Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T21:57:06.468Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T21:57:36.558Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T21:58:06.650Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T21:58:36.728Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T21:59:06.845Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T21:59:36.929Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T22:00:07.018Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T22:00:37.131Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T22:01:07.225Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T22:01:37.334Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T22:02:07.446Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T22:02:37.561Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T22:03:07.647Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T22:03:37.738Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T22:04:07.818Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T22:04:37.893Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T22:05:08.037Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T22:05:38.154Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T22:06:08.248Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T22:06:38.342Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T22:07:08.434Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T22:07:38.525Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T22:08:08.616Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T22:08:38.694Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T22:09:08.785Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T22:09:38.873Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T22:10:08.952Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T22:10:39.034Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T22:11:09.109Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T22:11:39.186Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T22:12:09.332Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T22:12:39.430Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T22:13:09.543Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T22:13:39.629Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T22:14:09.743Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T22:14:39.827Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T22:15:09.903Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T22:15:39.996Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T22:16:10.081Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T22:16:40.161Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T22:17:10.242Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T22:17:40.326Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T22:18:10.397Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T22:18:40.476Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T22:19:10.559Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T22:19:40.639Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T22:20:10.722Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T22:20:40.800Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T22:21:10.879Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T22:21:40.984Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T22:22:11.066Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T22:22:41.144Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T22:23:11.220Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T22:23:41.292Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T22:24:11.370Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T22:24:41.452Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T22:25:11.553Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T22:25:41.631Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T22:26:11.701Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T22:26:41.769Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T22:27:11.848Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T22:27:41.926Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T22:28:12.045Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T22:28:42.130Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T22:29:12.228Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T22:29:42.319Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T22:30:12.391Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T22:30:42.476Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T22:31:12.557Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T22:31:42.640Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T22:32:12.718Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T22:32:42.790Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T22:33:12.876Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T22:33:42.949Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T22:34:13.020Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T22:34:43.100Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T22:35:13.186Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T22:35:43.277Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T22:36:13.364Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T22:36:43.443Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T22:37:13.526Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T22:37:43.603Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T22:38:13.686Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T22:38:43.763Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T22:39:13.841Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T22:39:43.936Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T22:40:14.022Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T22:40:44.099Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T22:41:14.181Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T22:41:44.281Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T22:42:14.382Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T22:42:44.468Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T22:43:14.557Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T22:43:44.633Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T22:44:14.732Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T22:44:44.805Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T22:45:14.894Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T22:45:44.969Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T22:46:15.041Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T22:46:45.114Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T22:47:15.188Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T22:47:45.292Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T22:48:15.375Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T22:48:45.450Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T22:49:15.529Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T22:49:45.616Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T22:50:15.695Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T22:50:45.778Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T22:51:15.858Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T22:51:45.938Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T22:52:16.011Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T22:52:46.089Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T22:53:16.171Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T22:53:46.252Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T22:54:16.335Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T22:54:46.416Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T22:55:16.496Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T22:55:46.587Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T22:56:16.672Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T22:56:46.760Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T22:57:16.845Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T22:57:46.930Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T22:58:17.023Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T22:58:47.116Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T22:59:17.221Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T22:59:47.307Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T23:00:17.397Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T23:00:47.490Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T23:01:17.582Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T23:01:47.669Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T23:02:17.765Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T23:02:47.852Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T23:03:17.950Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T23:03:48.048Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T23:04:18.149Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T23:04:48.233Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T23:05:18.318Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T23:05:48.413Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T23:06:18.501Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T23:06:48.594Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T23:07:18.692Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T23:07:48.786Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T23:08:18.880Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T23:08:48.976Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T23:09:19.062Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T23:09:49.151Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T23:10:19.240Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T23:10:49.334Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T23:11:19.420Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T23:11:49.512Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T23:12:19.606Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T23:12:49.695Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T23:13:19.786Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T23:13:49.876Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T23:14:19.972Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T23:14:50.058Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T23:15:20.159Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T23:15:50.238Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T23:16:20.329Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T23:16:50.404Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T23:17:20.482Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T23:17:50.546Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T23:18:20.611Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T23:18:22.294Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:172.20.0.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:18:30.255Z] [ERROR] ❌ 아이디 또는 비밀번호가 올바르지 않습니다. - Context: { - "code": "INTERNAL_ERROR", - "stack": "AppError: 아이디 또는 비밀번호가 올바르지 않습니다.\n at errorHandler (/usr/src/app/middlewares/errorHandler.js:51:13)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:71:5)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/src/app/node_modules/express/lib/router/index.js:280:10)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:67:12)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)", - "url": "/api/auth/login", - "method": "POST", - "user": "anonymous" -} -[2026-01-19T23:18:30.257Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 500, - "duration": "82ms", - "ip": "::ffff:172.20.0.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:18:50.701Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T23:19:20.770Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T23:19:50.849Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T23:20:20.930Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T23:20:51.002Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T23:21:21.070Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T23:21:34.438Z] [ERROR] ❌ 아이디 또는 비밀번호가 올바르지 않습니다. - Context: { - "code": "INTERNAL_ERROR", - "stack": "AppError: 아이디 또는 비밀번호가 올바르지 않습니다.\n at errorHandler (/usr/src/app/middlewares/errorHandler.js:51:13)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:71:5)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/src/app/node_modules/express/lib/router/index.js:280:10)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:67:12)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)", - "url": "/api/auth/login", - "method": "POST", - "user": "anonymous" -} -[2026-01-19T23:21:34.439Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 500, - "duration": "72ms", - "ip": "::ffff:172.20.0.1", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-01-19T23:21:51.153Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T23:22:21.230Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T23:22:30.404Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2026-01-19T23:22:30.406Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-01-19T23:22:30.959Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-19T23:22:31.040Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-01-19T23:22:31.121Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2026-01-19T23:22:31.125Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-01-19T23:22:35.812Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T23:23:02.846Z] [INFO] ℹ️ MariaDB 연결 성공 - Context: { - "connection": "db:3306", - "database": "hyungi", - "connectionLimit": 10 -} -[2026-01-19T23:23:02.920Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 200, - "duration": "87ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:23:03.560Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-19", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:23:03.572Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:23:03.573Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-19&view_all=true", - "statusCode": 200, - "duration": "15ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:23:03.577Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "23ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:23:04.535Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:23:05.884Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T23:23:16.725Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:23:16.730Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:23:16.735Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/tasks", - "method": "GET" -} -[2026-01-19T23:23:16.736Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/tasks", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:23:17.706Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:23:19.679Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:23:20.648Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:23:24.942Z] [INFO] ℹ️ 작업자 계정 연동 해제 성공 - Context: { - "worker_id": 7 -} -[2026-01-19T23:23:24.942Z] [INFO] ℹ️ 작업자 수정 후 캐시 무효화 - Context: { - "worker_id": 7 -} -[2026-01-19T23:23:24.944Z] [INFO] ℹ️ 작업자 수정 성공 - Context: { - "worker_id": 7 -} -[2026-01-19T23:23:24.945Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "PUT", - "url": "/api/workers/7", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:23:28.986Z] [INFO] ℹ️ 작업자 수정 후 캐시 무효화 - Context: { - "worker_id": 7 -} -[2026-01-19T23:23:28.988Z] [INFO] ℹ️ 작업자 수정 성공 - Context: { - "worker_id": 7 -} -[2026-01-19T23:23:28.990Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "PUT", - "url": "/api/workers/7", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:23:29.001Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:23:33.516Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-19", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:23:33.520Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:23:33.522Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-19&view_all=true", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:23:33.527Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "17ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:23:34.785Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:23:35.733Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:23:35.775Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:23:35.962Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T23:23:36.193Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-19", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:23:36.197Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:23:36.199Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-19&view_all=true", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:23:36.201Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:23:37.190Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:23:37.501Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:23:37.524Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:23:37.527Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/tasks", - "method": "GET" -} -[2026-01-19T23:23:37.528Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/tasks", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:23:38.499Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:23:54.344Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:23:54.354Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:23:54.356Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:23:55.315Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:24:05.189Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-19", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:24:05.194Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:24:05.198Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-19&view_all=true", - "statusCode": 304, - "duration": "11ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:24:05.200Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 304, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:24:06.029Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T23:24:06.181Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:24:07.160Z] [INFO] ℹ️ 사용자 목록 조회 요청 - Context: { - "requestedBy": "hyungi" -} -[2026-01-19T23:24:07.164Z] [INFO] ℹ️ 사용자 목록 조회 성공 - Context: { - "count": 16 -} -[2026-01-19T23:24:07.167Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:24:08.135Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:24:36.099Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T23:25:06.173Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T23:25:32.597Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-19", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:25:32.600Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:25:32.602Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:25:32.603Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-19&view_all=true", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:25:33.588Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:25:34.960Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:25:34.968Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:25:34.976Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:25:34.983Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:25:34.988Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:25:34.993Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-20", - "created_by_user_id": 1, - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:25:34.994Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:25:34.995Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-20&created_by=1", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:25:35.937Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:25:36.247Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T23:25:41.493Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-19", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:25:41.495Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:25:41.496Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:25:41.499Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-19&view_all=true", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:25:42.487Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:25:42.572Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:25:42.603Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:25:42.608Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/tasks", - "method": "GET" -} -[2026-01-19T23:25:42.609Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/tasks", - "statusCode": 404, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:25:43.568Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:25:44.802Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:25:45.801Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:26:06.319Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T23:26:36.380Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T23:27:06.457Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T23:27:36.530Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T23:28:06.603Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T23:28:33.964Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:28:34.963Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:28:36.667Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T23:28:36.813Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:28:36.824Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:28:36.829Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/tasks", - "method": "GET" -} -[2026-01-19T23:28:36.831Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/tasks", - "statusCode": 404, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:28:37.811Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:28:40.064Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-19", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:28:40.066Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:28:40.068Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:28:40.069Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-19&view_all=true", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:28:41.059Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:28:42.145Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:28:42.152Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:28:42.170Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/tasks", - "method": "GET" -} -[2026-01-19T23:28:42.172Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/tasks", - "statusCode": 404, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:28:43.144Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:28:50.154Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:28:51.146Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:28:59.555Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-19", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:28:59.558Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:28:59.559Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:28:59.560Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-19&view_all=true", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:29:00.850Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:29:00.856Z] [INFO] ℹ️ 월별 캘린더 데이터 조회 요청 - Context: { - "year": 2026, - "month": 1 -} -[2026-01-19T23:29:00.861Z] [ERROR] ❌ 월별 캘린더 데이터 조회 실패 - Context: { - "year": 2026, - "month": 1, - "error": "Table 'hyungi.monthly_summary' doesn't exist" -} -[2026-01-19T23:29:00.863Z] [ERROR] ❌ 월별 캘린더 데이터 조회 중 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 월별 캘린더 데이터 조회 중 오류가 발생했습니다\n at /usr/src/app/controllers/monthlyStatusController.js:80:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "url": "/api/monthly-status/calendar?year=2026&month=1", - "method": "GET", - "user": "anonymous" -} -[2026-01-19T23:29:00.864Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/monthly-status/calendar?year=2026&month=1", - "statusCode": 500, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:29:00.877Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2025-12-31", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:29:00.879Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-02", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:29:00.881Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-03", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:29:00.886Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-01", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:29:00.892Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:29:00.893Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-12-31&view_all=true", - "statusCode": 200, - "duration": "16ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:29:00.893Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:29:00.894Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-02&view_all=true", - "statusCode": 200, - "duration": "16ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:29:00.896Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-04", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:29:00.897Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:29:00.898Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-04&view_all=true", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:29:00.899Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:29:00.899Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-03&view_all=true", - "statusCode": 200, - "duration": "19ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:29:00.900Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:29:00.900Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-01&view_all=true", - "statusCode": 200, - "duration": "16ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:29:01.010Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-06", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:29:01.011Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-07", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:29:01.012Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-08", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:29:01.013Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-05", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:29:01.014Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-09", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:29:01.016Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:29:01.016Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-06&view_all=true", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:29:01.016Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:29:01.017Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-07&view_all=true", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:29:01.017Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:29:01.018Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-08&view_all=true", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:29:01.018Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:29:01.019Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-05&view_all=true", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:29:01.020Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:29:01.021Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-09&view_all=true", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:29:01.134Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-11", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:29:01.136Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-12", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:29:01.138Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-13", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:29:01.140Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-10", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:29:01.142Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-14", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:29:01.143Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:29:01.144Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-11&view_all=true", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:29:01.144Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:29:01.146Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-12&view_all=true", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:29:01.147Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:29:01.147Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-13&view_all=true", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:29:01.148Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:29:01.148Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-10&view_all=true", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:29:01.148Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:29:01.149Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-14&view_all=true", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:29:01.259Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-19", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:29:01.261Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-16", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:29:01.263Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-17", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:29:01.266Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-15", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:29:01.267Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:29:01.268Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-19&view_all=true", - "statusCode": 304, - "duration": "11ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:29:01.269Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:29:01.270Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-16&view_all=true", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:29:01.271Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:29:01.272Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-17&view_all=true", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:29:01.273Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-18", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:29:01.274Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:29:01.274Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-15&view_all=true", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:29:01.275Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 1 -} -[2026-01-19T23:29:01.275Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-18&view_all=true", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:29:01.387Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-21", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:29:01.390Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-22", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:29:01.392Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-23", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:29:01.394Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-20", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:29:01.396Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-24", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:29:01.397Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:29:01.398Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-21&view_all=true", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:29:01.398Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:29:01.399Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-22&view_all=true", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:29:01.400Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:29:01.400Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-23&view_all=true", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:29:01.401Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:29:01.402Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-20&view_all=true", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:29:01.402Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:29:01.402Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-24&view_all=true", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:29:01.515Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-25", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:29:01.517Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-26", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:29:01.519Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-27", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:29:01.521Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-28", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:29:01.523Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-29", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:29:01.524Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:29:01.525Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-25&view_all=true", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:29:01.525Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:29:01.526Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-26&view_all=true", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:29:01.527Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:29:01.527Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-27&view_all=true", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:29:01.527Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:29:01.528Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-28&view_all=true", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:29:01.528Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:29:01.529Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-29&view_all=true", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:29:01.638Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-30", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:29:01.641Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:29:01.642Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-30&view_all=true", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:29:01.847Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:29:03.137Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-19", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:29:03.140Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:29:03.141Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:29:03.142Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-19&view_all=true", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:29:04.148Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:29:04.154Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:29:04.176Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/tasks", - "method": "GET" -} -[2026-01-19T23:29:04.177Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/tasks", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:29:05.144Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:29:05.667Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:29:06.674Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:29:06.740Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T23:29:12.371Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-19", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:29:12.374Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:29:12.375Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:29:12.376Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-19&view_all=true", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:29:13.626Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:29:14.617Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:29:14.620Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:29:14.982Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-19", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:29:14.983Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:29:14.985Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:29:14.986Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-19&view_all=true", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:29:15.844Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:29:15.850Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:29:15.854Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/tasks", - "method": "GET" -} -[2026-01-19T23:29:15.856Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/tasks", - "statusCode": 404, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:29:16.841Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:29:17.685Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:29:17.687Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:29:17.691Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:29:18.681Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:29:20.227Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:29:21.226Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:29:21.687Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:29:21.689Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:29:21.690Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:29:22.681Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:29:28.277Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-19", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:29:28.280Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:29:28.281Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:29:28.282Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-19&view_all=true", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:29:29.267Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:29:29.947Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:29:29.967Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:29:29.972Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/tasks", - "method": "GET" -} -[2026-01-19T23:29:29.973Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/tasks", - "statusCode": 404, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:29:30.945Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:29:31.247Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:29:32.242Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:29:32.243Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:29:36.809Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T23:30:06.388Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-19", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:30:06.391Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:30:06.393Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:30:06.395Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-19&view_all=true", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:30:06.885Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T23:30:07.382Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:30:07.460Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:30:07.474Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:30:07.482Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:30:07.489Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:30:07.494Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:30:07.499Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-20", - "created_by_user_id": 1, - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:30:07.500Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:30:07.501Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-20&created_by=1", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:30:08.459Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:30:16.205Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-19", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:30:16.208Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:30:16.209Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:30:16.210Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-19&view_all=true", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:30:17.099Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:30:17.112Z] [INFO] ℹ️ 월별 캘린더 데이터 조회 요청 - Context: { - "year": 2026, - "month": 1 -} -[2026-01-19T23:30:17.114Z] [ERROR] ❌ 월별 캘린더 데이터 조회 실패 - Context: { - "year": 2026, - "month": 1, - "error": "Table 'hyungi.monthly_summary' doesn't exist" -} -[2026-01-19T23:30:17.116Z] [ERROR] ❌ 월별 캘린더 데이터 조회 중 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 월별 캘린더 데이터 조회 중 오류가 발생했습니다\n at /usr/src/app/controllers/monthlyStatusController.js:80:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "url": "/api/monthly-status/calendar?year=2026&month=1", - "method": "GET", - "user": "anonymous" -} -[2026-01-19T23:30:17.118Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/monthly-status/calendar?year=2026&month=1", - "statusCode": 500, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:30:17.123Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2025-12-31", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:30:17.126Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-01", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:30:17.127Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:30:17.128Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-12-31&view_all=true", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:30:17.129Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:30:17.130Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-01&view_all=true", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:30:17.131Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-02", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:30:17.132Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-03", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:30:17.133Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-04", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:30:17.134Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:30:17.134Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-02&view_all=true", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:30:17.135Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:30:17.135Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-03&view_all=true", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:30:17.136Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:30:17.136Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-04&view_all=true", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:30:17.245Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-05", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:30:17.248Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-06", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:30:17.250Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-07", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:30:17.253Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-08", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:30:17.255Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-09", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:30:17.257Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:30:17.258Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-05&view_all=true", - "statusCode": 304, - "duration": "14ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:30:17.259Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:30:17.259Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-06&view_all=true", - "statusCode": 304, - "duration": "13ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:30:17.260Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:30:17.260Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-07&view_all=true", - "statusCode": 304, - "duration": "11ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:30:17.260Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:30:17.260Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-08&view_all=true", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:30:17.261Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:30:17.261Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-09&view_all=true", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:30:17.370Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-10", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:30:17.372Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-11", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:30:17.375Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-12", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:30:17.377Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-13", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:30:17.379Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-14", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:30:17.380Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:30:17.381Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-10&view_all=true", - "statusCode": 304, - "duration": "12ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:30:17.383Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:30:17.384Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-11&view_all=true", - "statusCode": 304, - "duration": "13ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:30:17.385Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:30:17.386Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-12&view_all=true", - "statusCode": 304, - "duration": "13ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:30:17.387Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:30:17.388Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-13&view_all=true", - "statusCode": 304, - "duration": "12ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:30:17.389Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:30:17.389Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-14&view_all=true", - "statusCode": 304, - "duration": "11ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:30:17.497Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-15", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:30:17.500Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-16", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:30:17.503Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:30:17.504Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-15&view_all=true", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:30:17.505Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:30:17.506Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-16&view_all=true", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:30:17.508Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-17", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:30:17.510Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-19", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:30:17.512Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-18", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:30:17.512Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:30:17.513Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-17&view_all=true", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:30:17.513Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:30:17.514Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-19&view_all=true", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:30:17.514Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 1 -} -[2026-01-19T23:30:17.514Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-18&view_all=true", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:30:17.623Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-20", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:30:17.628Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-21", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:30:17.632Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-22", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:30:17.634Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-23", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:30:17.636Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-24", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:30:17.637Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:30:17.638Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-20&view_all=true", - "statusCode": 304, - "duration": "16ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:30:17.638Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:30:17.638Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-21&view_all=true", - "statusCode": 304, - "duration": "12ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:30:17.639Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:30:17.639Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-22&view_all=true", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:30:17.639Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:30:17.640Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-23&view_all=true", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:30:17.640Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:30:17.640Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-24&view_all=true", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:30:17.749Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-26", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:30:17.751Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-25", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:30:17.755Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-27", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:30:17.757Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-28", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:30:17.759Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-29", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:30:17.760Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:30:17.761Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-26&view_all=true", - "statusCode": 304, - "duration": "14ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:30:17.762Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:30:17.763Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-25&view_all=true", - "statusCode": 304, - "duration": "13ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:30:17.764Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:30:17.765Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-27&view_all=true", - "statusCode": 304, - "duration": "11ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:30:17.765Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:30:17.766Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-28&view_all=true", - "statusCode": 304, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:30:17.766Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:30:17.767Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-29&view_all=true", - "statusCode": 304, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:30:17.877Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-30", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:30:17.879Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:30:17.880Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-30&view_all=true", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:30:18.094Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:30:20.475Z] [INFO] ℹ️ 일별 작업자 상세 조회 요청 - Context: { - "date": "2026-01-08" -} -[2026-01-19T23:30:20.479Z] [INFO] ℹ️ 일별 작업자 상세 조회 성공 - Context: { - "date": "2026-01-08", - "workerCount": 11, - "totalHours": 0 -} -[2026-01-19T23:30:20.482Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/monthly-status/daily-details?date=2026-01-08", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:30:28.115Z] [INFO] ℹ️ 월별 캘린더 데이터 조회 요청 - Context: { - "year": 2025, - "month": 12 -} -[2026-01-19T23:30:28.117Z] [ERROR] ❌ 월별 캘린더 데이터 조회 실패 - Context: { - "year": 2025, - "month": 12, - "error": "Table 'hyungi.monthly_summary' doesn't exist" -} -[2026-01-19T23:30:28.119Z] [ERROR] ❌ 월별 캘린더 데이터 조회 중 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 월별 캘린더 데이터 조회 중 오류가 발생했습니다\n at /usr/src/app/controllers/monthlyStatusController.js:80:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "url": "/api/monthly-status/calendar?year=2025&month=12", - "method": "GET", - "user": "anonymous" -} -[2026-01-19T23:30:28.121Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/monthly-status/calendar?year=2025&month=12", - "statusCode": 500, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:30:28.135Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2025-11-30", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:30:28.136Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2025-12-02", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:30:28.137Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2025-12-01", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:30:28.138Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:30:28.139Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-11-30&view_all=true", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:30:28.139Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:30:28.140Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-12-02&view_all=true", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:30:28.141Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2025-12-03", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:30:28.141Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2025-12-04", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:30:28.142Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:30:28.143Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-12-01&view_all=true", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:30:28.144Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:30:28.144Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-12-03&view_all=true", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:30:28.145Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:30:28.146Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-12-04&view_all=true", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:30:28.258Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2025-12-05", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:30:28.259Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2025-12-06", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:30:28.261Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2025-12-07", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:30:28.262Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2025-12-08", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:30:28.262Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:30:28.263Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-12-05&view_all=true", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:30:28.263Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:30:28.263Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-12-06&view_all=true", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:30:28.264Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2025-12-09", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:30:28.265Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:30:28.265Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-12-07&view_all=true", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:30:28.265Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:30:28.265Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-12-08&view_all=true", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:30:28.266Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:30:28.266Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-12-09&view_all=true", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:30:28.376Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2025-12-10", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:30:28.377Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2025-12-11", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:30:28.378Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:30:28.378Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-12-10&view_all=true", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:30:28.379Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:30:28.379Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-12-11&view_all=true", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:30:28.380Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2025-12-12", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:30:28.381Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2025-12-13", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:30:28.382Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2025-12-14", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:30:28.382Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:30:28.382Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-12-12&view_all=true", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:30:28.383Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:30:28.383Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-12-13&view_all=true", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:30:28.383Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:30:28.383Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-12-14&view_all=true", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:30:28.500Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2025-12-15", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:30:28.503Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2025-12-16", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:30:28.506Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:30:28.506Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-12-15&view_all=true", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:30:28.507Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2025-12-17", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:30:28.508Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2025-12-18", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:30:28.508Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2025-12-19", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:30:28.510Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:30:28.511Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-12-16&view_all=true", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:30:28.511Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:30:28.512Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-12-17&view_all=true", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:30:28.512Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:30:28.512Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-12-18&view_all=true", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:30:28.513Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:30:28.513Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-12-19&view_all=true", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:30:28.599Z] [INFO] ℹ️ 월별 캘린더 데이터 조회 요청 - Context: { - "year": 2025, - "month": 11 -} -[2026-01-19T23:30:28.603Z] [ERROR] ❌ 월별 캘린더 데이터 조회 실패 - Context: { - "year": 2025, - "month": 11, - "error": "Table 'hyungi.monthly_summary' doesn't exist" -} -[2026-01-19T23:30:28.604Z] [ERROR] ❌ 월별 캘린더 데이터 조회 중 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 월별 캘린더 데이터 조회 중 오류가 발생했습니다\n at /usr/src/app/controllers/monthlyStatusController.js:80:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "url": "/api/monthly-status/calendar?year=2025&month=11", - "method": "GET", - "user": "anonymous" -} -[2026-01-19T23:30:28.606Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/monthly-status/calendar?year=2025&month=11", - "statusCode": 500, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:30:28.618Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2025-10-31", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:30:28.619Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:30:28.619Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-10-31&view_all=true", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:30:28.620Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2025-11-01", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:30:28.621Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:30:28.622Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-11-01&view_all=true", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:30:28.625Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2025-11-02", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:30:28.626Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2025-11-03", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:30:28.627Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2025-11-04", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:30:28.628Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2025-12-21", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:30:28.629Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2025-12-22", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:30:28.629Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:30:28.630Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-11-02&view_all=true", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:30:28.630Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:30:28.631Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-11-03&view_all=true", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:30:28.632Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2025-12-23", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:30:28.632Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:30:28.633Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-11-04&view_all=true", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:30:28.633Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:30:28.634Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-12-21&view_all=true", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:30:28.634Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:30:28.634Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-12-22&view_all=true", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:30:28.635Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2025-12-20", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:30:28.636Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:30:28.636Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-12-23&view_all=true", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:30:28.637Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2025-12-24", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:30:28.638Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:30:28.638Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-12-20&view_all=true", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:30:28.638Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:30:28.639Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-12-24&view_all=true", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:30:28.751Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2025-11-05", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:30:28.754Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:30:28.755Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-11-05&view_all=true", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:30:28.757Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2025-11-06", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:30:28.758Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2025-11-07", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:30:28.759Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2025-11-08", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:30:28.759Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2025-11-09", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:30:28.760Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:30:28.760Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-11-06&view_all=true", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:30:28.761Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2025-12-25", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:30:28.762Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:30:28.762Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-11-07&view_all=true", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:30:28.763Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:30:28.763Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-11-08&view_all=true", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:30:28.764Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:30:28.764Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-11-09&view_all=true", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:30:28.765Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:30:28.765Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-12-25&view_all=true", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:30:28.766Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2025-12-26", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:30:28.767Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:30:28.767Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-12-26&view_all=true", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:30:28.768Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2025-12-27", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:30:28.768Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2025-12-28", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:30:28.769Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2025-12-29", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:30:28.770Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:30:28.770Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-12-27&view_all=true", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:30:28.770Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:30:28.771Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-12-28&view_all=true", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:30:28.771Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:30:28.771Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-12-29&view_all=true", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:30:28.878Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2025-11-10", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:30:28.881Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:30:28.882Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-11-10&view_all=true", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:30:28.884Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2025-11-11", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:30:28.886Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2025-11-12", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:30:28.887Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2025-11-13", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:30:28.888Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:30:28.889Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-11-11&view_all=true", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:30:28.891Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:30:28.892Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-11-12&view_all=true", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:30:28.892Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:30:28.893Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-11-13&view_all=true", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:30:28.893Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2025-11-14", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:30:28.894Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2025-12-30", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:30:28.894Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:30:28.895Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-11-14&view_all=true", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:30:28.895Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:30:28.895Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-12-30&view_all=true", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:30:29.010Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2025-11-15", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:30:29.013Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2025-11-16", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:30:29.016Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:30:29.017Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-11-15&view_all=true", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:30:29.018Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:30:29.018Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-11-16&view_all=true", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:30:29.019Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2025-11-17", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:30:29.020Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2025-11-18", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:30:29.020Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2025-11-19", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:30:29.021Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:30:29.021Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-11-17&view_all=true", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:30:29.021Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:30:29.022Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-11-18&view_all=true", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:30:29.022Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:30:29.022Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-11-19&view_all=true", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:30:29.135Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2025-11-20", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:30:29.139Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:30:29.140Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-11-20&view_all=true", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:30:29.142Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2025-11-21", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:30:29.144Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2025-11-22", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:30:29.146Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-11-23&view_all=true", - "statusCode": 429, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:30:29.148Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-11-24&view_all=true", - "statusCode": 429, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:30:29.148Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:30:29.149Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-11-21&view_all=true", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:30:29.149Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:30:29.150Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-11-22&view_all=true", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:30:29.727Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/monthly-status/calendar?year=2025&month=10", - "statusCode": 429, - "duration": "0ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:30:29.738Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-09-30&view_all=true", - "statusCode": 429, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:30:29.739Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-10-01&view_all=true", - "statusCode": 429, - "duration": "0ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:30:29.742Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-10-02&view_all=true", - "statusCode": 429, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:30:29.743Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-10-03&view_all=true", - "statusCode": 429, - "duration": "0ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:30:29.744Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-10-04&view_all=true", - "statusCode": 429, - "duration": "0ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:30:30.709Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/monthly-status/daily-details?date=2025-12-03", - "statusCode": 429, - "duration": "0ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:30:36.958Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T23:30:58.896Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/monthly-status/calendar?year=2025&month=9", - "statusCode": 429, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:30:58.909Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-08-31&view_all=true", - "statusCode": 429, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:30:58.910Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-09-03&view_all=true", - "statusCode": 429, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:30:58.911Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-09-01&view_all=true", - "statusCode": 429, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:30:58.912Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-09-02&view_all=true", - "statusCode": 429, - "duration": "0ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:30:58.915Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-09-04&view_all=true", - "statusCode": 429, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:31:00.339Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/monthly-status/daily-details?date=2025-12-02", - "statusCode": 429, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:31:07.029Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T23:31:37.083Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T23:32:07.155Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T23:32:17.865Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-19", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:32:17.867Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:32:17.869Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:32:17.870Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-19&view_all=true", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:32:18.858Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:32:20.614Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-19", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:32:20.617Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:32:20.618Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:32:20.619Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-19&view_all=true", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:32:21.610Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:32:21.898Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:32:21.905Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:32:21.912Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/tasks", - "method": "GET" -} -[2026-01-19T23:32:21.914Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/tasks", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:32:22.871Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:32:37.228Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T23:32:54.349Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:32:55.335Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:32:55.341Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:32:56.230Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:32:56.232Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-19", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:32:56.233Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:32:56.235Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-19&view_all=true", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:32:57.226Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:32:57.408Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:32:57.435Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:32:57.439Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/tasks", - "method": "GET" -} -[2026-01-19T23:32:57.441Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/tasks", - "statusCode": 404, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:32:58.361Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:32:58.366Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:32:58.368Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:32:59.343Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:33:07.301Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T23:33:37.372Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T23:34:07.437Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T23:34:23.943Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:34:23.946Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:34:23.948Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:34:24.935Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:34:28.070Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-19", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:34:28.072Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:34:28.073Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-19&view_all=true", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:34:28.078Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:34:29.221Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:34:29.251Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:34:29.256Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/tasks", - "method": "GET" -} -[2026-01-19T23:34:29.258Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/tasks", - "statusCode": 404, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:34:30.211Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:34:37.504Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T23:34:42.294Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:34:42.297Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-19", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:34:42.299Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:34:42.300Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-19&view_all=true", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:34:43.417Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:34:43.429Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:34:43.433Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:34:43.437Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 304, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:34:43.441Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 304, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:34:43.446Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-20", - "created_by_user_id": 1, - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:34:43.446Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:34:43.447Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-20&created_by=1", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:34:44.404Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:35:07.569Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T23:35:37.641Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T23:36:07.712Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T23:36:37.781Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T23:37:07.855Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T23:37:37.928Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T23:38:08.003Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T23:38:38.076Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T23:39:08.145Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T23:39:38.212Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T23:40:08.297Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T23:40:38.374Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T23:40:46.517Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-19", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:40:46.520Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:40:46.521Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-19&view_all=true", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:40:46.526Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:40:47.517Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:40:50.652Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:40:50.659Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:40:50.664Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:40:50.672Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:40:50.676Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 304, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:40:50.679Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-20", - "created_by_user_id": 1, - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:40:50.680Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:40:50.681Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-20&created_by=1", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:40:51.647Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:40:52.199Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-19", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:40:52.201Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:40:52.202Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-19&view_all=true", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:40:52.203Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:40:53.169Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:40:53.175Z] [INFO] ℹ️ 월별 캘린더 데이터 조회 요청 - Context: { - "year": 2026, - "month": 1 -} -[2026-01-19T23:40:53.178Z] [ERROR] ❌ 월별 캘린더 데이터 조회 실패 - Context: { - "year": 2026, - "month": 1, - "error": "Table 'hyungi.monthly_summary' doesn't exist" -} -[2026-01-19T23:40:53.179Z] [ERROR] ❌ 월별 캘린더 데이터 조회 중 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 월별 캘린더 데이터 조회 중 오류가 발생했습니다\n at /usr/src/app/controllers/monthlyStatusController.js:80:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "url": "/api/monthly-status/calendar?year=2026&month=1", - "method": "GET", - "user": "anonymous" -} -[2026-01-19T23:40:53.182Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/monthly-status/calendar?year=2026&month=1", - "statusCode": 500, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:40:53.224Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2025-12-31", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:40:53.227Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-01", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:40:53.228Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:40:53.229Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-12-31&view_all=true", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:40:53.230Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-04", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:40:53.231Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-02", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:40:53.232Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-03", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:40:53.233Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:40:53.233Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-01&view_all=true", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:40:53.234Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:40:53.234Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-04&view_all=true", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:40:53.235Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:40:53.235Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-02&view_all=true", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:40:53.235Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:40:53.236Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-03&view_all=true", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:40:53.346Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-06", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:40:53.349Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-07", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:40:53.350Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-08", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:40:53.351Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-05", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:40:53.352Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-09", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:40:53.353Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:40:53.353Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-06&view_all=true", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:40:53.353Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:40:53.354Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-07&view_all=true", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:40:53.354Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:40:53.355Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-08&view_all=true", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:40:53.355Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:40:53.356Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-05&view_all=true", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:40:53.356Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:40:53.356Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-09&view_all=true", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:40:53.470Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-11", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:40:53.473Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-12", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:40:53.475Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-13", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:40:53.477Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-14", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:40:53.478Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-10", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:40:53.478Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:40:53.479Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-11&view_all=true", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:40:53.479Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:40:53.480Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-12&view_all=true", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:40:53.480Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:40:53.481Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-13&view_all=true", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:40:53.481Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:40:53.481Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-14&view_all=true", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:40:53.482Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:40:53.482Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-10&view_all=true", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:40:53.594Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-19", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:40:53.597Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-16", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:40:53.599Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-17", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:40:53.601Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-15", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:40:53.603Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:40:53.604Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-19&view_all=true", - "statusCode": 304, - "duration": "11ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:40:53.604Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:40:53.605Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-16&view_all=true", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:40:53.605Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:40:53.606Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-17&view_all=true", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:40:53.608Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:40:53.608Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-15&view_all=true", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:40:53.610Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-18", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:40:53.611Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 1 -} -[2026-01-19T23:40:53.611Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-18&view_all=true", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:40:53.726Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-21", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:40:53.728Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-22", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:40:53.730Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-23", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:40:53.732Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-20", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:40:53.733Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-24", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:40:53.734Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:40:53.735Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-21&view_all=true", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:40:53.735Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:40:53.736Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-22&view_all=true", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:40:53.736Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:40:53.736Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-23&view_all=true", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:40:53.737Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:40:53.737Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-20&view_all=true", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:40:53.737Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:40:53.738Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-24&view_all=true", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:40:53.851Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-26", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:40:53.853Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-27", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:40:53.856Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-28", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:40:53.858Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-25", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:40:53.860Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-29", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:40:53.861Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:40:53.861Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-26&view_all=true", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:40:53.862Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:40:53.862Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-27&view_all=true", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:40:53.863Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:40:53.863Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-28&view_all=true", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:40:53.864Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:40:53.865Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-25&view_all=true", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:40:53.866Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:40:53.866Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-29&view_all=true", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:40:53.975Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-30", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:40:53.977Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:40:53.978Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-30&view_all=true", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:40:54.163Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:40:54.919Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-19", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:40:54.921Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:40:54.923Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:40:54.924Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-19&view_all=true", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:40:55.918Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:40:56.524Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:40:57.520Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:40:57.523Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:40:57.884Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-19", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:40:57.886Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:40:57.887Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:40:57.888Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-19&view_all=true", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:40:59.049Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:40:59.054Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:40:59.059Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/tasks", - "method": "GET" -} -[2026-01-19T23:40:59.060Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/tasks", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:41:00.043Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:41:08.442Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T23:41:22.487Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:41:23.483Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:41:23.488Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:41:25.244Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-19", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:41:25.246Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:41:25.247Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:41:25.249Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-19&view_all=true", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:41:26.241Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:41:26.319Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:41:26.331Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:41:26.338Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/tasks", - "method": "GET" -} -[2026-01-19T23:41:26.340Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/tasks", - "statusCode": 404, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:41:27.612Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:41:27.615Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:41:27.618Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:41:28.601Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:41:32.525Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:41:32.530Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:41:32.535Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/tasks", - "method": "GET" -} -[2026-01-19T23:41:32.537Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/tasks", - "statusCode": 404, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:41:33.523Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:41:34.631Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-19", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:41:34.634Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:41:34.634Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:41:34.635Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-19&view_all=true", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:41:35.515Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:41:35.532Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:41:35.540Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:41:35.546Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:41:35.551Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:41:35.554Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-20", - "created_by_user_id": 1, - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:41:35.555Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:41:35.556Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-20&created_by=1", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:41:36.512Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:41:38.569Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T23:42:08.626Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T23:42:10.520Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:42:13.587Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:42:13.594Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:42:13.600Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:42:13.618Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:42:13.624Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:42:13.629Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-20", - "created_by_user_id": 1, - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:42:13.631Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:42:13.632Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-20&created_by=1", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:42:14.585Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:42:38.686Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T23:42:54.194Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:42:54.203Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:42:54.212Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:42:54.241Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:42:54.246Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:42:54.254Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-20", - "created_by_user_id": 1, - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:42:54.255Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:42:54.256Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-20&created_by=1", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:42:55.189Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:43:08.763Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T23:43:11.473Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:43:11.479Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:43:11.486Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:43:11.492Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:43:11.497Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:43:11.502Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-20", - "created_by_user_id": 1, - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:43:11.503Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:43:11.504Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-20&created_by=1", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:43:12.505Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-19", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:43:12.507Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:43:12.507Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:43:12.508Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-19&view_all=true", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:43:13.494Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:43:13.812Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:43:13.822Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:43:13.830Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/tasks", - "method": "GET" -} -[2026-01-19T23:43:13.831Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/tasks", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:43:14.803Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:43:38.834Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T23:43:53.431Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:43:53.452Z] [INFO] ℹ️ 월별 캘린더 데이터 조회 요청 - Context: { - "year": 2026, - "month": 1 -} -[2026-01-19T23:43:53.454Z] [ERROR] ❌ 월별 캘린더 데이터 조회 실패 - Context: { - "year": 2026, - "month": 1, - "error": "Table 'hyungi.monthly_summary' doesn't exist" -} -[2026-01-19T23:43:53.456Z] [ERROR] ❌ 월별 캘린더 데이터 조회 중 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 월별 캘린더 데이터 조회 중 오류가 발생했습니다\n at /usr/src/app/controllers/monthlyStatusController.js:80:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "url": "/api/monthly-status/calendar?year=2026&month=1", - "method": "GET", - "user": "anonymous" -} -[2026-01-19T23:43:53.457Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/monthly-status/calendar?year=2026&month=1", - "statusCode": 500, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:43:53.466Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2025-12-31", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:43:53.467Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-01", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:43:53.468Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-03", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:43:53.470Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:43:53.470Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-12-31&view_all=true", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:43:53.471Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:43:53.472Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-01&view_all=true", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:43:53.474Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-02", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:43:53.476Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-04", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:43:53.476Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:43:53.477Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-03&view_all=true", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:43:53.477Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:43:53.479Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-02&view_all=true", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:43:53.480Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:43:53.480Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-04&view_all=true", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:43:53.591Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-06", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:43:53.594Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-07", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:43:53.596Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-08", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:43:53.597Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-05", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:43:53.598Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-09", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:43:53.598Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:43:53.599Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-06&view_all=true", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:43:53.599Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:43:53.599Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-07&view_all=true", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:43:53.600Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:43:53.600Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-08&view_all=true", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:43:53.600Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:43:53.601Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-05&view_all=true", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:43:53.602Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:43:53.602Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-09&view_all=true", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:43:53.714Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-11", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:43:53.717Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-12", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:43:53.719Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-13", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:43:53.721Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-10", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:43:53.723Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-14", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:43:53.724Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:43:53.724Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-11&view_all=true", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:43:53.725Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:43:53.725Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-12&view_all=true", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:43:53.726Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:43:53.727Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-13&view_all=true", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:43:53.727Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:43:53.728Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-10&view_all=true", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:43:53.728Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:43:53.728Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-14&view_all=true", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:43:53.838Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-19", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:43:53.840Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-16", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:43:53.842Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-17", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:43:53.845Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-18", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:43:53.846Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-15", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:43:53.847Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:43:53.848Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-19&view_all=true", - "statusCode": 304, - "duration": "12ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:43:53.849Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:43:53.850Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-16&view_all=true", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:43:53.850Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:43:53.850Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-17&view_all=true", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:43:53.851Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 1 -} -[2026-01-19T23:43:53.852Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-18&view_all=true", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:43:53.852Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:43:53.853Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-15&view_all=true", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:43:53.966Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-20", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:43:53.969Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:43:53.970Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-20&view_all=true", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:43:53.972Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-21", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:43:53.974Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-22", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:43:53.975Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-23", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:43:53.976Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:43:53.977Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-21&view_all=true", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:43:53.978Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-24", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:43:53.978Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:43:53.978Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-22&view_all=true", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:43:53.979Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:43:53.979Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-23&view_all=true", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:43:53.979Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:43:53.979Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-24&view_all=true", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:43:54.092Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-25", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:43:54.094Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-26", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:43:54.097Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:43:54.098Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-25&view_all=true", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:43:54.099Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:43:54.100Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-26&view_all=true", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:43:54.101Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-27", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:43:54.103Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-28", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:43:54.105Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-29", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:43:54.105Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:43:54.106Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-27&view_all=true", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:43:54.107Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:43:54.107Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-28&view_all=true", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:43:54.108Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:43:54.108Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-29&view_all=true", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:43:54.217Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-30", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:43:54.218Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:43:54.220Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-30&view_all=true", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:43:54.428Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:43:55.928Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-19", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:43:55.929Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:43:55.929Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:43:55.930Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-19&view_all=true", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:43:56.747Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:43:56.755Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:43:56.763Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:43:56.768Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:43:56.772Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 304, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:43:56.778Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-20", - "created_by_user_id": 1, - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:43:56.779Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:43:56.780Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-20&created_by=1", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:43:57.744Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:44:08.902Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T23:44:14.951Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:44:14.966Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:44:14.974Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:44:14.980Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:44:14.999Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:44:15.003Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-20", - "created_by_user_id": 1, - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:44:15.005Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:44:15.006Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-20&created_by=1", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:44:15.948Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:44:16.005Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:44:16.012Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:44:16.018Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:44:16.023Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:44:16.026Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 304, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:44:16.030Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-20", - "created_by_user_id": 1, - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:44:16.031Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:44:16.033Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-20&created_by=1", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:44:16.482Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-19", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:44:16.485Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:44:16.486Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-19&view_all=true", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:44:16.489Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:44:17.481Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:44:20.205Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:44:20.214Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:44:20.220Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:44:20.224Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:44:20.228Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:44:20.232Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-20", - "created_by_user_id": 1, - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:44:20.233Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:44:20.234Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-20&created_by=1", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:44:21.202Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:44:21.205Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:44:38.975Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T23:45:09.045Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T23:45:39.107Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T23:46:09.172Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T23:46:39.238Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T23:46:54.045Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-19", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:46:54.049Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:46:54.050Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-19&view_all=true", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:46:54.053Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:46:55.038Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:46:55.416Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:46:55.423Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:46:55.431Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:46:55.436Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:46:55.440Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:46:55.445Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-20", - "created_by_user_id": 1, - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:46:55.446Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:46:55.447Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-20&created_by=1", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:46:56.407Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:47:01.431Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users/me", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:47:01.446Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/users/me/vacation-balance", - "statusCode": 500, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:47:01.460Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users/me/attendance-records?year=2026&month=1", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:47:01.476Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users/me/monthly-stats?year=2026&month=1", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:47:01.483Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/users/me/work-reports?startDate=2026-01-12&endDate=2026-01-19", - "statusCode": 500, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:47:02.404Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:47:02.423Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:47:09.317Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T23:47:33.843Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:47:34.837Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:47:34.843Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:47:37.766Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:47:37.773Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:47:37.780Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/tasks", - "method": "GET" -} -[2026-01-19T23:47:37.781Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/tasks", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:47:38.744Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:47:39.395Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T23:47:40.665Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:47:40.668Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:47:40.672Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:47:41.640Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:47:42.874Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:47:42.881Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:47:42.887Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/tasks", - "method": "GET" -} -[2026-01-19T23:47:42.888Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/tasks", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:47:43.871Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:47:44.330Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:47:45.318Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:48:05.790Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:48:05.796Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:48:05.803Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/tasks", - "method": "GET" -} -[2026-01-19T23:48:05.804Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/tasks", - "statusCode": 404, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:48:06.787Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:48:07.918Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:48:07.942Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:48:07.947Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/tasks", - "method": "GET" -} -[2026-01-19T23:48:07.949Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/tasks", - "statusCode": 404, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:48:08.990Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:48:09.000Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:48:09.005Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/tasks", - "method": "GET" -} -[2026-01-19T23:48:09.007Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/tasks", - "statusCode": 404, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:48:09.469Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T23:48:09.988Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:48:10.631Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:48:11.483Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:48:11.493Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:48:11.498Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/tasks", - "method": "GET" -} -[2026-01-19T23:48:11.499Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/tasks", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:48:11.804Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:48:11.829Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:48:11.838Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:48:11.843Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/tasks", - "method": "GET" -} -[2026-01-19T23:48:11.844Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/tasks", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:48:12.960Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:48:12.969Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:48:12.973Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/tasks", - "method": "GET" -} -[2026-01-19T23:48:12.974Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/tasks", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:48:13.821Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:48:13.832Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:48:13.836Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/tasks", - "method": "GET" -} -[2026-01-19T23:48:13.837Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/tasks", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:48:14.282Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:48:14.287Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:48:14.294Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/tasks", - "method": "GET" -} -[2026-01-19T23:48:14.296Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/tasks", - "statusCode": 404, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:48:14.643Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:48:14.651Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:48:14.655Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/tasks", - "method": "GET" -} -[2026-01-19T23:48:14.656Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/tasks", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:48:15.012Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:48:15.019Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:48:15.023Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/tasks", - "method": "GET" -} -[2026-01-19T23:48:15.024Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/tasks", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:48:15.389Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:48:15.396Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:48:15.402Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/tasks", - "method": "GET" -} -[2026-01-19T23:48:15.404Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/tasks", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:48:16.386Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:48:17.173Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/users/me", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:48:17.202Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/users/me/vacation-balance", - "statusCode": 500, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:48:17.211Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/users/me/attendance-records?year=2026&month=1", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:48:17.217Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/users/me/monthly-stats?year=2026&month=1", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:48:17.223Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/users/me/work-reports?startDate=2026-01-12&endDate=2026-01-19", - "statusCode": 500, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:48:18.172Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:48:18.176Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:48:27.413Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:48:27.420Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:48:27.425Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/tasks", - "method": "GET" -} -[2026-01-19T23:48:27.426Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/tasks", - "statusCode": 404, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:48:28.412Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:48:35.231Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:48:35.238Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:48:35.241Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/tasks", - "method": "GET" -} -[2026-01-19T23:48:35.243Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/tasks", - "statusCode": 404, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:48:36.226Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:48:39.536Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T23:49:09.609Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T23:49:39.674Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T23:50:09.755Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T23:50:19.225Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users/me", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:50:19.243Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/users/me/vacation-balance", - "statusCode": 500, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:50:19.256Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users/me/attendance-records?year=2026&month=1", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:50:19.264Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users/me/monthly-stats?year=2026&month=1", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:50:19.268Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/users/me/work-reports?startDate=2026-01-12&endDate=2026-01-19", - "statusCode": 500, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:50:20.212Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:50:20.218Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:50:33.440Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users/me/attendance-records?year=2025&month=12", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:50:33.443Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users/me/monthly-stats?year=2025&month=12", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:50:34.313Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users/me/attendance-records?year=2025&month=11", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:50:34.315Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users/me/monthly-stats?year=2025&month=11", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:50:34.520Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users/me/attendance-records?year=2025&month=10", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:50:34.526Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users/me/monthly-stats?year=2025&month=10", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:50:34.725Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users/me/attendance-records?year=2025&month=9", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:50:34.727Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users/me/monthly-stats?year=2025&month=9", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:50:34.897Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users/me/attendance-records?year=2025&month=8", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:50:34.902Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users/me/monthly-stats?year=2025&month=8", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:50:35.644Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/users/me/attendance-records?year=2025&month=9", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:50:35.645Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/users/me/monthly-stats?year=2025&month=9", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:50:35.807Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/users/me/attendance-records?year=2025&month=10", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:50:35.809Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/users/me/monthly-stats?year=2025&month=10", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:50:35.946Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/users/me/attendance-records?year=2025&month=11", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:50:35.946Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/users/me/monthly-stats?year=2025&month=11", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:50:36.090Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/users/me/attendance-records?year=2025&month=12", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:50:36.091Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/users/me/monthly-stats?year=2025&month=12", - "statusCode": 304, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:50:36.253Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/users/me/attendance-records?year=2026&month=1", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:50:36.256Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/users/me/monthly-stats?year=2026&month=1", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:50:36.518Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users/me/attendance-records?year=2026&month=2", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:50:36.523Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users/me/monthly-stats?year=2026&month=2", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:50:37.789Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/users/me/attendance-records?year=2026&month=1", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:50:37.791Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/users/me/monthly-stats?year=2026&month=1", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:50:37.958Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/users/me/attendance-records?year=2025&month=12", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:50:37.960Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/users/me/monthly-stats?year=2025&month=12", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:50:39.061Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/users/me/attendance-records?year=2025&month=11", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:50:39.063Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/users/me/monthly-stats?year=2025&month=11", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:50:39.270Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/users/me/attendance-records?year=2025&month=10", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:50:39.271Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/users/me/monthly-stats?year=2025&month=10", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:50:39.499Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/users/me/attendance-records?year=2025&month=9", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:50:39.500Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/users/me/monthly-stats?year=2025&month=9", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:50:39.750Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/users/me/attendance-records?year=2025&month=8", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:50:39.752Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/users/me/monthly-stats?year=2025&month=8", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:50:39.814Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T23:50:39.980Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users/me/attendance-records?year=2025&month=7", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:50:39.984Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users/me/monthly-stats?year=2025&month=7", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:50:40.707Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/users/me/attendance-records?year=2025&month=8", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:50:40.710Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/users/me/monthly-stats?year=2025&month=8", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:50:40.857Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/users/me/attendance-records?year=2025&month=9", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:50:40.859Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/users/me/monthly-stats?year=2025&month=9", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:50:41.012Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/users/me/attendance-records?year=2025&month=10", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:50:41.014Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/users/me/monthly-stats?year=2025&month=10", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:50:41.147Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/users/me/attendance-records?year=2025&month=11", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:50:41.149Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/users/me/monthly-stats?year=2025&month=11", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:50:41.291Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/users/me/attendance-records?year=2025&month=12", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:50:41.294Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/users/me/monthly-stats?year=2025&month=12", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:50:41.942Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/users/me/monthly-stats?year=2026&month=1", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:50:41.944Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/users/me/attendance-records?year=2026&month=1", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:51:09.881Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T23:51:39.947Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T23:52:10.032Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T23:52:40.105Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T23:52:41.322Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users/me", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:52:41.332Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/users/me/vacation-balance", - "statusCode": 500, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:52:41.349Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users/me/attendance-records?year=2026&month=1", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:52:41.362Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users/me/monthly-stats?year=2026&month=1", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:52:41.368Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/users/me/work-reports?startDate=2026-01-12&endDate=2026-01-19", - "statusCode": 500, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:52:42.322Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:52:42.325Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:52:42.968Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/users/me", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:52:42.976Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/users/me/vacation-balance", - "statusCode": 500, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:52:42.984Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/users/me/attendance-records?year=2026&month=1", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:52:42.990Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/users/me/monthly-stats?year=2026&month=1", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:52:42.993Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/users/me/work-reports?startDate=2026-01-12&endDate=2026-01-19", - "statusCode": 500, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:52:43.691Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/users/me", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:52:43.700Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/users/me/vacation-balance", - "statusCode": 500, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:52:43.707Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/users/me/attendance-records?year=2026&month=1", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:52:43.712Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/users/me/monthly-stats?year=2026&month=1", - "statusCode": 304, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:52:43.716Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/users/me/work-reports?startDate=2026-01-12&endDate=2026-01-19", - "statusCode": 500, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:52:44.691Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:52:44.693Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:53:10.175Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T23:53:40.248Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T23:53:46.726Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users/me", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:53:46.736Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/users/me/vacation-balance", - "statusCode": 500, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:53:46.746Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users/me/attendance-records?year=2026&month=1", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:53:46.763Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users/me/monthly-stats?year=2026&month=1", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:53:46.771Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/users/me/work-reports?startDate=2026-01-12&endDate=2026-01-19", - "statusCode": 500, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:53:47.724Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:53:47.726Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:54:10.313Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T23:54:40.385Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T23:54:54.140Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-19", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:54:54.142Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:54:54.143Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-19&view_all=true", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:54:54.147Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:54:55.138Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:55:05.735Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:55:05.742Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:55:05.750Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:55:05.757Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:55:05.765Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:55:05.773Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-20", - "created_by_user_id": 1, - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:55:05.774Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:55:05.774Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-20&created_by=1", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:55:06.704Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:55:10.464Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T23:55:13.316Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:55:13.325Z] [INFO] ℹ️ 월별 캘린더 데이터 조회 요청 - Context: { - "year": 2026, - "month": 1 -} -[2026-01-19T23:55:13.327Z] [ERROR] ❌ 월별 캘린더 데이터 조회 실패 - Context: { - "year": 2026, - "month": 1, - "error": "Table 'hyungi.monthly_summary' doesn't exist" -} -[2026-01-19T23:55:13.328Z] [ERROR] ❌ 월별 캘린더 데이터 조회 중 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 월별 캘린더 데이터 조회 중 오류가 발생했습니다\n at /usr/src/app/controllers/monthlyStatusController.js:80:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "url": "/api/monthly-status/calendar?year=2026&month=1", - "method": "GET", - "user": "anonymous" -} -[2026-01-19T23:55:13.330Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/monthly-status/calendar?year=2026&month=1", - "statusCode": 500, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:55:13.338Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2025-12-31", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:55:13.340Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-02", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:55:13.341Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-01", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:55:13.341Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-04", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:55:13.342Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-03", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:55:13.343Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:55:13.344Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-12-31&view_all=true", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:55:13.344Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:55:13.345Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-02&view_all=true", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:55:13.345Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:55:13.346Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-01&view_all=true", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:55:13.346Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:55:13.346Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-04&view_all=true", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:55:13.347Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:55:13.347Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-03&view_all=true", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:55:13.458Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-06", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:55:13.460Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-07", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:55:13.462Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-05", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:55:13.464Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-08", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:55:13.466Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-09", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:55:13.467Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:55:13.468Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-06&view_all=true", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:55:13.469Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:55:13.470Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-07&view_all=true", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:55:13.470Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:55:13.470Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-05&view_all=true", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:55:13.471Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:55:13.471Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-08&view_all=true", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:55:13.471Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:55:13.472Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-09&view_all=true", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:55:13.581Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-11", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:55:13.583Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-12", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:55:13.583Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-10", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:55:13.584Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-13", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:55:13.585Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-14", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:55:13.586Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:55:13.586Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-11&view_all=true", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:55:13.587Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:55:13.588Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-12&view_all=true", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:55:13.588Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:55:13.588Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-10&view_all=true", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:55:13.589Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:55:13.589Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-13&view_all=true", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:55:13.589Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:55:13.590Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-14&view_all=true", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:55:13.698Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-19", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:55:13.700Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-16", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:55:13.703Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-17", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:55:13.704Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-15", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:55:13.707Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-18", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:55:13.708Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:55:13.709Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-19&view_all=true", - "statusCode": 304, - "duration": "13ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:55:13.710Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:55:13.710Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-16&view_all=true", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:55:13.711Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:55:13.711Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-17&view_all=true", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:55:13.712Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:55:13.712Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-15&view_all=true", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:55:13.713Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 1 -} -[2026-01-19T23:55:13.713Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-18&view_all=true", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:55:13.829Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-23", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:55:13.832Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-20", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:55:13.834Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-21", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:55:13.836Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-22", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:55:13.837Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:55:13.837Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-23&view_all=true", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:55:13.837Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:55:13.838Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-20&view_all=true", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:55:13.838Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:55:13.838Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-21&view_all=true", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:55:13.838Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:55:13.839Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-22&view_all=true", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:55:13.839Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-24", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:55:13.840Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:55:13.840Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-24&view_all=true", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:55:13.952Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-26", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:55:13.954Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-27", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:55:13.957Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-25", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:55:13.959Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-28", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:55:13.962Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-29", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:55:13.963Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:55:13.964Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-26&view_all=true", - "statusCode": 200, - "duration": "14ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:55:13.964Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:55:13.965Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-27&view_all=true", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:55:13.965Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:55:13.965Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-25&view_all=true", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:55:13.966Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:55:13.966Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-28&view_all=true", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:55:13.966Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:55:13.966Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-29&view_all=true", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:55:14.073Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-30", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:55:14.075Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:55:14.076Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-30&view_all=true", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:55:14.312Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:55:21.683Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-19", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:55:21.687Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:55:21.688Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-19&view_all=true", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:55:21.690Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:55:22.679Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:55:23.314Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:55:24.304Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:55:24.311Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:55:28.769Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-19", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:55:28.772Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:55:28.773Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:55:28.774Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-19&view_all=true", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:55:29.764Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:55:30.944Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:55:30.954Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:55:30.960Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/tasks", - "method": "GET" -} -[2026-01-19T23:55:30.962Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/tasks", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:55:31.920Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:55:38.868Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:55:39.853Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:55:40.537Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T23:55:44.978Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-19", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:55:44.981Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:55:44.983Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-19&view_all=true", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:55:44.985Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:55:45.974Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:55:46.051Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:55:46.056Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:55:46.061Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/tasks", - "method": "GET" -} -[2026-01-19T23:55:46.062Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/tasks", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:55:47.044Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:55:47.666Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:55:48.656Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:55:53.337Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:55:53.340Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-19", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:55:53.342Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:55:53.344Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-19&view_all=true", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:55:54.332Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:55:54.780Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:55:54.789Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:55:54.794Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/tasks", - "method": "GET" -} -[2026-01-19T23:55:54.795Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/tasks", - "statusCode": 404, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:55:55.770Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:55:56.271Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:55:56.273Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:55:56.279Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:55:57.266Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:56:01.397Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-19", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:56:01.400Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:56:01.401Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-19&view_all=true", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:56:01.404Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:56:02.274Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:56:02.280Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:56:02.294Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/tasks", - "method": "GET" -} -[2026-01-19T23:56:02.297Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/tasks", - "statusCode": 404, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:56:03.273Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:56:03.390Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:56:04.387Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:56:04.388Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:56:10.609Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T23:56:11.212Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-19", - "requester": 1, - "isAdmin": false -} -[2026-01-19T23:56:11.215Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-19T23:56:11.216Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-19&view_all=true", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:56:11.219Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:56:12.205Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:56:12.673Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:56:13.670Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:56:13.672Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:56:40.685Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T23:57:10.754Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T23:57:40.818Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T23:58:10.899Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T23:58:40.966Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T23:59:11.052Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-19T23:59:41.121Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T00:00:11.200Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T00:00:41.268Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T00:01:11.347Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T00:01:41.430Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T00:02:11.513Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T00:02:41.574Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T00:03:11.653Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T00:03:41.730Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T00:04:11.800Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T00:04:41.877Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T00:05:11.947Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T00:05:42.024Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T00:06:12.089Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T00:06:42.168Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T00:07:12.237Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T00:07:42.307Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T00:08:12.379Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T00:08:42.455Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T00:09:12.539Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T00:09:42.618Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T00:10:12.694Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T00:10:42.748Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T00:11:12.817Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T00:11:42.893Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T00:12:12.975Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T00:12:43.038Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T00:13:13.087Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T00:13:43.150Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T00:14:13.215Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T00:14:43.291Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T00:15:13.360Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T00:15:43.432Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T00:16:13.497Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T00:16:43.572Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T00:17:13.644Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T00:17:43.714Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T00:18:13.775Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T00:18:43.847Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T00:19:13.918Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T00:19:43.984Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T00:20:14.064Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T00:20:44.145Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T00:21:14.216Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T00:21:44.278Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T00:22:14.366Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T00:22:44.444Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T00:23:14.513Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T00:23:44.584Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T00:24:14.658Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T00:24:44.735Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T00:25:14.820Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T00:25:44.889Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T00:26:14.963Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T00:26:45.034Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T00:27:15.116Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T00:27:45.195Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T00:28:15.272Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T00:28:45.351Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T00:29:15.427Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T00:29:45.495Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T00:30:15.571Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T00:30:45.644Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T00:31:15.696Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T00:31:45.768Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T00:32:15.830Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T00:32:45.892Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T00:33:15.962Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T00:33:46.031Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T00:34:16.092Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T00:34:46.177Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T00:35:16.244Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T00:35:46.312Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T00:36:16.380Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T00:36:46.442Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T00:37:16.520Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T00:37:46.598Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T00:38:16.671Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T00:38:46.739Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T00:39:16.800Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T00:39:46.868Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T00:40:16.938Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T00:40:47.024Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T00:41:17.723Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T00:43:00.068Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T00:43:30.143Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T00:44:00.216Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T00:44:30.293Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T00:45:00.362Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T00:45:30.430Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T00:46:00.509Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T00:46:30.591Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T00:47:00.667Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T00:47:30.740Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T00:48:00.811Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T00:48:30.889Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T00:49:00.959Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T00:49:31.030Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T00:50:01.105Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T00:50:31.172Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T00:51:01.245Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T00:51:31.315Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T00:52:01.385Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T00:52:31.456Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T00:53:01.522Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T00:53:31.596Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T00:54:01.667Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T00:54:31.741Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T00:55:01.805Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T00:55:31.890Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T00:56:01.964Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T00:56:32.037Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T00:57:02.114Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T00:57:32.185Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T00:58:02.255Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T00:58:32.327Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T00:59:02.400Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T00:59:32.469Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T01:00:02.547Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T01:00:32.621Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T01:01:02.684Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T01:01:32.733Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T01:02:02.814Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T01:02:32.891Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T01:03:02.964Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T01:03:33.023Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T01:04:03.089Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T01:04:33.150Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T01:05:03.216Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T01:05:33.282Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T01:06:03.346Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T01:06:33.415Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T01:07:03.487Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T01:07:33.559Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T01:08:03.632Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T01:08:33.703Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T01:09:03.780Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T01:09:33.854Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T01:10:03.921Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T01:10:33.997Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T01:11:04.065Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T01:11:34.147Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T01:12:04.213Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T01:12:34.282Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T01:13:04.360Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T01:13:34.439Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T01:14:04.513Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T01:14:34.595Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T01:15:04.667Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T01:15:34.735Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T01:16:04.812Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T01:16:34.894Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T01:17:04.957Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T01:17:35.031Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T01:18:05.098Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T01:18:35.166Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T01:19:05.241Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T01:19:35.327Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T01:20:05.395Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T01:20:35.456Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T01:21:05.531Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T01:21:35.600Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T01:22:05.674Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T01:22:35.748Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T01:23:05.825Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T01:23:35.899Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T01:24:05.964Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T01:24:36.023Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T01:25:06.089Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T01:25:36.164Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T01:26:06.230Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T01:26:36.309Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T01:27:06.380Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T01:27:36.450Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T01:28:06.520Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T01:28:36.585Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T01:29:06.661Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T01:29:36.727Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T01:30:06.796Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T01:30:36.874Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T01:31:06.955Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T01:31:37.027Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T01:32:07.099Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T01:32:37.165Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T01:33:07.233Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T01:33:37.305Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T01:34:07.374Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T01:34:37.447Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T01:35:07.523Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T01:35:37.604Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T01:36:07.674Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T01:36:37.738Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T01:37:07.814Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T01:37:37.881Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T01:38:07.964Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T01:38:38.043Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T01:39:08.116Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T01:39:38.196Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T01:40:08.261Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T01:40:38.329Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T01:41:08.396Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T01:41:38.471Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T01:42:08.550Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T01:42:38.623Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T01:43:08.693Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T01:43:38.757Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T01:44:08.823Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T01:44:38.895Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T01:45:08.971Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T01:45:39.037Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T01:46:09.105Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T01:46:39.176Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T01:47:09.248Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T01:47:39.314Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T01:48:09.387Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T01:48:39.460Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T01:48:48.799Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T01:48:52.774Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 200, - "duration": "75ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T01:48:53.459Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-20", - "requester": 1, - "isAdmin": false -} -[2026-01-20T01:48:53.462Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T01:48:53.463Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-20&view_all=true", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T01:48:53.469Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "15ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T01:48:54.373Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T01:49:09.526Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T01:49:25.037Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-20", - "requester": 1, - "isAdmin": false -} -[2026-01-20T01:49:25.043Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T01:49:25.044Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-20&view_all=true", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T01:49:25.046Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T01:49:26.035Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T01:49:32.618Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T01:49:32.627Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T01:49:32.633Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T01:49:32.638Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 304, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T01:49:32.644Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 304, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T01:49:32.649Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-20", - "created_by_user_id": 1, - "requester": 1, - "isAdmin": false -} -[2026-01-20T01:49:32.650Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T01:49:32.650Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-20&created_by=1", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T01:49:33.593Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T01:49:39.598Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T01:50:09.672Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T01:50:39.745Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T01:51:01.250Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2026-01-20T01:51:01.252Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-01-20T01:51:01.705Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-20T01:51:01.781Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-01-20T01:51:01.854Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2026-01-20T01:51:01.857Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-01-20T01:51:06.568Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T01:51:36.647Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T01:52:06.719Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T01:52:36.775Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T01:53:06.833Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T01:53:36.907Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T01:54:06.979Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T01:54:37.044Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T01:55:07.109Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T01:55:37.176Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T01:56:07.243Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T01:56:37.329Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T01:57:07.403Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T01:57:37.474Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T01:58:07.554Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T01:58:37.627Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T01:59:07.699Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T01:59:37.768Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T02:00:07.846Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T02:00:37.921Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T02:01:07.992Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T02:01:38.074Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T02:02:08.144Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T02:02:38.216Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T02:03:08.291Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T02:03:38.371Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T02:04:08.451Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T02:04:38.531Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T02:05:08.606Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T02:05:38.681Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T02:06:08.757Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T02:06:38.833Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T02:07:08.908Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T02:07:38.977Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T02:08:09.054Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T02:08:39.152Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T02:09:09.229Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T02:09:39.333Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T02:10:11.096Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T02:10:49.734Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T02:11:19.810Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T02:12:58.522Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T02:28:26.544Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T02:28:56.615Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T02:29:26.689Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T02:29:56.762Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T02:30:26.832Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T02:30:56.905Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T02:31:26.974Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T02:31:57.051Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T02:32:27.131Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T02:32:57.206Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T02:33:27.276Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T02:33:57.356Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T02:34:27.432Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T02:34:57.507Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T02:35:27.566Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T02:35:57.642Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T02:36:27.691Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T02:36:57.759Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T02:37:27.848Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T02:37:57.918Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T02:38:27.983Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T02:38:58.053Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T02:39:28.122Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T02:39:58.189Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T02:40:28.265Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T02:40:58.330Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T02:41:28.391Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T02:41:58.462Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T02:42:28.536Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T02:42:58.596Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T02:43:28.673Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T02:43:58.756Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T02:44:28.836Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T02:44:58.916Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T02:45:28.995Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T02:45:59.067Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T02:46:29.161Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T02:46:59.223Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T02:47:29.336Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T02:47:59.402Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T02:48:29.476Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T02:48:59.547Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T02:49:29.631Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T02:49:59.713Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T02:50:29.789Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T02:50:59.861Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T02:51:29.936Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T02:52:00.003Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T02:52:30.073Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T02:53:00.144Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T02:53:30.215Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T02:54:00.286Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T02:54:30.360Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T02:55:00.433Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T02:55:30.495Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T02:56:00.574Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T02:56:30.658Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T02:57:00.728Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T02:57:30.798Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T02:58:00.863Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T02:58:30.934Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T02:59:01.010Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T02:59:31.082Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T03:00:01.153Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T03:00:31.227Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T03:01:01.297Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T03:01:31.375Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T03:02:01.448Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T03:02:31.505Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T03:03:01.603Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T03:03:31.691Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T03:04:01.782Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T03:04:31.871Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T03:05:01.964Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T03:05:32.055Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T03:06:02.151Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T03:06:32.241Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T03:07:02.343Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T03:07:32.442Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T03:08:02.534Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T03:08:32.623Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T03:09:02.711Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T03:09:32.800Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T03:10:02.897Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T03:10:32.995Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T03:11:03.089Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T03:11:33.162Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T03:12:03.244Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T03:12:33.344Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T03:13:03.428Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T03:13:33.519Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T03:14:03.601Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T03:14:33.690Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T03:15:03.785Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T03:15:33.878Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T03:16:03.965Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T03:16:34.052Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T03:17:04.144Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T03:17:34.236Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T03:18:04.328Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T03:18:34.423Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T03:19:04.513Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T03:19:34.602Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T03:20:04.690Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T03:20:34.781Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T03:21:04.873Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T03:21:34.959Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T03:22:05.054Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T03:22:35.141Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T03:23:05.234Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T03:23:35.323Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T03:24:05.408Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T03:24:35.509Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T03:25:05.575Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T03:25:35.659Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T03:26:05.721Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T03:26:35.812Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T03:27:05.895Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T03:27:35.985Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T03:28:06.071Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T03:28:36.169Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T03:29:06.263Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T03:29:36.367Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T03:30:06.452Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T03:30:36.578Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T03:31:06.666Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T03:31:36.786Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T03:32:06.883Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T03:32:37.018Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T03:33:07.344Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T03:33:37.453Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T03:39:26.309Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T03:39:56.391Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T03:40:26.481Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T03:40:56.566Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T03:41:26.667Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T03:41:56.757Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T03:42:26.854Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T03:42:56.948Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T03:43:27.050Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T03:43:57.136Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T03:44:27.219Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T03:44:57.319Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T03:45:27.421Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T03:45:57.509Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T03:46:27.605Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T03:46:57.694Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T03:47:27.783Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T03:47:57.872Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T03:48:27.944Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T03:48:58.090Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "10ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T03:49:28.203Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T03:49:58.316Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T03:50:28.402Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T03:50:58.501Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T03:51:28.596Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T03:51:58.682Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T03:52:28.798Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T03:52:58.878Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T03:53:28.974Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T03:53:59.063Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T03:54:29.160Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T03:54:59.250Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T03:55:29.343Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T03:55:59.432Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T03:56:29.520Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T03:56:59.610Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T03:57:29.695Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T03:57:59.812Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T03:58:29.897Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T03:58:59.995Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T03:59:30.079Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T04:00:00.167Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T04:00:30.265Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T04:01:00.363Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T04:01:30.458Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T04:02:00.555Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T04:02:30.643Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T04:03:00.726Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T04:03:30.815Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T04:04:00.920Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T04:04:31.009Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T04:05:01.110Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T04:05:31.191Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T04:06:01.295Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T04:06:31.382Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T04:07:01.471Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T04:07:31.577Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T04:08:01.675Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T04:08:31.771Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T04:09:01.867Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T04:09:31.965Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T04:10:02.069Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T04:10:32.160Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T04:11:02.269Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T04:11:32.351Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T04:12:02.448Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T04:12:32.535Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T04:13:02.621Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T04:13:32.712Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T04:14:02.784Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T04:14:32.870Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T04:15:02.957Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T04:15:33.039Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T04:16:03.124Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T04:16:33.212Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T04:17:03.292Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T04:17:33.381Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T04:18:03.476Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T04:18:33.572Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T04:19:03.656Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T04:19:33.752Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T04:20:03.845Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T04:20:33.930Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T04:21:04.023Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T04:21:34.127Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T04:22:04.221Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T04:22:34.316Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T04:23:04.401Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T04:23:34.481Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T04:24:04.578Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T04:24:34.669Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T04:25:04.750Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T04:25:34.840Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T04:26:04.933Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T04:26:35.022Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T04:27:05.109Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T04:27:35.197Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T04:28:05.280Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T04:28:35.362Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T04:29:05.453Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T04:29:35.540Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T04:30:05.624Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T04:30:35.724Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T04:31:05.811Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T04:31:35.896Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T04:32:05.988Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T04:32:36.068Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T04:33:06.162Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T04:33:36.253Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T04:34:06.326Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T04:34:36.421Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T04:35:06.514Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T04:35:36.605Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T04:36:06.695Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T04:36:36.785Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T04:37:06.898Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T04:37:36.985Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T04:38:07.071Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T04:38:37.159Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T04:39:07.237Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T04:39:37.326Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T04:40:07.419Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T04:40:37.507Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T04:41:07.590Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T04:41:37.688Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T04:42:07.780Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T04:42:37.872Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T04:43:07.959Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T04:43:38.041Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T04:44:08.116Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T04:44:38.198Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T04:45:08.287Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T04:45:38.381Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T04:46:08.469Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T04:46:38.539Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T04:47:08.642Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T04:47:38.713Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T04:48:08.813Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T04:48:38.916Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T04:49:09.008Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T04:49:39.101Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T04:50:09.186Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T04:50:39.260Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T04:51:09.350Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T04:51:39.447Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T04:52:09.543Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T04:52:39.632Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T04:53:09.725Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T04:53:39.814Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T04:54:09.905Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T04:54:34.119Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T04:54:39.998Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T04:54:41.458Z] [INFO] ℹ️ MariaDB 연결 성공 - Context: { - "connection": "db:3306", - "database": "hyungi", - "connectionLimit": 10 -} -[2026-01-20T04:54:41.539Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 200, - "duration": "100ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T04:54:43.159Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T04:55:06.590Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 304, - "duration": "15ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T04:55:06.621Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T04:55:06.632Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T04:55:06.642Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T04:55:06.652Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T04:55:06.659Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-20", - "created_by_user_id": 1, - "requester": 1, - "isAdmin": false -} -[2026-01-20T04:55:06.661Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T04:55:06.663Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-20&created_by=1", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T04:55:07.564Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T04:55:10.092Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T04:55:29.602Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-20", - "worker": 3, - "creator": "hyungi", - "entries_count": 1 -} -[2026-01-20T04:55:29.631Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-01-20T04:55:29.632Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "33ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T04:55:31.648Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-20", - "created_by_user_id": 1, - "requester": 1, - "isAdmin": false -} -[2026-01-20T04:55:31.653Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 1 -} -[2026-01-20T04:55:31.655Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-20&created_by=1", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T04:55:40.175Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T04:55:53.898Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T04:55:53.910Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T04:55:53.916Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T04:55:53.922Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T04:55:53.927Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T04:55:53.931Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-20", - "created_by_user_id": 1, - "requester": 1, - "isAdmin": false -} -[2026-01-20T04:55:53.932Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 1 -} -[2026-01-20T04:55:53.933Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-20&created_by=1", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T04:55:54.889Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T04:55:57.123Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T04:55:58.642Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T04:55:58.673Z] [INFO] ℹ️ 월별 캘린더 데이터 조회 요청 - Context: { - "year": 2026, - "month": 1 -} -[2026-01-20T04:55:58.676Z] [ERROR] ❌ 월별 캘린더 데이터 조회 실패 - Context: { - "year": 2026, - "month": 1, - "error": "Table 'hyungi.monthly_summary' doesn't exist" -} -[2026-01-20T04:55:58.678Z] [ERROR] ❌ 월별 캘린더 데이터 조회 중 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 월별 캘린더 데이터 조회 중 오류가 발생했습니다\n at /usr/src/app/controllers/monthlyStatusController.js:80:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "url": "/api/monthly-status/calendar?year=2026&month=1", - "method": "GET", - "user": "anonymous" -} -[2026-01-20T04:55:58.678Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/monthly-status/calendar?year=2026&month=1", - "statusCode": 500, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T04:55:58.693Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-02", - "requester": 1, - "isAdmin": false -} -[2026-01-20T04:55:58.695Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-01", - "requester": 1, - "isAdmin": false -} -[2026-01-20T04:55:58.696Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2025-12-31", - "requester": 1, - "isAdmin": false -} -[2026-01-20T04:55:58.698Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-04", - "requester": 1, - "isAdmin": false -} -[2026-01-20T04:55:58.701Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T04:55:58.701Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-02&view_all=true", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T04:55:58.702Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T04:55:58.703Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-01&view_all=true", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T04:55:58.706Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-03", - "requester": 1, - "isAdmin": false -} -[2026-01-20T04:55:58.708Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T04:55:58.710Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-03&view_all=true", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T04:55:58.714Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T04:55:58.715Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-12-31&view_all=true", - "statusCode": 200, - "duration": "20ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T04:55:58.717Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T04:55:58.718Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-04&view_all=true", - "statusCode": 200, - "duration": "20ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T04:55:58.826Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-05", - "requester": 1, - "isAdmin": false -} -[2026-01-20T04:55:58.827Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-06", - "requester": 1, - "isAdmin": false -} -[2026-01-20T04:55:58.828Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-07", - "requester": 1, - "isAdmin": false -} -[2026-01-20T04:55:58.830Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-08", - "requester": 1, - "isAdmin": false -} -[2026-01-20T04:55:58.831Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-09", - "requester": 1, - "isAdmin": false -} -[2026-01-20T04:55:58.832Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T04:55:58.833Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-05&view_all=true", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T04:55:58.833Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T04:55:58.834Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-06&view_all=true", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T04:55:58.834Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T04:55:58.835Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-07&view_all=true", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T04:55:58.836Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T04:55:58.836Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-08&view_all=true", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T04:55:58.838Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T04:55:58.838Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-09&view_all=true", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T04:55:58.953Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-11", - "requester": 1, - "isAdmin": false -} -[2026-01-20T04:55:58.957Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-12", - "requester": 1, - "isAdmin": false -} -[2026-01-20T04:55:58.959Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-13", - "requester": 1, - "isAdmin": false -} -[2026-01-20T04:55:58.961Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-10", - "requester": 1, - "isAdmin": false -} -[2026-01-20T04:55:58.963Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-14", - "requester": 1, - "isAdmin": false -} -[2026-01-20T04:55:58.963Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T04:55:58.964Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-11&view_all=true", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T04:55:58.965Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T04:55:58.965Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-12&view_all=true", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T04:55:58.966Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T04:55:58.967Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-13&view_all=true", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T04:55:58.968Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T04:55:58.968Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-10&view_all=true", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T04:55:58.969Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T04:55:58.969Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-14&view_all=true", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T04:55:59.092Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-16", - "requester": 1, - "isAdmin": false -} -[2026-01-20T04:55:59.096Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-15", - "requester": 1, - "isAdmin": false -} -[2026-01-20T04:55:59.098Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-17", - "requester": 1, - "isAdmin": false -} -[2026-01-20T04:55:59.100Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T04:55:59.100Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-16&view_all=true", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T04:55:59.102Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-18", - "requester": 1, - "isAdmin": false -} -[2026-01-20T04:55:59.104Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-19", - "requester": 1, - "isAdmin": false -} -[2026-01-20T04:55:59.105Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T04:55:59.105Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-15&view_all=true", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T04:55:59.106Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T04:55:59.107Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-17&view_all=true", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T04:55:59.107Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 1 -} -[2026-01-20T04:55:59.108Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-18&view_all=true", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T04:55:59.109Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T04:55:59.110Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-19&view_all=true", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T04:55:59.234Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-20", - "requester": 1, - "isAdmin": false -} -[2026-01-20T04:55:59.236Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-21", - "requester": 1, - "isAdmin": false -} -[2026-01-20T04:55:59.238Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-22", - "requester": 1, - "isAdmin": false -} -[2026-01-20T04:55:59.241Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 1 -} -[2026-01-20T04:55:59.241Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-20&view_all=true", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T04:55:59.242Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T04:55:59.243Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-21&view_all=true", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T04:55:59.243Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T04:55:59.244Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-22&view_all=true", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T04:55:59.246Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-23", - "requester": 1, - "isAdmin": false -} -[2026-01-20T04:55:59.248Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-24", - "requester": 1, - "isAdmin": false -} -[2026-01-20T04:55:59.249Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T04:55:59.249Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-23&view_all=true", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T04:55:59.250Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T04:55:59.251Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-24&view_all=true", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T04:55:59.367Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-26", - "requester": 1, - "isAdmin": false -} -[2026-01-20T04:55:59.371Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-27", - "requester": 1, - "isAdmin": false -} -[2026-01-20T04:55:59.374Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-25", - "requester": 1, - "isAdmin": false -} -[2026-01-20T04:55:59.375Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-28", - "requester": 1, - "isAdmin": false -} -[2026-01-20T04:55:59.378Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T04:55:59.380Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-26&view_all=true", - "statusCode": 200, - "duration": "15ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T04:55:59.381Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T04:55:59.383Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-27&view_all=true", - "statusCode": 200, - "duration": "14ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T04:55:59.384Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T04:55:59.386Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-25&view_all=true", - "statusCode": 200, - "duration": "14ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T04:55:59.387Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T04:55:59.388Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-28&view_all=true", - "statusCode": 200, - "duration": "14ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T04:55:59.390Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-29", - "requester": 1, - "isAdmin": false -} -[2026-01-20T04:55:59.391Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T04:55:59.391Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-29&view_all=true", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T04:55:59.502Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-30", - "requester": 1, - "isAdmin": false -} -[2026-01-20T04:55:59.505Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T04:55:59.507Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-30&view_all=true", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T04:55:59.629Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T04:56:01.392Z] [INFO] ℹ️ 일별 작업자 상세 조회 요청 - Context: { - "date": "2026-01-20" -} -[2026-01-20T04:56:01.397Z] [INFO] ℹ️ 일별 작업자 상세 조회 성공 - Context: { - "date": "2026-01-20", - "workerCount": 11, - "totalHours": 8 -} -[2026-01-20T04:56:01.400Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/monthly-status/daily-details?date=2026-01-20", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T04:56:10.276Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T04:56:40.369Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T04:57:10.463Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T04:57:39.382Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T04:57:39.386Z] [INFO] ℹ️ 월별 캘린더 데이터 조회 요청 - Context: { - "year": 2026, - "month": 1 -} -[2026-01-20T04:57:39.387Z] [ERROR] ❌ 월별 캘린더 데이터 조회 실패 - Context: { - "year": 2026, - "month": 1, - "error": "Table 'hyungi.monthly_summary' doesn't exist" -} -[2026-01-20T04:57:39.388Z] [ERROR] ❌ 월별 캘린더 데이터 조회 중 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 월별 캘린더 데이터 조회 중 오류가 발생했습니다\n at /usr/src/app/controllers/monthlyStatusController.js:80:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "url": "/api/monthly-status/calendar?year=2026&month=1", - "method": "GET", - "user": "anonymous" -} -[2026-01-20T04:57:39.389Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/monthly-status/calendar?year=2026&month=1", - "statusCode": 500, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T04:57:39.395Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2025-12-31", - "requester": 1, - "isAdmin": false -} -[2026-01-20T04:57:39.396Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-01", - "requester": 1, - "isAdmin": false -} -[2026-01-20T04:57:39.396Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T04:57:39.397Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-12-31&view_all=true", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T04:57:39.397Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T04:57:39.397Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-01&view_all=true", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T04:57:39.398Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-02", - "requester": 1, - "isAdmin": false -} -[2026-01-20T04:57:39.399Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-03", - "requester": 1, - "isAdmin": false -} -[2026-01-20T04:57:39.400Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-04", - "requester": 1, - "isAdmin": false -} -[2026-01-20T04:57:39.401Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T04:57:39.401Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-02&view_all=true", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T04:57:39.402Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T04:57:39.403Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-03&view_all=true", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T04:57:39.403Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T04:57:39.404Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-04&view_all=true", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T04:57:39.517Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-06", - "requester": 1, - "isAdmin": false -} -[2026-01-20T04:57:39.519Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-07", - "requester": 1, - "isAdmin": false -} -[2026-01-20T04:57:39.521Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-08", - "requester": 1, - "isAdmin": false -} -[2026-01-20T04:57:39.523Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-05", - "requester": 1, - "isAdmin": false -} -[2026-01-20T04:57:39.524Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-09", - "requester": 1, - "isAdmin": false -} -[2026-01-20T04:57:39.525Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T04:57:39.525Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-06&view_all=true", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T04:57:39.526Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T04:57:39.526Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-07&view_all=true", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T04:57:39.527Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T04:57:39.527Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-08&view_all=true", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T04:57:39.527Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T04:57:39.528Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-05&view_all=true", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T04:57:39.528Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T04:57:39.528Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-09&view_all=true", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T04:57:39.645Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-11", - "requester": 1, - "isAdmin": false -} -[2026-01-20T04:57:39.648Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-12", - "requester": 1, - "isAdmin": false -} -[2026-01-20T04:57:39.649Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-13", - "requester": 1, - "isAdmin": false -} -[2026-01-20T04:57:39.651Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-10", - "requester": 1, - "isAdmin": false -} -[2026-01-20T04:57:39.652Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-14", - "requester": 1, - "isAdmin": false -} -[2026-01-20T04:57:39.653Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T04:57:39.653Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-11&view_all=true", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T04:57:39.654Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T04:57:39.654Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-12&view_all=true", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T04:57:39.654Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T04:57:39.655Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-13&view_all=true", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T04:57:39.656Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T04:57:39.656Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-10&view_all=true", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T04:57:39.656Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T04:57:39.656Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-14&view_all=true", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T04:57:39.771Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-15", - "requester": 1, - "isAdmin": false -} -[2026-01-20T04:57:39.775Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T04:57:39.775Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-15&view_all=true", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T04:57:39.777Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-16", - "requester": 1, - "isAdmin": false -} -[2026-01-20T04:57:39.779Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-17", - "requester": 1, - "isAdmin": false -} -[2026-01-20T04:57:39.779Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-18", - "requester": 1, - "isAdmin": false -} -[2026-01-20T04:57:39.780Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T04:57:39.780Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-16&view_all=true", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T04:57:39.781Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-19", - "requester": 1, - "isAdmin": false -} -[2026-01-20T04:57:39.781Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T04:57:39.781Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-17&view_all=true", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T04:57:39.782Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 1 -} -[2026-01-20T04:57:39.782Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-18&view_all=true", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T04:57:39.782Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T04:57:39.783Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-19&view_all=true", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T04:57:39.903Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-21", - "requester": 1, - "isAdmin": false -} -[2026-01-20T04:57:39.905Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-20", - "requester": 1, - "isAdmin": false -} -[2026-01-20T04:57:39.905Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-23", - "requester": 1, - "isAdmin": false -} -[2026-01-20T04:57:39.906Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-22", - "requester": 1, - "isAdmin": false -} -[2026-01-20T04:57:39.907Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T04:57:39.907Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-21&view_all=true", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T04:57:39.907Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 1 -} -[2026-01-20T04:57:39.908Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-20&view_all=true", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T04:57:39.909Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-24", - "requester": 1, - "isAdmin": false -} -[2026-01-20T04:57:39.909Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T04:57:39.910Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-23&view_all=true", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T04:57:39.910Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T04:57:39.911Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-22&view_all=true", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T04:57:39.912Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T04:57:39.913Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-24&view_all=true", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T04:57:40.026Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-25", - "requester": 1, - "isAdmin": false -} -[2026-01-20T04:57:40.031Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T04:57:40.032Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-25&view_all=true", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T04:57:40.034Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-26", - "requester": 1, - "isAdmin": false -} -[2026-01-20T04:57:40.035Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-27", - "requester": 1, - "isAdmin": false -} -[2026-01-20T04:57:40.036Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-28", - "requester": 1, - "isAdmin": false -} -[2026-01-20T04:57:40.036Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-29", - "requester": 1, - "isAdmin": false -} -[2026-01-20T04:57:40.037Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T04:57:40.037Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-26&view_all=true", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T04:57:40.037Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T04:57:40.038Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-27&view_all=true", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T04:57:40.038Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T04:57:40.038Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-28&view_all=true", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T04:57:40.038Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T04:57:40.039Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-29&view_all=true", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T04:57:40.149Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-30", - "requester": 1, - "isAdmin": false -} -[2026-01-20T04:57:40.152Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T04:57:40.153Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-30&view_all=true", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T04:57:40.377Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T04:57:40.541Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T04:57:43.627Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-20", - "requester": 1, - "isAdmin": false -} -[2026-01-20T04:57:43.630Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 1 -} -[2026-01-20T04:57:43.631Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-20&view_all=true", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T04:57:43.633Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T04:57:44.626Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T04:58:10.606Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T04:58:40.702Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T04:59:07.999Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T04:59:08.030Z] [INFO] ℹ️ 월별 캘린더 데이터 조회 요청 - Context: { - "year": 2026, - "month": 1 -} -[2026-01-20T04:59:08.034Z] [ERROR] ❌ 월별 캘린더 데이터 조회 실패 - Context: { - "year": 2026, - "month": 1, - "error": "Table 'hyungi.monthly_summary' doesn't exist" -} -[2026-01-20T04:59:08.035Z] [ERROR] ❌ 월별 캘린더 데이터 조회 중 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 월별 캘린더 데이터 조회 중 오류가 발생했습니다\n at /usr/src/app/controllers/monthlyStatusController.js:80:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "url": "/api/monthly-status/calendar?year=2026&month=1", - "method": "GET", - "user": "anonymous" -} -[2026-01-20T04:59:08.037Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/monthly-status/calendar?year=2026&month=1", - "statusCode": 500, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T04:59:08.041Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-01", - "requester": 1, - "isAdmin": false -} -[2026-01-20T04:59:08.043Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T04:59:08.043Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-01&view_all=true", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T04:59:08.044Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-02", - "requester": 1, - "isAdmin": false -} -[2026-01-20T04:59:08.045Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2025-12-31", - "requester": 1, - "isAdmin": false -} -[2026-01-20T04:59:08.046Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-03", - "requester": 1, - "isAdmin": false -} -[2026-01-20T04:59:08.047Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-04", - "requester": 1, - "isAdmin": false -} -[2026-01-20T04:59:08.047Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T04:59:08.048Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-02&view_all=true", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T04:59:08.048Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T04:59:08.048Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-12-31&view_all=true", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T04:59:08.049Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T04:59:08.049Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-03&view_all=true", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T04:59:08.049Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T04:59:08.050Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-04&view_all=true", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T04:59:08.157Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-07", - "requester": 1, - "isAdmin": false -} -[2026-01-20T04:59:08.160Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-05", - "requester": 1, - "isAdmin": false -} -[2026-01-20T04:59:08.162Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-06", - "requester": 1, - "isAdmin": false -} -[2026-01-20T04:59:08.165Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-08", - "requester": 1, - "isAdmin": false -} -[2026-01-20T04:59:08.167Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-09", - "requester": 1, - "isAdmin": false -} -[2026-01-20T04:59:08.168Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T04:59:08.169Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-07&view_all=true", - "statusCode": 304, - "duration": "13ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T04:59:08.170Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T04:59:08.171Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-05&view_all=true", - "statusCode": 304, - "duration": "12ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T04:59:08.172Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T04:59:08.172Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-06&view_all=true", - "statusCode": 304, - "duration": "11ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T04:59:08.173Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T04:59:08.173Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-08&view_all=true", - "statusCode": 304, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T04:59:08.173Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T04:59:08.174Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-09&view_all=true", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T04:59:08.281Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-10", - "requester": 1, - "isAdmin": false -} -[2026-01-20T04:59:08.283Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-11", - "requester": 1, - "isAdmin": false -} -[2026-01-20T04:59:08.286Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-12", - "requester": 1, - "isAdmin": false -} -[2026-01-20T04:59:08.289Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-13", - "requester": 1, - "isAdmin": false -} -[2026-01-20T04:59:08.291Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-14", - "requester": 1, - "isAdmin": false -} -[2026-01-20T04:59:08.293Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T04:59:08.294Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-10&view_all=true", - "statusCode": 304, - "duration": "15ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T04:59:08.295Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T04:59:08.296Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-11&view_all=true", - "statusCode": 304, - "duration": "14ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T04:59:08.297Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T04:59:08.297Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-12&view_all=true", - "statusCode": 304, - "duration": "13ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T04:59:08.298Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T04:59:08.298Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-13&view_all=true", - "statusCode": 304, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T04:59:08.298Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T04:59:08.299Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-14&view_all=true", - "statusCode": 304, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T04:59:08.410Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-16", - "requester": 1, - "isAdmin": false -} -[2026-01-20T04:59:08.414Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-15", - "requester": 1, - "isAdmin": false -} -[2026-01-20T04:59:08.416Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-17", - "requester": 1, - "isAdmin": false -} -[2026-01-20T04:59:08.419Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-18", - "requester": 1, - "isAdmin": false -} -[2026-01-20T04:59:08.420Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-19", - "requester": 1, - "isAdmin": false -} -[2026-01-20T04:59:08.422Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T04:59:08.423Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-16&view_all=true", - "statusCode": 304, - "duration": "15ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T04:59:08.424Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T04:59:08.424Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-15&view_all=true", - "statusCode": 304, - "duration": "12ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T04:59:08.425Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T04:59:08.426Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-17&view_all=true", - "statusCode": 304, - "duration": "11ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T04:59:08.427Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 1 -} -[2026-01-20T04:59:08.428Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-18&view_all=true", - "statusCode": 304, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T04:59:08.428Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T04:59:08.429Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-19&view_all=true", - "statusCode": 304, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T04:59:08.540Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-22", - "requester": 1, - "isAdmin": false -} -[2026-01-20T04:59:08.543Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-21", - "requester": 1, - "isAdmin": false -} -[2026-01-20T04:59:08.547Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T04:59:08.548Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-22&view_all=true", - "statusCode": 304, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T04:59:08.551Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T04:59:08.552Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-21&view_all=true", - "statusCode": 304, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T04:59:08.555Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-23", - "requester": 1, - "isAdmin": false -} -[2026-01-20T04:59:08.556Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-20", - "requester": 1, - "isAdmin": false -} -[2026-01-20T04:59:08.558Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-24", - "requester": 1, - "isAdmin": false -} -[2026-01-20T04:59:08.558Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T04:59:08.559Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-23&view_all=true", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T04:59:08.560Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 1 -} -[2026-01-20T04:59:08.560Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-20&view_all=true", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T04:59:08.561Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T04:59:08.561Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-24&view_all=true", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T04:59:08.675Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-25", - "requester": 1, - "isAdmin": false -} -[2026-01-20T04:59:08.679Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-26", - "requester": 1, - "isAdmin": false -} -[2026-01-20T04:59:08.683Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T04:59:08.684Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-25&view_all=true", - "statusCode": 304, - "duration": "11ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T04:59:08.686Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T04:59:08.687Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-26&view_all=true", - "statusCode": 304, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T04:59:08.689Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-27", - "requester": 1, - "isAdmin": false -} -[2026-01-20T04:59:08.691Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-28", - "requester": 1, - "isAdmin": false -} -[2026-01-20T04:59:08.692Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-29", - "requester": 1, - "isAdmin": false -} -[2026-01-20T04:59:08.693Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T04:59:08.693Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-27&view_all=true", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T04:59:08.694Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T04:59:08.695Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-28&view_all=true", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T04:59:08.695Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T04:59:08.696Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-29&view_all=true", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T04:59:08.806Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-30", - "requester": 1, - "isAdmin": false -} -[2026-01-20T04:59:08.809Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T04:59:08.811Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-30&view_all=true", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T04:59:08.995Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T04:59:10.794Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T04:59:12.664Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T04:59:13.650Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T04:59:13.659Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T04:59:20.083Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T04:59:20.139Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T04:59:20.179Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/tasks", - "method": "GET" -} -[2026-01-20T04:59:20.182Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/tasks", - "statusCode": 404, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T04:59:21.066Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T04:59:35.322Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T04:59:36.285Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T04:59:40.885Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T05:00:10.979Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T05:00:41.067Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T05:01:11.163Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T05:01:41.252Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T05:02:11.339Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T05:02:41.424Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T05:03:11.516Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T05:03:41.608Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T05:04:11.698Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T05:04:41.790Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T05:05:05.685Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:05:05.697Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:05:05.704Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/tasks", - "method": "GET" -} -[2026-01-20T05:05:05.704Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/tasks", - "statusCode": 404, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:05:06.683Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:05:10.830Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:05:10.840Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:05:10.843Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/tasks", - "method": "GET" -} -[2026-01-20T05:05:10.844Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/tasks", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:05:11.684Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:05:11.689Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-20", - "requester": 1, - "isAdmin": false -} -[2026-01-20T05:05:11.691Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 1 -} -[2026-01-20T05:05:11.692Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-20&view_all=true", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:05:11.870Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T05:05:12.681Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:05:13.745Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:05:13.756Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:05:13.765Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:05:13.772Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:05:13.778Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:05:13.786Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-20", - "created_by_user_id": 1, - "requester": 1, - "isAdmin": false -} -[2026-01-20T05:05:13.787Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 1 -} -[2026-01-20T05:05:13.788Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-20&created_by=1", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:05:14.716Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:05:15.953Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:05:15.966Z] [INFO] ℹ️ 월별 캘린더 데이터 조회 요청 - Context: { - "year": 2026, - "month": 1 -} -[2026-01-20T05:05:15.969Z] [ERROR] ❌ 월별 캘린더 데이터 조회 실패 - Context: { - "year": 2026, - "month": 1, - "error": "Table 'hyungi.monthly_summary' doesn't exist" -} -[2026-01-20T05:05:15.970Z] [ERROR] ❌ 월별 캘린더 데이터 조회 중 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 월별 캘린더 데이터 조회 중 오류가 발생했습니다\n at /usr/src/app/controllers/monthlyStatusController.js:80:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "url": "/api/monthly-status/calendar?year=2026&month=1", - "method": "GET", - "user": "anonymous" -} -[2026-01-20T05:05:15.973Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/monthly-status/calendar?year=2026&month=1", - "statusCode": 500, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:05:15.994Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2025-12-31", - "requester": 1, - "isAdmin": false -} -[2026-01-20T05:05:15.998Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T05:05:15.999Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-12-31&view_all=true", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:05:16.000Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-01", - "requester": 1, - "isAdmin": false -} -[2026-01-20T05:05:16.002Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-02", - "requester": 1, - "isAdmin": false -} -[2026-01-20T05:05:16.003Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-03", - "requester": 1, - "isAdmin": false -} -[2026-01-20T05:05:16.003Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-04", - "requester": 1, - "isAdmin": false -} -[2026-01-20T05:05:16.005Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T05:05:16.005Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-01&view_all=true", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:05:16.005Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T05:05:16.006Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-02&view_all=true", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:05:16.007Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T05:05:16.007Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-03&view_all=true", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:05:16.008Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T05:05:16.008Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-04&view_all=true", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:05:16.122Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-05", - "requester": 1, - "isAdmin": false -} -[2026-01-20T05:05:16.125Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-07", - "requester": 1, - "isAdmin": false -} -[2026-01-20T05:05:16.127Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-08", - "requester": 1, - "isAdmin": false -} -[2026-01-20T05:05:16.129Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-06", - "requester": 1, - "isAdmin": false -} -[2026-01-20T05:05:16.130Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T05:05:16.131Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-05&view_all=true", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:05:16.131Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T05:05:16.132Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-07&view_all=true", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:05:16.132Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T05:05:16.133Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-08&view_all=true", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:05:16.133Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T05:05:16.133Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-06&view_all=true", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:05:16.134Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-09", - "requester": 1, - "isAdmin": false -} -[2026-01-20T05:05:16.135Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T05:05:16.136Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-09&view_all=true", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:05:16.253Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-10", - "requester": 1, - "isAdmin": false -} -[2026-01-20T05:05:16.256Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-12", - "requester": 1, - "isAdmin": false -} -[2026-01-20T05:05:16.259Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-13", - "requester": 1, - "isAdmin": false -} -[2026-01-20T05:05:16.261Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-11", - "requester": 1, - "isAdmin": false -} -[2026-01-20T05:05:16.262Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T05:05:16.262Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-10&view_all=true", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:05:16.263Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T05:05:16.263Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-12&view_all=true", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:05:16.265Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-14", - "requester": 1, - "isAdmin": false -} -[2026-01-20T05:05:16.265Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T05:05:16.266Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-13&view_all=true", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:05:16.267Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T05:05:16.267Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-11&view_all=true", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:05:16.268Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T05:05:16.269Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-14&view_all=true", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:05:16.385Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-16", - "requester": 1, - "isAdmin": false -} -[2026-01-20T05:05:16.389Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-17", - "requester": 1, - "isAdmin": false -} -[2026-01-20T05:05:16.391Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-15", - "requester": 1, - "isAdmin": false -} -[2026-01-20T05:05:16.393Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-18", - "requester": 1, - "isAdmin": false -} -[2026-01-20T05:05:16.397Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-19", - "requester": 1, - "isAdmin": false -} -[2026-01-20T05:05:16.397Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T05:05:16.398Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-16&view_all=true", - "statusCode": 200, - "duration": "14ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:05:16.400Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T05:05:16.401Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-17&view_all=true", - "statusCode": 200, - "duration": "14ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:05:16.402Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T05:05:16.403Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-15&view_all=true", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:05:16.403Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 1 -} -[2026-01-20T05:05:16.404Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-18&view_all=true", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:05:16.405Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T05:05:16.405Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-19&view_all=true", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:05:16.519Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-20", - "requester": 1, - "isAdmin": false -} -[2026-01-20T05:05:16.524Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 1 -} -[2026-01-20T05:05:16.526Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-20&view_all=true", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:05:16.528Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-21", - "requester": 1, - "isAdmin": false -} -[2026-01-20T05:05:16.531Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-22", - "requester": 1, - "isAdmin": false -} -[2026-01-20T05:05:16.533Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-23", - "requester": 1, - "isAdmin": false -} -[2026-01-20T05:05:16.534Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-24", - "requester": 1, - "isAdmin": false -} -[2026-01-20T05:05:16.536Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T05:05:16.536Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-21&view_all=true", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:05:16.537Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T05:05:16.538Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-22&view_all=true", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:05:16.539Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T05:05:16.539Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-23&view_all=true", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:05:16.540Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T05:05:16.540Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-24&view_all=true", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:05:16.658Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-25", - "requester": 1, - "isAdmin": false -} -[2026-01-20T05:05:16.661Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-26", - "requester": 1, - "isAdmin": false -} -[2026-01-20T05:05:16.665Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-27", - "requester": 1, - "isAdmin": false -} -[2026-01-20T05:05:16.667Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-28", - "requester": 1, - "isAdmin": false -} -[2026-01-20T05:05:16.668Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-29", - "requester": 1, - "isAdmin": false -} -[2026-01-20T05:05:16.669Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T05:05:16.670Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-25&view_all=true", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:05:16.670Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T05:05:16.671Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-26&view_all=true", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:05:16.672Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T05:05:16.672Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-27&view_all=true", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:05:16.673Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T05:05:16.673Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-28&view_all=true", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:05:16.674Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T05:05:16.674Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-29&view_all=true", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:05:16.788Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-30", - "requester": 1, - "isAdmin": false -} -[2026-01-20T05:05:16.792Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T05:05:16.794Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-30&view_all=true", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:05:16.954Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:05:31.468Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:05:31.470Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-20", - "requester": 1, - "isAdmin": false -} -[2026-01-20T05:05:31.472Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 1 -} -[2026-01-20T05:05:31.473Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-20&view_all=true", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:05:32.468Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:05:33.075Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:05:34.062Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:05:34.069Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:05:37.584Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-20", - "requester": 1, - "isAdmin": false -} -[2026-01-20T05:05:37.587Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:05:37.589Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 1 -} -[2026-01-20T05:05:37.590Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-20&view_all=true", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:05:38.404Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:05:38.412Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:05:38.420Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/tasks", - "method": "GET" -} -[2026-01-20T05:05:38.421Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/tasks", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:05:39.396Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:05:40.356Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:05:41.344Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:05:41.966Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T05:05:42.368Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-20", - "requester": 1, - "isAdmin": false -} -[2026-01-20T05:05:42.372Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:05:42.373Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 1 -} -[2026-01-20T05:05:42.375Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-20&view_all=true", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:05:43.370Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:06:12.054Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T05:06:42.126Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T05:07:12.208Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T05:07:40.604Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-20", - "requester": 1, - "isAdmin": false -} -[2026-01-20T05:07:40.607Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 1 -} -[2026-01-20T05:07:40.609Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-20&view_all=true", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:07:40.610Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:07:41.602Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:07:42.044Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:07:42.075Z] [INFO] ℹ️ 월별 캘린더 데이터 조회 요청 - Context: { - "year": 2026, - "month": 1 -} -[2026-01-20T05:07:42.078Z] [ERROR] ❌ 월별 캘린더 데이터 조회 실패 - Context: { - "year": 2026, - "month": 1, - "error": "Table 'hyungi.monthly_summary' doesn't exist" -} -[2026-01-20T05:07:42.080Z] [ERROR] ❌ 월별 캘린더 데이터 조회 중 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 월별 캘린더 데이터 조회 중 오류가 발생했습니다\n at /usr/src/app/controllers/monthlyStatusController.js:80:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "url": "/api/monthly-status/calendar?year=2026&month=1", - "method": "GET", - "user": "anonymous" -} -[2026-01-20T05:07:42.081Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/monthly-status/calendar?year=2026&month=1", - "statusCode": 500, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:07:42.090Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2025-12-31", - "requester": 1, - "isAdmin": false -} -[2026-01-20T05:07:42.094Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-01", - "requester": 1, - "isAdmin": false -} -[2026-01-20T05:07:42.095Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T05:07:42.095Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-12-31&view_all=true", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:07:42.096Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T05:07:42.097Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-01&view_all=true", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:07:42.097Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-02", - "requester": 1, - "isAdmin": false -} -[2026-01-20T05:07:42.098Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-03", - "requester": 1, - "isAdmin": false -} -[2026-01-20T05:07:42.099Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-04", - "requester": 1, - "isAdmin": false -} -[2026-01-20T05:07:42.099Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T05:07:42.100Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-02&view_all=true", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:07:42.100Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T05:07:42.101Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-03&view_all=true", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:07:42.102Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T05:07:42.102Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-04&view_all=true", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:07:42.217Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-07", - "requester": 1, - "isAdmin": false -} -[2026-01-20T05:07:42.221Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-05", - "requester": 1, - "isAdmin": false -} -[2026-01-20T05:07:42.223Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-06", - "requester": 1, - "isAdmin": false -} -[2026-01-20T05:07:42.227Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-08", - "requester": 1, - "isAdmin": false -} -[2026-01-20T05:07:42.229Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-09", - "requester": 1, - "isAdmin": false -} -[2026-01-20T05:07:42.230Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T05:07:42.230Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-07&view_all=true", - "statusCode": 200, - "duration": "16ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:07:42.231Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T05:07:42.232Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-05&view_all=true", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:07:42.232Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T05:07:42.232Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-06&view_all=true", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:07:42.233Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T05:07:42.233Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-08&view_all=true", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:07:42.233Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T05:07:42.234Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-09&view_all=true", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:07:42.288Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T05:07:42.341Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-10", - "requester": 1, - "isAdmin": false -} -[2026-01-20T05:07:42.342Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-11", - "requester": 1, - "isAdmin": false -} -[2026-01-20T05:07:42.343Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-12", - "requester": 1, - "isAdmin": false -} -[2026-01-20T05:07:42.343Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T05:07:42.344Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-10&view_all=true", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:07:42.344Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T05:07:42.345Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-11&view_all=true", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:07:42.345Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-13", - "requester": 1, - "isAdmin": false -} -[2026-01-20T05:07:42.346Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-14", - "requester": 1, - "isAdmin": false -} -[2026-01-20T05:07:42.346Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T05:07:42.347Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-12&view_all=true", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:07:42.347Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T05:07:42.347Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-13&view_all=true", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:07:42.348Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T05:07:42.349Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-14&view_all=true", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:07:42.460Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-15", - "requester": 1, - "isAdmin": false -} -[2026-01-20T05:07:42.463Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-16", - "requester": 1, - "isAdmin": false -} -[2026-01-20T05:07:42.465Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-17", - "requester": 1, - "isAdmin": false -} -[2026-01-20T05:07:42.466Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T05:07:42.467Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-15&view_all=true", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:07:42.469Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-18", - "requester": 1, - "isAdmin": false -} -[2026-01-20T05:07:42.470Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-19", - "requester": 1, - "isAdmin": false -} -[2026-01-20T05:07:42.471Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T05:07:42.471Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-16&view_all=true", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:07:42.472Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T05:07:42.472Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-17&view_all=true", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:07:42.473Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 1 -} -[2026-01-20T05:07:42.474Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-18&view_all=true", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:07:42.474Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T05:07:42.475Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-19&view_all=true", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:07:42.583Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-20", - "requester": 1, - "isAdmin": false -} -[2026-01-20T05:07:42.584Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 1 -} -[2026-01-20T05:07:42.584Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-20&view_all=true", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:07:42.588Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-21", - "requester": 1, - "isAdmin": false -} -[2026-01-20T05:07:42.589Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T05:07:42.589Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-21&view_all=true", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:07:42.590Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-22", - "requester": 1, - "isAdmin": false -} -[2026-01-20T05:07:42.590Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T05:07:42.590Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-22&view_all=true", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:07:42.591Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-23", - "requester": 1, - "isAdmin": false -} -[2026-01-20T05:07:42.591Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T05:07:42.592Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-23&view_all=true", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:07:42.592Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-24", - "requester": 1, - "isAdmin": false -} -[2026-01-20T05:07:42.593Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T05:07:42.593Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-24&view_all=true", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:07:42.702Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-25", - "requester": 1, - "isAdmin": false -} -[2026-01-20T05:07:42.703Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-26", - "requester": 1, - "isAdmin": false -} -[2026-01-20T05:07:42.704Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T05:07:42.704Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-25&view_all=true", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:07:42.705Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T05:07:42.705Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-26&view_all=true", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:07:42.707Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-27", - "requester": 1, - "isAdmin": false -} -[2026-01-20T05:07:42.708Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-28", - "requester": 1, - "isAdmin": false -} -[2026-01-20T05:07:42.708Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-29", - "requester": 1, - "isAdmin": false -} -[2026-01-20T05:07:42.709Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T05:07:42.709Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-27&view_all=true", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:07:42.709Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T05:07:42.710Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-28&view_all=true", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:07:42.710Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T05:07:42.710Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-29&view_all=true", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:07:42.820Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-30", - "requester": 1, - "isAdmin": false -} -[2026-01-20T05:07:42.821Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T05:07:42.822Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-30&view_all=true", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:07:43.041Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:07:43.972Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-20", - "requester": 1, - "isAdmin": false -} -[2026-01-20T05:07:43.975Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:07:43.976Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 1 -} -[2026-01-20T05:07:43.978Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-20&view_all=true", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:07:45.003Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:07:45.989Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:07:45.995Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:07:46.634Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-20", - "requester": 1, - "isAdmin": false -} -[2026-01-20T05:07:46.637Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 1 -} -[2026-01-20T05:07:46.638Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-20&view_all=true", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:07:46.639Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 304, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:07:47.280Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:07:47.292Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:07:47.315Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/tasks", - "method": "GET" -} -[2026-01-20T05:07:47.318Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/tasks", - "statusCode": 404, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:07:48.257Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:07:48.925Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:07:48.931Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:07:48.932Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:07:49.565Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-20", - "requester": 1, - "isAdmin": false -} -[2026-01-20T05:07:49.568Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:07:49.569Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 1 -} -[2026-01-20T05:07:49.571Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-20&view_all=true", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:07:50.566Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:08:12.377Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T05:08:42.463Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T05:09:12.550Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T05:09:42.633Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T05:10:12.688Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T05:10:42.744Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T05:11:12.801Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T05:11:42.867Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T05:12:12.929Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T05:12:43.001Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T05:13:13.084Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T05:13:43.188Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T05:14:13.252Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T05:14:43.318Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T05:15:13.395Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T05:15:43.458Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T05:16:13.536Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T05:16:43.606Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T05:17:13.682Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T05:17:43.763Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T05:18:13.831Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T05:18:43.891Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T05:19:13.953Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T05:19:44.029Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T05:20:14.105Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T05:20:44.174Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T05:21:14.237Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T05:21:44.298Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T05:22:14.360Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T05:22:44.433Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T05:23:14.510Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T05:23:44.581Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T05:24:14.656Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T05:24:44.723Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T05:25:14.798Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T05:25:44.843Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T05:26:14.905Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T05:26:44.961Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T05:27:15.002Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T05:27:45.059Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T05:28:15.101Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T05:28:45.167Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T05:29:15.212Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T05:29:45.252Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T05:30:15.304Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T05:30:45.349Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T05:31:15.396Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T05:31:45.435Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T05:32:15.479Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T05:32:45.529Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T05:33:15.581Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T05:33:45.633Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T05:34:15.685Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T05:34:45.737Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T05:35:15.791Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T05:35:45.838Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T05:36:15.892Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T05:36:45.943Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T05:37:16.000Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T05:37:46.053Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T05:38:16.111Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T05:38:46.178Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T05:39:16.264Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T05:39:46.335Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T05:40:16.398Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T05:40:46.473Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T05:41:16.540Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T05:41:46.609Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T05:42:16.693Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T05:42:46.784Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T05:43:16.877Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T05:43:46.962Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T05:44:17.050Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T05:44:47.132Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T05:45:17.222Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T05:45:47.312Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T05:46:17.396Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T05:46:47.480Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T05:47:17.572Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T05:47:47.651Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T05:48:17.734Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T05:48:47.819Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T05:49:17.905Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T05:49:47.991Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T05:50:18.077Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T05:50:48.170Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T05:51:18.258Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T05:51:48.337Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T05:52:18.436Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T05:52:48.528Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T05:53:18.620Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T05:53:48.713Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T05:54:08.925Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-20", - "requester": 1, - "isAdmin": false -} -[2026-01-20T05:54:08.929Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 1 -} -[2026-01-20T05:54:08.930Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-20&view_all=true", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:54:08.935Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "17ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:54:09.917Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:54:18.804Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T05:54:48.895Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T05:55:18.997Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T05:55:21.450Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:55:21.461Z] [INFO] ℹ️ 월별 캘린더 데이터 조회 요청 - Context: { - "year": 2026, - "month": 1 -} -[2026-01-20T05:55:21.464Z] [ERROR] ❌ 월별 캘린더 데이터 조회 실패 - Context: { - "year": 2026, - "month": 1, - "error": "Table 'hyungi.monthly_summary' doesn't exist" -} -[2026-01-20T05:55:21.466Z] [ERROR] ❌ 월별 캘린더 데이터 조회 중 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 월별 캘린더 데이터 조회 중 오류가 발생했습니다\n at /usr/src/app/controllers/monthlyStatusController.js:80:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "url": "/api/monthly-status/calendar?year=2026&month=1", - "method": "GET", - "user": "anonymous" -} -[2026-01-20T05:55:21.467Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/monthly-status/calendar?year=2026&month=1", - "statusCode": 500, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:55:21.479Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2025-12-31", - "requester": 1, - "isAdmin": false -} -[2026-01-20T05:55:21.481Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-01", - "requester": 1, - "isAdmin": false -} -[2026-01-20T05:55:21.482Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-02", - "requester": 1, - "isAdmin": false -} -[2026-01-20T05:55:21.483Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-03", - "requester": 1, - "isAdmin": false -} -[2026-01-20T05:55:21.484Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-04", - "requester": 1, - "isAdmin": false -} -[2026-01-20T05:55:21.485Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T05:55:21.485Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-12-31&view_all=true", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:55:21.485Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T05:55:21.486Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-01&view_all=true", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:55:21.486Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T05:55:21.487Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-02&view_all=true", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:55:21.487Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T05:55:21.488Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-03&view_all=true", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:55:21.488Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T05:55:21.489Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-04&view_all=true", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:55:21.603Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-07", - "requester": 1, - "isAdmin": false -} -[2026-01-20T05:55:21.605Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-05", - "requester": 1, - "isAdmin": false -} -[2026-01-20T05:55:21.608Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-06", - "requester": 1, - "isAdmin": false -} -[2026-01-20T05:55:21.610Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-08", - "requester": 1, - "isAdmin": false -} -[2026-01-20T05:55:21.612Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-09", - "requester": 1, - "isAdmin": false -} -[2026-01-20T05:55:21.614Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T05:55:21.615Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-07&view_all=true", - "statusCode": 200, - "duration": "14ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:55:21.615Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T05:55:21.617Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-05&view_all=true", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:55:21.618Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T05:55:21.618Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-06&view_all=true", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:55:21.619Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T05:55:21.619Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-08&view_all=true", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:55:21.620Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T05:55:21.621Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-09&view_all=true", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:55:21.735Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-11", - "requester": 1, - "isAdmin": false -} -[2026-01-20T05:55:21.737Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-12", - "requester": 1, - "isAdmin": false -} -[2026-01-20T05:55:21.739Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-13", - "requester": 1, - "isAdmin": false -} -[2026-01-20T05:55:21.741Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-10", - "requester": 1, - "isAdmin": false -} -[2026-01-20T05:55:21.743Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T05:55:21.743Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-11&view_all=true", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:55:21.744Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T05:55:21.745Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-12&view_all=true", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:55:21.745Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T05:55:21.746Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-13&view_all=true", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:55:21.746Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T05:55:21.747Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-10&view_all=true", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:55:21.748Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-14", - "requester": 1, - "isAdmin": false -} -[2026-01-20T05:55:21.750Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T05:55:21.751Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-14&view_all=true", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:55:21.866Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-16", - "requester": 1, - "isAdmin": false -} -[2026-01-20T05:55:21.869Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-17", - "requester": 1, - "isAdmin": false -} -[2026-01-20T05:55:21.872Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-18", - "requester": 1, - "isAdmin": false -} -[2026-01-20T05:55:21.873Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-15", - "requester": 1, - "isAdmin": false -} -[2026-01-20T05:55:21.877Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-19", - "requester": 1, - "isAdmin": false -} -[2026-01-20T05:55:21.881Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T05:55:21.882Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-16&view_all=true", - "statusCode": 200, - "duration": "17ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:55:21.884Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T05:55:21.886Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-17&view_all=true", - "statusCode": 200, - "duration": "18ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:55:21.887Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 1 -} -[2026-01-20T05:55:21.889Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-18&view_all=true", - "statusCode": 200, - "duration": "18ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:55:21.890Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T05:55:21.891Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-15&view_all=true", - "statusCode": 200, - "duration": "19ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:55:21.896Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T05:55:21.897Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-19&view_all=true", - "statusCode": 200, - "duration": "22ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:55:22.010Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-20", - "requester": 1, - "isAdmin": false -} -[2026-01-20T05:55:22.012Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-22", - "requester": 1, - "isAdmin": false -} -[2026-01-20T05:55:22.014Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-21", - "requester": 1, - "isAdmin": false -} -[2026-01-20T05:55:22.016Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 1 -} -[2026-01-20T05:55:22.017Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-20&view_all=true", - "statusCode": 304, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:55:22.019Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-23", - "requester": 1, - "isAdmin": false -} -[2026-01-20T05:55:22.021Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-24", - "requester": 1, - "isAdmin": false -} -[2026-01-20T05:55:22.021Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T05:55:22.022Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-22&view_all=true", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:55:22.022Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T05:55:22.023Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-21&view_all=true", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:55:22.024Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T05:55:22.026Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-23&view_all=true", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:55:22.027Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T05:55:22.027Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-24&view_all=true", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:55:22.146Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-25", - "requester": 1, - "isAdmin": false -} -[2026-01-20T05:55:22.152Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T05:55:22.153Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-25&view_all=true", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:55:22.155Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-26", - "requester": 1, - "isAdmin": false -} -[2026-01-20T05:55:22.156Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-27", - "requester": 1, - "isAdmin": false -} -[2026-01-20T05:55:22.157Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-28", - "requester": 1, - "isAdmin": false -} -[2026-01-20T05:55:22.158Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T05:55:22.159Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-26&view_all=true", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:55:22.160Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-29", - "requester": 1, - "isAdmin": false -} -[2026-01-20T05:55:22.161Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T05:55:22.161Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-27&view_all=true", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:55:22.162Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T05:55:22.162Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-28&view_all=true", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:55:22.163Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T05:55:22.164Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-29&view_all=true", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:55:22.279Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-30", - "requester": 1, - "isAdmin": false -} -[2026-01-20T05:55:22.282Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-20T05:55:22.284Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-30&view_all=true", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:55:22.442Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:55:27.121Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-20", - "requester": 1, - "isAdmin": false -} -[2026-01-20T05:55:27.125Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:55:27.127Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 1 -} -[2026-01-20T05:55:27.129Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-20&view_all=true", - "statusCode": 304, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:55:28.496Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:55:29.475Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:55:29.488Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:55:33.892Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-20", - "requester": 1, - "isAdmin": false -} -[2026-01-20T05:55:33.895Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:55:33.896Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 1 -} -[2026-01-20T05:55:33.898Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-20&view_all=true", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:55:34.890Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:55:49.091Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T05:56:19.185Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T05:56:49.267Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T05:57:19.344Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T05:57:40.837Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-20", - "requester": 1, - "isAdmin": false -} -[2026-01-20T05:57:40.839Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:57:40.840Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 1 -} -[2026-01-20T05:57:40.841Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-20&view_all=true", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:57:41.831Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:57:49.436Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T05:58:19.532Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T05:58:38.128Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:58:38.144Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:58:38.149Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/tasks", - "method": "GET" -} -[2026-01-20T05:58:38.151Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/tasks", - "statusCode": 404, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:58:39.125Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:58:39.778Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:58:40.732Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:58:49.623Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T05:59:19.705Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T05:59:49.801Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T06:00:19.888Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T06:00:49.981Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T06:01:20.070Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T06:01:50.154Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T06:02:20.250Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T06:02:50.342Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T06:03:20.434Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T06:03:50.522Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T06:04:20.621Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T06:04:50.713Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T06:05:20.780Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T06:05:50.864Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T06:06:20.951Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T06:06:51.027Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T06:07:21.101Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T06:07:51.170Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T06:08:21.240Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T06:08:51.329Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T06:09:21.400Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T06:09:51.472Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T06:10:21.558Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T06:10:51.638Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T06:11:21.733Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T06:11:51.821Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T06:12:21.912Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T06:12:52.014Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T06:13:22.104Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T06:13:52.196Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T06:14:22.277Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T06:14:52.371Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T06:15:22.459Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T06:15:52.552Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T06:16:22.640Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T06:16:52.727Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T06:17:22.797Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T06:17:52.894Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T06:18:14.048Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T06:18:15.039Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T06:18:17.808Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-20", - "requester": 1, - "isAdmin": false -} -[2026-01-20T06:18:17.812Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 1 -} -[2026-01-20T06:18:17.814Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-20&view_all=true", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T06:18:17.817Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T06:18:18.804Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T06:18:22.986Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T06:18:53.075Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T06:19:23.166Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T06:19:36.284Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 200, - "duration": "86ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-01-20T06:19:53.263Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T06:20:23.337Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T06:20:49.987Z] [WARN] ⚠️ 인증 실패: Bearer 토큰 누락 - Context: { - "path": "/", - "method": "GET", - "ip": "::ffff:192.168.65.1" -} -[2026-01-20T06:20:49.988Z] [WARN] ⚠️ Bearer 토큰이 필요합니다 - Context: { - "code": "AUTHENTICATION_ERROR", - "url": "/api/pages", - "method": "GET", - "user": "anonymous" -} -[2026-01-20T06:20:49.989Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/pages", - "statusCode": 401, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-01-20T06:20:53.432Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T06:21:23.527Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T06:21:53.621Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T06:22:20.049Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-20", - "requester": 1, - "isAdmin": false -} -[2026-01-20T06:22:20.051Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T06:22:20.052Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 1 -} -[2026-01-20T06:22:20.053Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-20&view_all=true", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T06:22:21.047Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T06:22:23.714Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T06:22:24.656Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T06:22:28.302Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 200, - "duration": "92ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T06:22:28.648Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T06:22:28.650Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-20", - "requester": 1, - "isAdmin": false -} -[2026-01-20T06:22:28.652Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 1 -} -[2026-01-20T06:22:28.654Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-20&view_all=true", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T06:22:29.644Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T06:22:53.798Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T06:23:23.880Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T06:23:53.976Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T06:24:24.061Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T06:24:54.156Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T06:25:24.249Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T06:25:54.340Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T06:26:24.438Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T06:26:39.093Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-20", - "requester": 1, - "isAdmin": false -} -[2026-01-20T06:26:39.094Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 1 -} -[2026-01-20T06:26:39.094Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-20&view_all=true", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T06:26:39.097Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T06:26:40.092Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T06:26:42.078Z] [INFO] ℹ️ 사용자 목록 조회 요청 - Context: { - "requestedBy": "hyungi" -} -[2026-01-20T06:26:42.082Z] [INFO] ℹ️ 사용자 목록 조회 성공 - Context: { - "count": 16 -} -[2026-01-20T06:26:42.085Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T06:26:43.081Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T06:26:54.498Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T06:27:24.551Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T06:27:54.621Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T06:28:24.699Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T06:28:54.749Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T06:29:24.802Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T06:29:54.862Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T06:30:24.932Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T06:30:55.015Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T06:31:25.108Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T06:31:55.181Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T06:32:25.266Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T06:32:55.339Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T06:33:25.431Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T06:33:55.511Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T06:34:25.596Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T06:34:55.689Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T06:35:25.769Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T06:35:55.881Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T06:36:25.967Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T06:36:56.047Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T06:37:26.136Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T06:37:56.222Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T06:38:26.292Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T06:38:56.395Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T06:39:26.486Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T06:39:56.571Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T06:40:26.659Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T06:40:56.749Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T06:41:26.842Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T06:41:56.928Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T06:42:26.996Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T06:42:28.670Z] [INFO] ℹ️ 사용자 목록 조회 요청 - Context: { - "requestedBy": "hyungi" -} -[2026-01-20T06:42:28.673Z] [INFO] ℹ️ 사용자 목록 조회 성공 - Context: { - "count": 16 -} -[2026-01-20T06:42:28.677Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T06:42:29.664Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T06:42:57.090Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T06:43:27.169Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T06:43:57.259Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T06:44:27.351Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T06:44:57.440Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T06:45:27.535Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T06:45:57.621Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T06:46:27.686Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T06:46:57.760Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T06:47:27.843Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T06:47:57.924Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T06:48:28.000Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T06:48:32.253Z] [INFO] ℹ️ 사용자 목록 조회 요청 - Context: { - "requestedBy": "hyungi" -} -[2026-01-20T06:48:32.257Z] [INFO] ℹ️ 사용자 목록 조회 성공 - Context: { - "count": 16 -} -[2026-01-20T06:48:32.260Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T06:48:33.256Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T06:48:33.573Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-20", - "requester": 1, - "isAdmin": false -} -[2026-01-20T06:48:33.576Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 1 -} -[2026-01-20T06:48:33.577Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-20&view_all=true", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T06:48:33.580Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T06:48:34.558Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T06:48:58.074Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T06:49:28.161Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T06:49:58.250Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T06:50:28.336Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T06:50:58.422Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T06:51:28.504Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T06:51:58.587Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T06:52:28.678Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T06:52:45.703Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-20", - "requester": 1, - "isAdmin": false -} -[2026-01-20T06:52:45.706Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T06:52:45.707Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 1 -} -[2026-01-20T06:52:45.708Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-20&view_all=true", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T06:52:45.719Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users/1/page-access", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T06:52:46.702Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T06:52:47.510Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T06:52:47.518Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects?is_active=1", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T06:52:47.523Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/tbm/safety-checks", - "method": "GET" -} -[2026-01-20T06:52:47.524Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/tbm/safety-checks", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T06:52:47.530Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/tbm/sessions/date/2026-01-20", - "method": "GET" -} -[2026-01-20T06:52:47.530Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-20", - "statusCode": 404, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T06:52:48.420Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T06:52:58.786Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T06:53:28.883Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T07:40:50.435Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T07:59:07.733Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T08:39:34.583Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T08:58:04.381Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T09:25:59.291Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T09:55:06.558Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T10:46:56.267Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T11:46:13.970Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T12:29:34.325Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T13:31:25.572Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T14:00:23.547Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T14:17:54.819Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T14:46:26.430Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T15:48:58.612Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T16:56:03.755Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T18:37:22.803Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T20:18:36.957Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T21:15:55.939Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T21:29:22.318Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T21:29:52.406Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T21:30:22.498Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T21:30:52.580Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T21:31:22.669Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T21:31:52.749Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T21:32:22.843Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T21:32:52.933Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T21:33:23.016Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T21:33:53.109Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T21:34:23.195Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T21:34:53.285Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T21:35:23.369Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T21:35:53.454Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T21:36:23.545Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T21:36:53.636Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T21:37:23.720Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T21:37:53.815Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T21:38:23.909Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T21:38:53.995Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T21:39:24.083Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T21:39:54.174Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T21:40:24.264Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T21:40:54.349Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T21:41:24.446Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T21:41:54.530Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T21:42:24.619Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T21:42:54.710Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T21:43:24.798Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T21:43:54.855Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T21:44:24.952Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T21:44:55.026Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T21:45:25.089Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T21:45:55.145Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T21:46:25.209Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T21:46:55.286Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T21:47:25.381Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T21:47:55.467Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T21:48:25.541Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T21:48:55.626Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T21:49:25.707Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T21:49:55.769Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T21:50:25.845Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T21:50:55.918Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T21:51:25.990Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T21:51:56.068Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T21:52:26.136Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T21:52:56.214Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T21:53:26.287Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T21:53:56.356Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T21:54:26.437Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T21:54:56.507Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T21:55:26.576Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T21:55:56.646Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T21:56:26.720Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T21:56:56.798Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T21:57:26.866Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T21:57:56.945Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T21:58:27.018Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T21:58:57.086Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T21:59:27.178Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T21:59:57.274Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T22:00:27.367Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T22:00:57.454Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T22:01:27.519Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T22:01:57.600Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T22:02:27.679Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T22:02:57.768Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T22:03:27.855Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T22:03:57.938Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T22:04:28.025Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T22:04:58.090Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T22:05:28.163Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T22:05:58.246Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T22:06:28.320Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T22:06:58.387Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T22:07:28.459Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T22:07:58.516Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T22:08:28.587Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T22:08:58.664Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T22:09:28.737Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T22:09:58.835Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T22:10:28.893Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T22:10:58.982Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T22:11:29.040Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T22:11:59.148Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T22:12:29.215Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T22:12:59.303Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T22:13:29.372Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T22:13:59.464Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T22:14:29.563Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T22:14:59.652Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T22:15:29.746Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T22:15:59.826Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T22:16:29.925Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T22:17:00.013Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T22:17:30.114Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T22:18:00.198Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T22:18:30.290Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T22:19:00.394Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T22:19:30.482Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T22:20:00.577Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T22:20:30.656Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T22:21:00.745Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T22:21:30.840Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T22:22:00.935Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T22:22:31.026Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T22:23:01.113Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T22:23:31.200Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T22:24:01.288Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T22:24:31.376Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T22:25:01.460Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T22:25:31.550Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T22:26:01.641Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T22:26:31.733Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T22:27:01.813Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T22:27:31.909Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T22:28:01.989Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T22:28:32.081Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T22:29:02.165Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T22:29:32.246Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T22:30:02.333Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T22:30:32.422Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T22:31:02.503Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T22:31:32.594Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T22:32:02.674Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T22:32:32.762Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T22:33:02.847Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T22:33:32.933Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T22:34:03.019Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T22:34:33.120Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T22:35:03.212Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T22:35:33.290Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T22:36:03.380Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T22:36:33.471Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T22:37:03.571Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T22:37:33.673Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T22:38:03.780Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T22:38:33.859Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T22:39:03.949Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T22:39:34.039Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T22:40:04.123Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T22:40:34.219Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T22:41:04.298Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T22:41:34.393Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T22:42:04.484Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T22:42:34.570Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T22:43:04.662Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T22:43:34.759Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T22:44:04.860Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T22:44:34.954Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T22:45:05.049Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T22:45:35.137Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T22:46:05.228Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T22:46:35.318Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T22:47:05.418Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T22:47:35.506Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T22:48:05.610Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T22:48:35.694Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T22:49:05.788Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T22:49:35.887Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T22:50:05.993Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T22:50:36.083Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T22:51:06.172Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T22:51:36.247Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T22:52:06.336Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T22:52:36.435Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T22:53:06.499Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T22:53:36.553Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T22:54:06.631Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T22:54:36.698Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T22:55:06.773Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T22:55:36.859Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T22:56:06.952Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T22:56:37.044Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T22:57:07.136Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T22:57:37.218Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T22:58:07.311Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T22:58:37.409Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T22:59:07.523Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T22:59:37.614Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T23:00:07.705Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T23:00:37.794Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T23:01:07.878Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T23:01:37.975Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T23:02:08.064Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T23:02:38.162Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T23:03:08.248Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T23:03:38.341Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T23:04:08.411Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T23:04:38.500Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T23:05:08.590Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T23:05:38.685Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T23:06:08.781Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T23:06:38.885Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T23:07:08.963Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T23:07:39.036Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T23:08:09.133Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T23:08:39.224Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T23:09:09.318Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T23:09:39.400Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T23:10:09.498Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T23:10:39.569Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T23:11:09.637Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T23:11:39.710Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T23:12:09.806Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T23:12:39.903Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T23:13:09.971Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T23:13:40.070Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T23:14:10.157Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T23:14:40.249Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T23:15:10.365Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T23:15:40.464Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T23:16:10.548Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T23:16:40.648Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T23:17:10.738Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T23:17:40.864Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T23:18:10.963Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T23:18:41.056Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T23:19:11.160Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T23:19:41.249Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T23:20:11.333Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T23:20:41.442Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T23:21:11.531Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T23:21:41.617Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T23:22:11.722Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T23:22:41.829Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T23:23:11.921Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T23:23:42.035Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T23:24:12.138Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T23:24:42.244Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T23:25:12.348Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T23:25:42.436Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T23:26:12.548Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T23:26:42.640Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T23:27:12.731Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T23:27:42.826Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T23:28:12.925Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T23:28:43.026Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T23:29:13.138Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T23:29:43.230Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T23:30:13.321Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T23:30:43.418Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T23:31:13.488Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T23:31:43.578Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T23:32:13.665Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T23:32:43.756Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T23:33:13.872Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T23:33:43.984Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T23:34:14.068Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T23:34:44.162Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T23:35:14.256Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T23:35:44.356Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T23:36:14.457Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T23:36:44.554Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T23:37:14.645Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T23:37:44.741Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T23:38:14.841Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T23:38:44.941Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T23:39:15.030Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T23:39:45.129Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T23:40:15.233Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T23:40:45.328Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T23:41:15.411Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T23:41:45.507Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T23:42:15.607Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T23:42:45.701Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T23:43:15.805Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T23:43:45.918Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T23:44:16.007Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T23:44:46.115Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T23:45:16.206Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T23:45:46.304Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T23:46:16.396Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T23:46:46.489Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T23:47:16.575Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T23:47:46.662Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T23:48:16.771Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T23:48:46.871Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T23:49:16.955Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T23:49:47.059Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T23:50:17.176Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T23:50:47.274Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T23:51:17.355Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T23:51:47.441Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T23:52:17.535Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T23:52:47.639Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T23:53:17.731Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T23:53:47.826Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T23:54:17.894Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T23:54:47.953Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T23:55:18.011Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T23:55:48.089Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T23:56:18.163Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T23:56:48.254Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T23:57:18.342Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T23:57:48.424Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T23:58:18.540Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T23:58:48.623Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T23:59:18.716Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-20T23:59:48.819Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T00:00:18.911Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T00:00:49.020Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T00:01:19.116Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T00:01:49.215Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T00:02:19.307Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T00:02:49.414Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T00:03:19.507Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T00:03:49.600Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T00:04:19.703Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T00:04:49.791Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T00:05:19.884Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T00:05:49.962Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T00:06:20.049Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T00:06:50.140Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T00:07:20.242Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T00:07:50.323Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T00:08:20.385Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T00:08:50.497Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T00:09:20.596Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T00:09:50.684Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T00:10:20.778Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T00:10:50.874Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T00:11:21.245Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T00:11:51.359Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T00:12:21.451Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T00:12:51.567Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T00:13:21.663Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T00:13:51.752Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T00:14:21.862Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T00:14:51.972Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T00:15:22.058Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T00:15:52.150Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T00:16:22.250Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T00:16:52.343Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T00:17:22.429Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T00:17:52.534Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T00:18:22.626Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T00:18:52.731Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T00:19:22.826Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T00:19:52.916Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T00:20:23.010Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T00:20:53.118Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T00:21:23.200Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T00:21:53.292Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T00:22:23.397Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T00:22:53.587Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T00:23:23.676Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T00:23:53.781Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T00:24:23.875Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T00:24:53.972Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T00:25:24.060Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T00:25:54.174Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T00:26:24.265Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T00:26:54.353Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T00:27:24.443Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T00:27:54.552Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T00:28:24.643Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T00:28:54.739Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T00:29:24.831Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T00:29:54.930Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T00:30:25.029Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T00:30:55.119Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T00:31:25.208Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T00:31:55.288Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T00:32:25.379Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T00:32:55.478Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T00:33:25.579Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T00:33:55.654Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T00:34:25.749Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T00:34:55.828Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T00:35:25.918Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T00:35:56.014Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T00:36:26.109Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T00:36:56.207Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T00:37:26.298Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T00:37:56.399Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T00:38:26.496Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T00:38:56.595Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T00:39:26.675Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T00:39:56.768Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T00:40:26.867Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T00:40:56.953Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T00:41:27.040Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T00:41:57.122Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T00:42:27.238Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T00:42:57.330Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T00:43:27.423Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T00:43:57.520Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T00:44:27.616Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T00:44:57.699Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T00:45:27.790Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T00:45:57.877Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T00:46:27.967Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T00:46:58.067Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T00:47:28.175Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T00:47:58.273Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T00:48:28.368Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T00:48:58.455Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T00:49:28.551Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T00:49:58.652Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T00:50:28.729Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T00:50:58.816Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T00:51:28.909Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T00:51:59.005Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T00:52:29.104Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T00:52:59.207Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T00:53:29.271Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T00:53:59.338Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T00:54:29.402Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T00:54:59.496Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T00:55:29.590Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T00:55:59.673Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T00:56:29.761Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T00:56:59.852Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T00:57:29.952Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T00:58:00.046Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T00:58:30.135Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T00:59:00.210Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T00:59:30.290Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T01:00:00.384Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T01:00:30.472Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T01:01:00.564Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T01:01:30.666Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T01:02:00.747Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T01:02:30.855Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T01:03:00.950Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T01:03:31.037Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T01:04:01.112Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T01:04:31.204Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T01:05:01.300Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T01:05:31.405Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T01:06:01.509Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T01:06:31.601Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T01:07:01.692Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T01:07:31.792Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T01:08:01.879Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T01:08:31.978Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T01:09:02.075Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T01:09:32.167Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T01:10:02.227Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T01:10:32.316Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T01:11:02.396Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T01:11:32.489Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T01:12:02.585Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T01:12:32.664Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T01:13:02.770Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T01:13:32.873Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T01:14:02.978Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T01:14:33.114Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T01:15:03.216Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T01:15:33.535Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T01:16:03.667Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T01:16:33.757Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T01:17:03.860Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T01:17:33.972Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T01:18:04.068Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T01:18:34.157Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T01:19:04.253Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T01:19:34.345Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T01:20:04.430Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T01:20:34.520Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T01:21:04.613Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T01:21:34.710Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T01:22:04.809Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T01:22:34.879Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T01:23:04.993Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T01:23:35.079Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T01:24:05.158Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T01:24:35.242Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T01:25:05.335Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T01:25:35.437Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T01:26:05.535Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T01:26:35.632Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T01:27:05.737Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T01:27:35.830Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T01:28:05.922Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T01:28:36.010Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T01:29:06.097Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T01:29:36.185Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T01:30:06.281Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T01:30:36.372Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T01:31:06.456Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T01:31:36.562Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T01:32:06.645Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T01:32:36.739Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T01:33:06.827Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T01:33:36.919Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T01:34:07.006Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T01:34:37.092Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T01:35:07.190Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T01:35:37.292Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T01:36:07.392Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T01:36:37.482Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T01:37:07.575Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T01:37:37.662Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T01:38:07.749Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T01:38:37.828Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T01:39:07.914Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T01:39:37.998Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T01:40:08.085Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T01:40:38.178Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T01:41:08.264Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T01:41:38.351Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T01:42:08.445Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T01:42:38.538Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T01:43:08.622Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T01:43:38.712Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T01:44:08.803Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T01:44:38.902Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T01:45:08.993Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T01:45:39.084Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T01:46:09.177Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T01:46:39.265Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T01:47:09.354Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T01:47:39.434Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T01:48:09.520Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T01:48:39.609Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T01:49:09.700Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T01:49:39.793Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T01:50:09.881Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T01:50:39.962Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T01:51:10.053Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T01:51:40.141Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T01:52:10.234Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T01:52:40.341Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T01:53:10.426Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T01:53:40.506Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T01:54:10.557Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T01:54:40.630Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T01:55:10.693Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T01:55:40.762Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T01:56:10.830Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T01:56:40.917Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T01:57:11.007Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T01:57:41.092Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T01:58:11.171Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T01:58:41.269Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T01:59:11.363Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T01:59:41.453Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T02:00:11.546Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T02:00:41.622Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T02:01:11.724Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T02:01:41.818Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T02:02:11.902Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T02:02:41.989Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T02:03:12.095Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T02:03:42.187Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T02:04:12.276Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T02:04:42.353Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T02:05:12.438Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T02:05:42.526Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T02:06:12.626Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T02:06:42.723Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T02:07:12.818Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T02:07:42.906Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T02:08:12.986Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T02:08:43.058Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T02:09:13.145Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T02:09:43.235Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T02:10:13.336Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T02:10:43.437Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T02:11:13.519Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T02:11:43.592Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T02:12:13.677Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T02:12:43.753Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T02:13:13.837Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T02:13:43.913Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T02:14:13.978Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T02:14:44.047Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T02:15:14.133Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T02:15:44.227Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T02:16:14.315Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T02:16:44.400Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T02:17:14.499Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T02:17:44.598Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T02:18:14.700Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T02:18:44.784Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T02:19:14.884Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T02:19:44.979Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T02:20:15.068Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T02:20:45.158Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T02:21:15.247Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T02:21:45.334Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T02:22:15.419Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T02:22:45.524Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T02:23:15.614Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T02:23:45.703Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T02:24:15.787Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T02:24:45.874Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T02:25:15.954Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T02:25:46.046Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T02:26:16.129Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T02:26:46.214Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T02:27:16.298Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T02:27:46.384Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T02:28:16.474Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T02:28:46.544Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T02:29:16.634Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T02:29:46.730Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T02:30:16.814Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T02:30:46.890Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T02:31:16.972Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T02:31:47.045Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T02:32:17.125Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T02:32:47.223Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T02:33:17.314Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T02:33:47.407Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T02:34:17.496Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T02:34:47.577Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T02:35:17.665Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T02:35:47.758Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T02:36:17.846Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T02:36:47.946Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T02:37:18.037Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T02:37:48.133Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T02:38:18.223Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T02:38:48.315Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T02:39:18.408Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T02:39:48.513Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T02:40:18.613Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T02:40:48.703Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T02:41:18.791Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T02:41:48.886Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T02:42:18.976Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T02:42:49.065Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T02:43:19.153Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T02:43:49.243Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T02:44:19.338Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T02:44:49.427Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T02:45:19.509Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T02:45:49.610Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T02:46:19.700Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T02:46:49.779Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T02:47:19.869Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T02:47:49.985Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T02:48:20.084Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T02:48:50.177Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T02:49:20.267Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T02:49:50.366Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T02:50:20.455Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T02:50:50.544Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T02:51:20.648Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T02:51:50.736Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T02:52:20.825Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T02:52:50.927Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T02:53:21.008Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T02:53:51.109Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T02:54:21.203Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T02:54:51.301Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T02:55:21.401Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T02:55:51.491Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T02:56:21.584Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T02:56:51.671Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T02:57:21.764Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T02:57:51.843Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T02:58:21.938Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T02:58:52.031Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T02:59:22.127Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T02:59:52.207Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T03:00:22.261Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T03:00:52.311Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T03:01:22.379Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T03:01:52.450Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T03:02:22.552Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T03:02:52.649Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T03:03:22.744Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T03:03:52.844Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T03:04:22.942Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T03:04:53.032Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T03:05:23.138Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T03:05:53.238Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T03:06:23.327Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T03:06:53.424Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T03:07:23.518Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T03:07:53.598Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T03:08:23.691Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T03:08:53.773Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T03:09:23.865Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T03:09:53.956Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T03:10:24.051Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T03:10:54.159Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T03:11:24.259Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T03:11:54.358Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T03:12:24.455Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T03:12:54.545Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T03:13:24.628Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T03:13:54.702Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T03:14:24.783Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T03:14:54.901Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T03:15:25.006Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T03:15:55.121Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T03:16:25.214Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T03:16:55.284Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T03:17:25.370Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T03:17:55.452Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T03:18:25.527Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T03:18:55.607Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T03:19:25.689Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T03:19:55.775Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T03:20:25.893Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T03:20:55.993Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T03:21:26.089Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T03:21:56.141Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T03:22:26.234Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T03:22:56.311Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T03:23:26.382Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T03:23:56.461Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T03:24:26.563Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T03:24:56.658Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T03:25:26.751Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T03:25:56.850Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T03:26:26.933Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T03:26:57.036Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T03:27:27.129Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T03:27:57.216Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T03:28:27.313Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T03:28:57.389Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T03:29:27.457Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T03:29:57.530Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T03:30:27.621Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T03:30:57.695Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T03:31:27.768Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T03:31:57.850Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T03:32:27.922Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T03:32:57.991Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T03:33:28.061Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T03:33:58.140Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T03:34:28.207Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T03:34:58.287Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T03:35:28.361Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T03:35:58.436Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T03:36:28.515Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T03:36:58.584Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T03:37:28.660Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T03:37:58.732Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T03:38:28.808Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T03:38:58.881Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T03:39:28.953Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T03:39:59.021Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T03:40:29.084Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T03:40:59.159Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T03:41:29.231Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T03:41:59.316Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T03:42:29.405Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T03:42:59.474Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T03:43:29.553Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T03:43:59.621Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T03:44:29.690Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T03:44:59.757Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T03:45:29.828Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T03:45:59.898Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T03:46:29.965Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T03:47:00.037Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T03:47:30.110Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T03:48:00.182Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T03:48:30.263Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T03:49:00.348Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T03:49:30.420Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T03:50:00.495Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T03:50:30.573Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T03:51:00.643Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T03:51:30.713Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T03:52:00.777Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T03:52:30.848Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T03:53:00.929Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T03:53:30.996Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T03:54:01.071Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T03:54:31.137Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T03:55:01.213Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T03:55:31.277Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T03:56:01.353Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T03:56:31.427Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T03:57:01.505Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T03:57:31.574Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T03:58:01.639Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T03:58:31.712Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T03:59:01.785Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T03:59:31.852Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T04:00:01.933Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T04:00:32.003Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T04:01:02.067Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T04:01:32.133Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T04:02:02.198Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T04:02:32.269Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T04:03:02.347Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T04:03:32.420Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T04:04:02.495Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T04:04:32.572Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T04:05:02.650Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T04:05:32.727Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T04:06:02.804Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T04:06:32.876Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T04:07:02.961Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T04:07:33.044Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T04:08:03.117Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T04:08:33.181Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T04:09:03.256Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T04:09:33.324Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T04:10:03.402Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T04:10:33.478Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T04:11:03.555Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T04:11:33.640Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T04:12:03.707Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T04:12:33.773Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T04:13:03.851Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T04:13:33.920Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T04:14:03.997Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T04:14:34.095Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T04:15:04.159Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T04:15:34.243Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T04:16:04.311Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T04:16:34.393Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T04:17:04.491Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T04:17:34.574Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T04:18:04.649Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T04:18:34.729Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T04:19:04.806Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T04:19:34.889Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T04:20:04.969Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T04:20:35.043Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T04:21:05.128Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T04:21:35.214Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T04:22:05.286Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T04:22:35.366Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T04:23:05.452Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T04:23:35.547Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T04:24:05.647Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T04:24:35.730Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T04:25:05.828Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T04:25:35.917Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T04:26:06.007Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T04:26:36.094Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T04:27:06.192Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T04:27:36.293Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T04:28:06.372Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T04:28:36.457Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T04:29:06.547Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T04:29:36.644Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T04:30:06.744Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T04:30:36.831Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T04:31:06.929Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T04:31:37.011Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T04:32:07.096Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T04:32:37.171Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T04:33:07.247Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T04:33:37.320Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T04:34:07.381Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T04:34:37.446Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T04:35:07.519Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T04:35:37.590Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T04:36:07.682Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T04:36:37.762Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T04:37:07.827Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T04:37:37.914Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T04:38:08.000Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T04:38:38.116Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T04:39:08.211Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T04:39:38.295Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T04:40:08.393Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T04:40:38.481Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T04:41:08.569Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T04:41:38.665Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T04:42:08.750Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T04:42:38.838Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T04:43:08.924Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T04:43:39.019Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T04:44:09.110Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T04:44:39.197Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T04:45:09.279Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T04:45:39.376Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T04:46:09.483Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T04:46:39.577Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T04:47:09.660Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T04:47:39.750Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T04:48:09.850Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T04:48:39.947Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T04:49:10.038Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T04:49:40.133Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T04:50:10.223Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T04:50:40.313Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T04:51:10.405Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T04:51:40.497Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T04:52:10.597Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T04:52:40.672Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T04:53:10.758Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T04:53:40.844Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T04:54:10.930Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T04:54:41.015Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T04:55:11.109Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T04:55:41.195Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T04:56:11.284Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T04:56:41.377Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T04:57:11.463Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T04:57:41.551Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T04:58:11.640Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T04:58:41.724Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T04:59:11.815Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T04:59:41.910Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T05:00:12.000Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T05:00:42.086Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T05:01:12.162Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T05:01:42.256Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T05:02:12.333Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T05:02:42.434Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T05:03:12.529Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T05:03:42.606Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T05:04:12.633Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T05:04:42.798Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T05:05:12.888Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T05:05:42.982Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T05:06:13.060Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T05:06:43.140Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T05:07:13.239Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T05:07:43.321Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T05:08:13.423Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T05:08:43.507Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T05:09:13.595Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T05:09:43.683Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T05:10:13.778Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T05:10:43.872Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T05:11:13.954Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T05:11:44.061Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T05:12:14.155Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T05:12:44.242Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T05:13:14.339Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T05:13:44.434Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T05:14:14.512Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T05:14:44.599Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T05:15:14.693Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T05:15:44.781Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T05:16:14.875Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T05:16:44.972Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T05:17:15.070Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T05:17:45.164Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T05:18:15.258Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T05:18:45.378Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T05:19:15.438Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T05:19:45.511Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T05:20:15.577Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T05:20:45.670Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T05:21:15.761Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T05:21:45.864Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T05:22:15.960Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T05:22:46.058Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T05:23:16.152Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T05:23:46.243Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T05:24:16.338Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T05:24:46.427Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T05:25:16.519Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T05:25:46.609Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T05:26:16.683Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T05:26:46.784Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T05:27:16.906Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T05:27:46.997Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T05:28:17.101Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T05:28:47.208Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T05:29:17.319Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T05:29:47.410Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T05:30:17.494Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T05:30:47.588Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T05:31:17.687Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T05:31:47.768Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T05:32:17.845Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T05:32:47.940Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T05:33:18.027Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T05:33:48.129Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T05:34:18.225Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T05:34:48.307Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T05:35:18.380Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T05:35:48.469Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T05:36:18.548Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T05:36:48.641Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T05:37:18.728Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T05:37:48.811Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T05:38:18.891Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T05:38:48.980Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T05:39:19.065Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T05:39:49.166Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T05:40:19.251Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T05:40:49.337Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T05:41:19.429Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T05:41:49.518Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T05:42:19.615Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T05:42:49.706Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T05:43:19.803Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T05:43:49.894Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T05:44:19.987Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T05:44:50.078Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T05:45:20.176Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T05:45:50.260Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T05:46:20.334Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T05:46:50.428Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T05:47:20.517Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T05:47:50.614Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T05:48:20.710Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T05:48:50.807Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T05:49:20.889Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T05:49:50.994Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T05:50:21.073Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T05:50:51.166Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T05:51:21.262Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T05:51:51.345Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T05:52:21.431Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T05:52:51.504Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T05:53:21.593Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T05:53:51.683Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T05:54:21.764Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T05:54:51.873Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T05:55:21.980Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T05:55:52.065Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T05:56:22.147Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T05:56:52.235Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T05:57:22.337Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T05:57:52.434Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T05:58:22.531Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T05:58:52.626Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T05:59:22.706Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T05:59:52.795Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T06:00:22.886Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T06:00:52.967Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T06:01:23.055Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T06:01:53.162Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T06:02:23.265Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T06:02:53.420Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T06:03:23.517Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T06:03:53.595Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T06:04:23.704Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T06:04:53.795Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T06:05:23.899Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T06:05:53.984Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T06:06:24.073Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T06:06:54.156Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T06:07:24.246Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T06:07:54.338Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T06:08:24.423Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T06:08:54.523Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T06:09:24.626Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T06:09:54.719Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T06:10:24.807Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T06:10:54.890Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T06:11:24.977Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T06:11:55.056Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T06:12:25.156Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T06:12:55.247Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T06:13:25.343Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T06:13:55.436Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T06:14:25.521Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T06:14:55.613Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T06:15:25.704Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T06:15:55.811Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T06:16:25.901Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T06:16:55.995Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T06:17:26.090Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T06:17:56.172Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T06:18:26.262Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T06:18:56.352Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T06:19:26.445Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T06:19:56.541Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T06:20:26.608Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T06:20:56.659Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T06:21:26.707Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T06:21:56.767Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T06:22:26.829Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T06:22:56.886Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T06:23:26.959Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T06:23:57.030Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T06:24:27.126Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T06:24:57.237Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T06:25:27.326Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T06:25:57.411Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T06:26:27.502Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T06:26:57.591Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T06:27:27.690Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T06:27:57.778Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T06:28:27.877Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T06:28:57.959Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T06:29:28.046Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T06:29:58.150Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T06:30:28.242Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T06:30:58.338Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T06:31:28.434Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T06:31:58.528Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T06:32:28.628Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T06:32:58.711Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T06:33:28.800Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T06:33:58.895Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T06:34:28.983Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T06:34:59.083Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T06:35:29.166Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T06:35:59.255Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T06:36:29.351Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T06:36:59.437Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T06:37:29.530Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T06:37:59.614Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T06:38:29.700Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T06:38:59.767Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T06:39:29.856Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T06:39:59.976Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T06:40:30.061Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T06:41:00.132Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T06:41:30.198Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T06:42:00.284Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T06:42:30.380Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T06:43:00.470Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T06:43:30.557Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T06:44:00.657Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T06:44:30.755Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T06:45:00.879Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T06:54:05.309Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T06:54:35.394Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T06:55:05.489Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T06:55:35.587Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T06:56:05.676Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T06:56:35.761Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T06:57:05.855Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T06:57:35.954Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T08:14:06.658Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T09:31:35.889Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T09:56:55.829Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T09:58:07.474Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T10:01:35.160Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T11:18:10.742Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T12:17:58.086Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T13:18:14.862Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T14:03:45.794Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T15:01:16.899Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "10ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T15:10:55.608Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T15:29:12.739Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T16:14:38.790Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T16:48:19.941Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T18:27:45.096Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T19:51:39.228Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T21:01:19.549Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T21:33:37.384Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T21:34:07.482Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T21:34:37.578Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T21:35:07.690Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T21:35:37.777Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T21:36:07.865Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T21:36:37.955Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T21:37:08.045Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T21:37:38.146Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T21:38:08.234Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T21:38:38.321Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T21:39:08.406Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T21:39:38.495Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T21:40:08.590Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T21:41:59.451Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T21:42:29.555Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T21:42:59.657Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T21:43:29.754Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T21:43:59.836Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T21:44:29.921Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T21:45:00.003Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T21:45:30.070Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T21:46:00.168Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T21:46:30.268Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T21:47:00.357Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T21:47:30.456Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T21:48:00.539Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T21:48:30.609Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T21:49:00.684Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T21:49:30.750Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T21:50:00.811Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T21:50:30.894Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T21:51:00.981Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T21:51:31.075Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T21:52:01.139Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T21:52:31.228Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T21:53:01.325Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T21:53:31.417Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T21:54:01.507Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T21:54:31.609Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T21:55:01.734Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T21:55:31.874Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "14ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T21:56:01.962Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T21:56:32.073Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T21:57:02.168Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T21:57:32.260Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T21:58:02.345Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T21:58:32.429Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T21:59:03.089Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "17ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T22:00:59.756Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T22:01:29.851Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T22:01:59.941Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T22:02:30.038Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T22:03:00.145Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T22:03:30.220Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T22:04:00.325Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T22:04:30.417Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T22:05:00.509Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T22:05:30.599Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T22:06:00.689Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T22:06:30.755Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T22:07:00.843Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T22:07:30.913Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T22:08:00.990Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T22:08:31.066Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T22:09:01.146Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T22:09:31.233Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T22:10:01.328Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T22:10:31.429Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T22:11:01.517Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T22:11:31.605Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T22:12:01.695Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T22:15:23.042Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T22:15:53.128Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T22:16:23.227Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T22:16:53.320Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T22:17:23.406Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T22:17:53.506Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T22:18:23.600Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T22:18:53.707Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T22:19:23.794Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T22:19:53.845Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T22:24:14.904Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T22:24:45.063Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T22:31:15.274Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T22:32:03.046Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T22:32:33.124Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T22:33:03.214Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T22:33:33.312Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T22:34:03.407Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T22:34:33.494Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T22:35:03.591Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T22:35:33.674Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T22:36:03.771Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T22:36:33.864Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T22:37:03.956Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T22:37:34.045Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T22:38:07.700Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T22:38:37.788Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T22:39:07.876Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T22:39:37.970Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T22:40:08.064Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T22:40:38.162Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T22:42:36.689Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T22:43:06.777Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T22:43:36.866Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T22:44:06.952Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T22:44:37.036Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T22:45:07.125Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T22:45:37.210Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T22:46:07.314Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T22:46:37.402Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T22:47:07.490Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T22:47:37.573Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T22:48:07.660Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T22:48:37.744Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T22:49:07.832Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T22:49:37.941Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T22:50:08.031Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T22:50:38.125Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T22:51:08.214Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T22:51:38.313Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T22:52:08.403Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T22:52:38.492Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T22:53:08.588Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T22:53:38.680Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T22:54:08.765Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T22:54:38.868Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T22:55:08.979Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T22:55:39.067Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T22:56:09.164Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T22:56:39.252Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T22:57:09.366Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T22:57:39.471Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T22:58:09.556Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T22:58:39.652Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T22:59:09.741Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T22:59:39.833Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T23:00:09.918Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T23:00:40.018Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T23:01:10.150Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T23:01:40.249Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T23:02:10.342Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T23:02:40.420Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T23:03:10.518Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T23:03:40.604Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T23:04:10.699Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T23:04:40.791Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T23:05:10.869Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T23:05:40.980Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T23:06:11.076Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T23:06:41.187Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T23:07:11.300Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T23:07:41.398Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T23:08:11.497Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T23:08:41.584Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T23:09:11.671Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T23:09:41.787Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T23:10:11.887Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T23:10:41.989Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T23:11:12.070Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T23:11:42.170Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T23:12:12.259Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T23:12:42.349Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T23:13:12.440Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T23:13:42.553Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T23:14:12.661Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T23:14:42.756Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T23:15:12.839Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T23:15:42.926Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T23:16:13.002Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T23:16:43.100Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T23:17:13.195Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T23:17:43.279Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T23:18:13.362Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T23:18:43.451Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T23:19:13.542Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T23:19:43.664Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T23:20:13.763Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T23:20:43.853Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T23:21:13.946Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T23:21:44.038Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T23:22:14.130Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T23:22:44.210Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T23:23:14.295Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T23:23:44.386Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T23:24:14.470Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T23:24:44.570Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T23:25:14.652Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T23:25:44.747Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T23:26:14.834Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T23:26:44.915Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T23:27:15.006Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T23:27:45.102Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T23:28:15.192Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T23:28:45.282Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T23:29:15.374Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T23:29:45.467Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T23:30:15.558Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T23:30:45.649Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T23:31:15.749Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T23:31:45.839Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T23:32:15.939Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T23:32:46.034Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T23:33:16.130Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T23:33:46.221Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T23:34:16.312Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T23:34:46.400Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T23:35:16.491Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T23:35:46.577Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T23:36:16.661Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T23:36:46.746Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T23:37:16.828Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T23:37:46.913Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T23:38:17.012Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T23:38:47.104Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T23:39:17.199Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T23:39:47.288Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T23:40:17.375Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T23:40:47.468Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T23:41:17.558Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T23:41:47.641Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T23:42:17.729Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T23:42:47.835Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T23:43:17.925Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T23:43:48.017Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T23:44:18.106Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T23:44:48.199Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T23:45:18.282Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T23:45:48.369Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T23:46:18.454Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T23:46:48.545Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T23:47:18.635Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T23:47:48.732Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T23:48:18.815Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T23:48:48.903Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T23:49:18.985Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T23:49:49.070Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T23:50:19.163Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T23:50:49.257Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T23:51:19.347Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T23:51:49.433Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T23:52:19.521Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T23:52:49.607Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T23:53:19.718Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T23:53:49.817Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T23:54:19.910Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T23:54:50.030Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T23:55:20.125Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T23:55:50.208Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-21T23:56:20.386Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T00:01:21.703Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T00:01:51.796Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T00:02:21.892Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T00:02:51.987Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T00:03:22.084Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T00:03:52.179Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T00:04:22.271Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T00:04:52.360Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T00:05:22.441Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T00:05:52.528Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T00:06:22.611Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T00:06:52.707Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T00:07:22.800Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T00:07:52.885Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T00:08:22.974Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T00:08:53.060Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T00:09:23.168Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T00:09:53.258Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T00:10:23.352Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T00:10:53.453Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T00:11:23.551Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T00:11:53.642Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T00:12:23.729Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T00:12:53.819Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T00:13:23.913Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T00:13:54.018Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T00:14:24.116Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T00:14:54.219Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T00:15:24.304Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T00:16:00.231Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T00:16:57.909Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T00:32:07.343Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T00:35:02.654Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T01:09:32.848Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T02:08:22.925Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T02:38:13.049Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T02:38:43.154Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T02:39:13.245Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T02:39:43.334Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T02:40:13.471Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T02:40:43.567Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T02:41:13.706Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T02:41:43.803Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T02:42:13.897Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T02:42:43.987Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T02:43:14.096Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T02:43:44.218Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T02:44:14.328Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T02:44:44.440Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T02:45:14.542Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T02:45:44.645Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T02:46:14.746Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T02:46:44.863Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T02:47:14.954Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T02:47:45.097Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T02:48:15.212Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T02:48:45.368Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "10ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T02:49:15.456Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T02:49:45.572Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T02:50:15.721Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T02:50:45.815Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T02:51:15.917Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T02:51:46.024Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T02:52:16.119Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T02:52:46.211Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T02:53:16.320Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T02:53:46.411Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T02:54:16.512Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T02:54:46.604Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T02:55:16.690Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T02:55:46.782Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T02:56:16.872Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T02:56:46.963Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T02:57:17.085Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T02:57:47.185Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T02:58:17.272Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T02:58:47.378Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T02:59:17.473Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T02:59:47.569Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T03:00:17.662Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T03:00:47.746Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T03:01:17.934Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T03:01:48.025Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T03:02:18.139Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T03:02:48.251Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T03:03:18.379Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T03:03:48.475Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T03:04:18.581Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T03:04:48.667Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T03:05:18.779Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T03:05:48.874Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T03:06:18.963Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T03:06:49.057Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T03:07:19.149Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T03:07:49.236Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T03:08:19.352Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T03:08:49.445Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T03:09:19.534Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T03:09:49.631Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T03:10:19.755Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T03:10:49.845Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T03:11:19.954Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T03:11:50.055Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T03:12:20.155Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T03:12:50.263Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T03:13:20.373Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T03:13:50.510Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T03:14:20.655Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T03:14:50.766Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T03:15:20.876Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T03:15:50.975Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T03:16:21.097Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T03:16:51.266Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "8ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T03:17:21.402Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T03:17:51.510Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T03:18:21.635Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T03:18:51.718Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T03:19:21.796Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T03:19:51.884Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T03:20:21.980Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T03:20:52.069Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T03:21:22.163Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T03:21:52.255Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T03:22:22.349Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T03:22:52.459Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T03:23:22.553Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T03:23:52.651Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T03:24:22.766Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T03:24:52.864Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T03:25:22.954Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T03:25:53.038Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T03:26:23.127Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T03:26:53.203Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T03:36:06.340Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T03:36:36.434Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T03:37:06.525Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T03:37:36.621Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T03:38:06.705Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T03:50:26.569Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T03:50:56.651Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T03:51:26.747Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T03:51:56.833Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T03:52:26.925Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T03:52:57.015Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T03:53:27.100Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T03:53:57.193Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T03:54:27.282Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T03:54:57.364Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T03:55:27.453Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T03:55:57.548Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T03:56:27.637Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T03:56:57.720Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T03:57:27.811Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T03:57:57.902Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T03:58:28.003Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T03:58:58.082Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T03:59:28.167Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T03:59:58.264Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T04:00:28.356Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T04:00:58.444Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T04:01:28.535Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T04:01:58.614Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T04:02:28.709Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T04:02:58.795Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T04:03:28.891Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T04:03:58.974Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T04:04:29.063Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T04:04:59.144Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T04:05:29.226Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T04:05:59.310Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T04:06:29.402Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T04:06:59.484Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T04:07:29.570Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T04:07:59.657Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T04:08:29.743Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T04:08:59.825Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T04:09:29.910Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T04:09:59.965Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T04:10:30.062Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T04:11:00.121Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T04:11:30.204Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T04:12:00.279Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T04:12:30.369Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T04:13:00.460Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T04:13:30.536Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T04:14:00.616Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T04:14:30.713Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T04:15:00.805Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T04:15:30.909Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T04:16:01.000Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T04:17:35.478Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T04:17:50.077Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-22T04:19:34.161Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T04:20:04.253Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T04:20:34.335Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T04:21:04.422Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T04:21:34.515Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T04:23:02.554Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T04:23:36.442Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T04:24:06.543Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T04:24:36.634Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T04:25:06.721Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T04:25:36.807Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T04:26:06.892Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T04:28:49.340Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T04:49:59.147Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T04:51:33.233Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T04:52:03.333Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T04:52:33.431Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T04:53:03.512Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T04:53:33.604Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T04:54:03.696Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T05:01:49.425Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T05:02:45.486Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T05:03:36.924Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T05:09:18.611Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T05:10:05.296Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T05:12:19.009Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T05:27:23.727Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T05:34:19.356Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T05:34:49.446Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T05:35:19.546Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T05:35:49.651Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T05:36:21.347Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T05:41:30.376Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T05:42:00.504Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T05:42:39.068Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T05:43:09.149Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T05:43:39.220Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T05:44:09.333Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T05:44:39.418Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T05:45:09.501Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T05:45:39.572Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T05:46:09.668Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T05:46:39.786Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T05:47:09.921Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T05:47:40.015Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T05:48:10.100Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T05:48:40.199Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T05:49:10.328Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T05:49:40.429Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T05:50:10.521Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T05:50:40.613Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T05:51:10.697Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T05:51:40.798Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T05:52:10.906Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T05:52:41.002Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T05:55:34.013Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T05:56:04.104Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T05:56:34.201Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T05:57:04.289Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T05:57:34.410Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T05:58:04.498Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T05:58:34.593Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T05:59:04.687Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T05:59:34.780Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T06:00:04.884Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T06:00:34.973Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T06:01:05.067Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T06:01:35.166Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T06:02:05.250Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T06:02:35.333Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T06:03:05.423Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T06:03:35.516Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T06:04:47.633Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T06:05:17.746Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T06:05:47.852Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T06:06:17.946Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T06:06:48.033Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T06:07:18.124Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T06:07:48.206Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T06:08:18.289Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T06:08:48.342Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T06:09:18.398Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T06:09:48.439Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T06:10:18.479Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T06:10:48.520Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T06:11:18.571Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T06:11:48.642Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T06:12:18.696Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T06:12:48.749Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T06:13:18.800Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T06:13:48.850Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T06:14:18.913Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T06:14:48.978Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T06:15:19.030Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T06:15:49.082Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T06:16:19.135Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T06:16:49.188Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T06:17:19.240Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T06:17:49.292Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T06:18:19.345Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T06:18:49.399Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T06:19:19.455Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T06:19:49.505Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T06:20:19.553Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T06:20:49.608Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T06:21:19.683Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T06:21:49.764Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T06:22:19.848Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T06:22:49.912Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T06:23:19.979Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T06:23:50.051Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T06:24:20.128Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T06:24:50.218Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T06:25:20.316Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T06:25:50.403Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T06:26:20.493Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T06:26:50.560Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T06:27:20.638Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T06:27:50.738Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T06:28:20.830Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T06:28:50.922Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T06:29:21.017Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T06:29:51.105Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T06:30:21.190Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T06:30:51.271Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T06:31:21.358Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T06:31:51.451Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T06:32:21.542Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T06:32:51.636Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T06:33:21.724Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T06:33:51.813Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T06:34:21.911Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T06:34:52.003Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T06:35:22.093Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T06:35:52.198Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T06:36:22.282Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T06:36:52.368Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T06:37:22.479Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T06:37:52.567Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T06:38:22.663Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T06:38:52.741Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T06:39:22.816Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T06:39:52.915Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T06:40:23.011Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T06:40:53.110Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T06:41:23.203Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T06:41:53.294Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T06:42:23.375Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T06:42:53.469Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T06:43:23.561Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T06:43:53.661Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T06:44:23.743Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T06:44:53.826Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T06:45:23.921Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T06:45:53.999Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T06:46:24.085Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T06:46:54.179Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T06:47:24.273Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T06:47:54.371Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T06:48:24.457Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T06:48:54.554Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T06:49:24.657Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T06:49:54.753Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T06:50:24.840Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T06:50:54.910Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T06:51:25.019Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T06:51:55.105Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T06:52:25.194Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T06:52:55.288Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T06:53:25.380Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T06:53:55.468Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T06:54:25.550Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T06:54:55.642Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T06:55:25.730Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T07:28:31.062Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T07:45:52.131Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T08:15:00.684Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T09:08:48.124Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T09:10:32.214Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T09:13:06.748Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T09:32:45.812Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T10:04:13.509Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T10:56:23.159Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T11:11:53.180Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T11:33:31.857Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T11:58:56.138Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T13:00:02.510Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T13:03:58.240Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T14:00:50.617Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T15:01:51.956Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T16:20:22.585Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T17:25:25.372Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T17:29:30.011Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T18:13:33.315Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T18:56:59.615Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T19:44:42.336Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T20:53:53.190Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T21:13:31.836Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T21:32:52.452Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T21:33:32.746Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T21:34:02.959Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T21:34:33.056Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T21:35:03.132Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T21:35:33.227Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T21:36:03.323Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T21:36:33.412Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T21:37:03.492Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T21:37:33.583Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T21:38:03.669Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T21:38:33.756Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T21:39:03.884Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T21:39:33.984Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T21:40:04.073Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T21:40:34.153Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T21:41:04.270Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T21:41:34.366Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T21:42:04.450Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T21:42:34.549Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T21:43:04.630Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T21:43:34.718Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T21:44:04.818Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T21:44:34.906Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T21:45:04.995Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T21:45:35.093Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T21:46:05.183Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T21:46:35.275Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T21:47:05.363Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T21:47:35.452Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T21:48:05.543Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T21:48:35.652Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T21:49:05.750Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T21:49:35.845Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T21:50:05.950Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T21:50:36.046Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T21:51:06.147Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T21:51:36.251Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T21:52:06.353Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T21:52:36.446Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T21:53:06.536Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T21:53:36.617Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T21:54:06.697Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T21:54:36.783Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T21:55:06.859Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T21:55:36.950Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T21:56:07.042Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T21:56:37.144Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T21:57:07.234Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T21:57:37.321Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T21:58:07.414Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T21:58:37.501Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T21:59:07.592Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T21:59:37.680Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T22:00:07.770Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T22:00:37.860Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T22:01:07.946Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T22:01:38.033Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T22:02:08.123Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T22:02:38.214Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T22:03:08.318Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T22:03:38.414Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T22:04:08.517Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T22:04:38.607Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T22:05:08.698Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T22:05:38.788Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T22:06:08.871Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T22:06:38.956Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T22:07:09.047Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T22:07:39.154Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T22:08:09.251Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T22:08:39.340Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T22:09:09.429Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T22:09:39.511Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T22:10:09.592Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T22:10:39.689Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T22:11:09.793Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T22:11:39.891Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T22:12:09.981Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T22:12:40.069Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T22:13:10.167Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T22:13:40.267Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T22:14:10.358Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T22:14:40.460Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T22:15:10.567Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T22:15:40.647Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T22:16:10.742Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T22:16:40.844Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T22:17:10.941Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T22:17:41.028Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T22:18:11.109Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T22:18:41.216Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T22:19:11.330Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T22:19:41.432Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T22:20:11.520Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T22:20:41.613Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T22:21:11.694Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T22:21:41.787Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T22:22:11.875Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T22:22:41.968Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T22:23:12.055Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T22:23:42.152Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T22:24:12.247Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T22:24:42.353Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T22:25:12.447Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T22:25:42.530Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T22:26:12.614Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T22:26:42.705Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T22:27:12.789Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T22:27:42.886Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T22:28:12.979Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T22:28:43.063Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T22:29:13.168Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T22:29:43.245Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T22:30:13.335Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T22:30:43.423Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T22:31:13.523Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T22:31:43.622Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T22:32:13.719Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T22:32:43.804Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T22:33:13.895Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T22:33:43.992Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T22:34:14.090Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T22:34:44.172Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T22:35:14.262Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T22:35:44.341Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T22:36:14.437Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T22:36:44.532Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T22:37:14.626Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T22:37:44.711Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T22:38:14.832Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T22:38:44.916Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T22:39:15.003Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T22:39:45.100Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T22:40:15.177Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T22:40:45.289Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T22:41:15.388Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T22:41:45.485Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T22:42:15.581Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T22:42:45.673Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T22:43:15.761Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T22:43:45.865Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T22:44:15.954Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T22:44:46.050Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T22:45:16.138Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T22:45:46.243Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T22:46:16.336Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T22:46:46.423Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T22:47:16.521Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T22:47:46.598Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T22:48:16.691Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T22:48:46.778Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T22:49:16.861Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T22:49:46.940Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T22:50:17.041Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T22:50:47.147Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T22:51:17.245Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T22:51:47.339Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T22:52:17.426Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T22:52:47.514Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T22:53:17.609Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T22:53:47.701Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T22:54:17.756Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T22:54:47.840Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T22:55:17.917Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T22:55:48.018Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T22:56:18.107Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T22:56:48.191Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T22:57:18.280Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T22:57:48.357Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T22:58:18.457Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T22:58:48.553Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T22:59:18.656Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T22:59:48.739Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T23:00:18.858Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T23:00:48.941Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T23:01:19.044Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T23:01:49.134Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T23:02:19.222Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T23:02:49.356Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T23:03:19.446Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T23:03:49.572Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T23:04:19.668Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T23:04:49.755Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T23:05:19.845Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T23:05:49.940Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T23:06:20.028Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T23:06:50.120Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T23:07:20.208Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T23:07:50.296Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T23:08:20.409Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T23:08:50.484Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T23:09:20.571Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T23:09:50.664Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T23:10:20.753Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T23:10:50.843Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T23:11:20.931Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T23:11:51.020Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T23:12:21.103Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T23:12:51.195Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T23:13:21.296Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T23:13:51.385Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T23:14:21.479Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T23:14:51.576Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T23:15:21.657Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T23:15:51.743Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T23:16:21.828Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T23:16:51.915Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T23:19:45.648Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T23:20:15.740Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T23:20:45.833Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T23:21:15.919Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T23:21:46.005Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T23:22:16.115Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T23:22:46.204Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T23:23:16.290Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T23:23:46.373Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T23:24:16.460Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T23:24:46.573Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T23:25:16.653Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T23:25:46.746Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T23:26:16.843Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T23:26:46.937Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T23:27:17.028Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T23:27:47.133Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T23:28:17.215Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T23:28:47.307Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T23:29:17.394Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T23:29:47.487Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T23:30:17.572Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T23:30:47.664Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T23:31:17.755Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T23:31:47.843Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T23:32:17.934Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T23:32:48.031Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T23:33:18.124Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T23:33:48.221Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T23:34:18.303Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T23:34:48.394Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T23:35:18.483Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T23:35:48.572Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T23:36:18.672Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T23:36:48.747Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T23:38:41.599Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T23:40:16.233Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T23:40:46.340Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T23:41:16.430Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T23:41:46.517Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T23:42:16.607Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T23:42:46.694Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T23:43:16.772Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T23:43:46.855Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T23:44:16.973Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T23:44:47.064Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T23:45:17.159Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T23:45:47.255Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T23:46:17.331Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T23:46:47.426Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T23:47:17.517Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T23:47:47.607Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T23:48:17.711Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T23:48:47.804Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T23:49:17.890Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T23:56:14.593Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T23:56:44.686Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T23:57:18.198Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T23:57:48.292Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T23:58:18.384Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T23:58:48.486Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T23:59:18.574Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-22T23:59:48.750Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T00:18:53.720Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T00:19:23.808Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T00:19:53.906Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T00:20:23.981Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T00:20:54.087Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T00:21:24.178Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T00:21:54.295Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T00:22:24.391Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T00:22:54.480Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T00:23:24.563Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T00:23:54.642Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T00:24:24.729Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T00:24:54.868Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T00:25:49.360Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T00:26:19.460Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T00:26:49.559Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T00:27:19.649Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T00:27:49.751Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T00:28:19.847Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T00:28:49.942Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T00:29:20.030Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T00:29:50.116Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T00:30:20.205Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T00:30:50.319Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T00:31:20.425Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T00:31:50.519Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T00:32:20.647Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T00:32:50.739Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T00:33:20.824Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T00:33:50.946Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T00:34:21.030Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T00:34:51.145Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T00:35:21.228Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T00:35:51.310Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T00:36:21.396Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T00:36:51.513Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T00:37:21.607Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T00:37:51.705Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T00:38:21.785Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T00:38:51.868Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T00:39:21.973Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T00:39:52.068Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T00:40:22.158Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T00:40:52.246Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T00:41:22.334Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T00:41:52.416Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T00:42:22.497Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T00:42:52.586Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T00:43:22.664Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T00:43:52.781Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T00:44:22.873Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T00:44:52.973Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T00:45:23.067Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T00:45:53.156Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T00:46:23.243Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T00:46:53.339Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T00:47:23.463Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T00:47:53.560Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T00:48:23.656Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T00:48:53.757Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T00:49:23.845Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T00:49:53.928Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T00:50:24.035Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T00:50:54.125Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T00:51:24.219Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T00:51:54.304Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T00:52:24.379Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T00:52:54.488Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T00:53:24.577Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T00:53:54.661Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T00:54:24.759Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T00:54:54.848Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T00:55:24.938Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T00:55:55.033Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T00:56:25.119Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T00:56:55.221Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T00:57:25.314Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T00:57:55.415Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T00:58:25.501Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T00:58:55.601Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T00:59:25.690Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T00:59:55.786Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T01:00:25.867Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T01:00:55.956Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T01:01:26.044Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T01:01:56.143Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T01:02:26.232Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T01:02:56.331Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T01:03:26.426Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T01:03:56.535Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T01:04:26.629Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T01:04:56.724Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T01:05:26.826Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T01:05:56.915Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T01:06:27.008Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T01:06:57.097Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T01:07:27.188Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T01:07:57.327Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T01:08:27.423Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T01:08:57.504Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T01:09:27.586Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T01:09:57.663Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T01:10:27.745Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T01:10:57.838Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T01:11:27.936Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T01:11:58.022Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T01:12:28.115Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T01:12:58.200Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T01:14:49.413Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T02:03:26.127Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T02:03:56.223Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T02:04:26.315Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T02:04:56.409Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T02:05:26.502Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T02:05:56.597Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T02:06:26.685Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T02:06:56.774Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T02:07:26.875Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T02:07:56.960Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T02:08:27.051Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T02:08:57.149Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T02:09:27.239Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T02:09:57.324Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T02:10:27.411Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T02:10:57.506Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T02:11:27.575Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T02:11:57.642Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T02:12:27.734Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T02:12:57.818Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T02:13:27.917Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T02:13:58.004Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T02:14:28.070Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T02:14:58.207Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T02:15:28.316Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T02:15:58.413Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T02:16:28.509Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T02:16:58.614Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T02:17:28.707Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T02:17:58.796Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T02:18:28.889Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T02:18:58.984Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T02:19:29.075Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T02:19:59.199Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T02:20:29.306Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T02:20:59.395Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T02:21:29.491Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T02:21:59.608Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T02:22:29.711Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T02:22:59.816Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T02:23:29.914Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T02:24:00.009Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T02:24:30.111Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T02:25:00.216Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T02:25:30.299Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T02:26:00.478Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T02:26:30.562Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T02:27:00.657Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T02:27:30.768Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T02:28:00.858Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T02:28:30.953Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T02:29:01.041Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T02:29:31.140Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T02:30:01.226Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T02:30:31.320Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T02:31:01.418Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T02:31:31.510Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T02:32:01.600Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T02:32:31.699Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T02:33:01.781Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T02:33:31.875Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T02:34:01.974Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T02:34:32.067Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T02:35:02.169Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T02:35:32.267Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T02:36:02.374Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T02:36:32.477Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T02:37:02.575Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T02:37:32.668Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T02:38:02.758Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T02:38:32.853Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T02:39:02.944Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T02:39:33.039Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T02:40:03.129Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T02:40:33.222Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T02:41:03.318Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T02:41:33.401Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T02:42:03.501Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T02:42:33.606Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T02:43:03.709Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T02:43:33.811Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T02:44:03.909Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T02:44:34.002Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T02:45:04.107Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T02:45:34.206Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T02:46:04.301Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T02:46:34.391Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T02:47:04.483Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T02:47:34.579Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T02:48:04.661Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T02:48:34.764Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T02:49:04.872Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T02:49:34.966Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T02:50:05.054Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T02:50:35.141Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T02:51:05.240Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T02:51:35.342Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T02:52:05.448Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T02:52:35.561Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T02:53:05.649Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T02:53:35.750Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T02:54:05.845Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T02:54:35.965Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T02:55:06.066Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T02:55:36.176Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T02:56:06.272Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T02:56:36.342Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T02:57:06.449Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T02:57:36.537Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T02:58:06.626Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T02:58:36.721Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T02:59:06.821Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T02:59:36.943Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T03:00:07.031Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T03:00:37.129Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T03:01:07.243Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T03:01:37.367Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T03:02:07.501Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T03:02:37.597Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T03:03:07.682Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T03:03:37.790Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T03:04:07.868Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T03:04:37.978Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T03:05:08.087Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T03:05:38.178Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T03:06:08.271Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T03:06:38.365Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T03:07:08.457Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T03:07:38.546Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T03:08:08.656Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T03:08:38.739Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T03:09:08.816Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T03:09:38.902Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T03:10:08.994Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T03:10:39.093Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T03:11:09.187Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T03:11:39.290Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T03:12:09.379Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T03:12:39.499Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T03:13:09.604Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T03:13:39.697Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T03:14:09.821Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T03:14:39.926Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T03:15:10.024Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T03:15:40.119Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T03:16:10.225Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T03:16:40.327Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T03:17:10.409Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T03:17:40.497Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T03:18:10.600Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T03:18:40.704Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T03:19:10.813Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T03:19:40.914Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T03:20:11.011Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T03:20:41.104Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T03:21:11.216Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T03:21:41.311Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T03:22:11.403Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T03:22:41.504Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T03:23:11.602Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T03:23:41.710Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T03:24:11.775Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T03:24:41.873Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T03:25:11.967Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T03:25:42.060Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T03:26:12.150Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T03:26:42.258Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T03:27:12.345Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T03:27:42.433Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T03:28:12.532Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T03:28:42.629Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T03:29:12.713Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T03:29:42.801Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T03:30:12.893Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T03:30:42.984Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T03:31:13.068Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T03:31:43.167Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T03:32:13.248Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T03:32:43.335Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T03:33:13.420Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T03:33:43.522Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T03:34:13.596Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T03:34:43.690Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T03:35:13.779Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T03:35:43.864Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T03:36:13.946Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T03:36:44.039Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T03:37:14.135Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T03:37:44.234Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T03:38:14.326Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T03:38:44.417Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T03:39:14.516Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T03:39:44.612Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T03:40:14.717Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T03:40:44.794Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T03:41:14.889Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T03:41:44.973Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T03:42:15.066Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T03:42:45.150Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T03:43:15.248Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T03:43:45.344Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T03:44:15.426Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T03:44:45.504Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T03:45:15.592Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T03:45:45.699Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T03:46:15.798Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T03:46:45.896Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T03:47:15.993Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T03:47:46.077Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T03:48:16.176Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T03:48:46.261Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T03:49:16.341Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T03:49:46.430Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T03:50:16.530Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T03:50:46.638Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T03:51:16.719Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T03:51:46.821Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T03:52:16.910Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T03:52:47.003Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T03:53:17.099Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T03:53:47.193Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T03:54:17.279Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T03:54:47.364Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T03:55:17.448Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T03:55:47.546Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T03:56:17.642Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T03:56:47.737Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T03:57:17.847Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T03:57:47.945Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T03:58:18.039Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T03:58:48.134Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T03:59:18.213Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T03:59:48.308Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T04:00:18.392Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T04:00:48.484Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T04:01:18.548Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T04:01:48.665Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T04:02:18.731Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T04:02:48.828Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T04:03:18.896Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T04:03:48.981Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T04:04:19.051Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T04:04:49.142Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T04:05:19.238Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T04:05:49.331Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T04:06:19.417Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T04:06:49.508Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T04:07:19.607Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T04:07:49.684Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T04:08:19.774Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T04:08:49.867Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T04:09:19.947Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T04:09:50.035Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T04:10:20.123Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T04:10:50.204Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T04:11:20.288Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T04:11:50.380Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T04:12:20.472Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T04:12:50.555Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T04:13:20.649Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T04:13:50.738Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T04:14:20.830Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T04:14:50.917Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T04:15:21.008Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T04:15:51.115Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T04:16:21.210Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T04:16:51.295Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T04:17:21.385Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T04:17:51.466Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T04:18:21.554Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T04:18:51.639Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T04:19:21.724Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T04:19:51.810Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T04:20:21.891Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T04:20:51.972Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T04:21:22.070Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T04:21:52.168Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T04:22:22.241Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T04:22:52.329Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T04:23:22.421Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T04:23:52.513Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T04:24:22.608Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T04:24:52.698Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T04:25:22.780Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T04:25:52.861Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T04:26:22.950Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T04:26:53.043Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T04:27:23.148Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T04:27:53.239Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T04:28:23.331Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T04:28:53.415Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T04:29:23.500Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T04:29:53.596Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T04:30:23.689Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T04:30:53.768Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T04:31:23.859Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T04:31:53.942Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T04:32:24.031Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T04:32:54.119Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T04:33:24.233Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T04:33:54.332Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T04:34:24.425Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T04:34:54.518Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T04:35:24.606Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T04:35:54.696Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T04:36:24.796Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T04:36:54.886Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T04:37:24.979Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T04:37:55.080Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T04:38:25.164Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T04:38:55.258Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T04:39:25.351Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T04:39:55.452Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T04:40:25.543Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T04:40:55.631Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T04:41:25.719Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T04:41:55.808Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T04:42:25.891Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T04:42:55.986Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T04:43:26.070Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T04:43:56.154Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T04:44:26.250Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T04:44:56.341Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T04:45:26.423Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T04:45:56.532Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T04:46:26.629Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T04:46:56.735Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T04:47:26.829Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T04:47:56.922Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T04:48:27.007Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T04:48:57.101Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T04:49:27.188Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T04:49:57.291Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T04:50:27.376Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T04:50:57.460Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T04:51:27.555Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T04:51:57.644Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T04:52:27.729Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T04:52:57.814Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T04:53:27.917Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T04:53:58.003Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T04:54:28.096Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T04:54:58.187Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T04:55:28.267Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T04:55:58.351Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T04:56:28.438Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T04:56:58.519Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T04:57:28.611Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T04:57:58.693Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T04:58:28.788Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T04:58:58.867Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T04:59:28.952Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T04:59:59.048Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T05:00:29.134Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T05:00:59.211Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T05:01:29.298Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T05:01:59.385Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T05:02:29.474Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T05:02:59.577Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T05:03:29.675Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T05:03:59.765Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T05:04:29.854Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T05:04:59.941Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T05:05:30.034Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T05:06:00.124Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T05:06:30.197Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T05:07:00.298Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T05:07:30.383Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T05:08:00.478Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T05:08:30.570Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T05:09:00.664Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T05:09:30.768Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T05:10:00.853Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T05:10:30.935Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T05:11:01.024Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T05:11:31.121Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T05:12:01.213Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T05:12:31.315Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T05:13:01.407Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T05:13:31.499Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T05:14:01.599Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T05:14:31.692Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T05:15:01.787Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T05:15:31.880Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T05:16:01.976Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T05:16:32.066Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T05:17:02.144Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T05:17:32.236Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T05:18:02.327Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T05:18:32.425Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T05:19:02.489Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T05:19:32.586Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T05:20:02.675Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T05:20:32.759Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T05:21:02.839Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T05:21:32.938Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T05:22:03.016Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T05:22:33.101Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T05:23:03.193Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T05:23:33.281Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T05:24:03.393Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T05:24:33.487Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T05:25:03.577Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T05:25:33.671Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T05:26:03.777Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T05:26:33.859Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T05:27:03.938Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T05:27:34.029Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T05:28:04.123Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T05:28:34.218Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T05:29:04.315Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T05:29:34.408Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T05:30:04.493Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T05:30:34.589Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T05:31:04.682Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T05:31:34.779Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T05:32:04.870Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T05:32:34.958Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T05:33:05.050Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T05:33:35.137Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T05:34:05.230Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T05:34:35.324Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T05:35:05.408Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T05:35:35.497Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T05:36:05.591Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T05:36:35.691Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T05:37:05.778Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T05:37:35.873Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T05:38:05.974Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T05:38:36.063Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T05:39:06.147Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T05:39:36.245Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T05:40:06.338Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T05:40:36.431Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T05:41:06.519Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T05:41:36.617Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T05:42:06.709Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T05:42:36.791Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T05:43:06.867Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T05:43:36.956Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T05:44:07.049Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T05:44:37.135Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T05:45:07.240Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T05:45:37.335Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T05:46:07.418Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T05:46:37.512Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T05:47:07.595Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T05:47:37.680Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T05:48:07.772Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T05:48:37.861Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T05:49:07.957Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T05:49:38.041Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T05:50:08.139Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T05:50:38.229Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T05:51:08.320Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T05:51:38.408Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T05:52:08.496Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T05:52:38.601Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T05:53:08.694Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T05:53:38.786Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T05:54:08.874Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T05:54:38.964Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T05:55:09.066Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T05:55:39.158Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T05:56:09.251Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T05:56:39.354Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T05:57:09.442Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T05:57:39.531Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T05:58:09.641Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T05:58:39.737Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T05:59:09.827Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T05:59:39.918Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T06:00:10.005Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T06:00:40.117Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T06:01:10.218Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T06:01:40.309Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T06:02:10.403Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T06:02:40.497Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T06:03:10.592Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T06:03:40.678Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T06:04:10.767Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T06:04:40.851Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T06:05:10.944Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T06:05:41.029Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T06:06:11.109Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T06:06:41.168Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T06:07:11.224Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T06:07:41.276Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T06:08:11.333Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T06:08:41.386Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T06:09:11.441Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T06:09:41.498Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T06:10:11.554Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T06:10:41.604Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T06:11:11.655Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T06:11:41.715Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T06:12:11.765Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T06:12:41.819Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T06:13:11.871Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T06:13:41.925Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T06:14:11.977Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T06:14:42.040Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T06:15:12.096Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T06:15:42.148Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T06:16:12.210Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T06:16:42.261Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T06:17:12.312Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T06:17:42.362Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T06:18:12.420Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T06:18:42.473Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T06:19:12.531Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T06:19:42.581Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T06:20:12.618Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T06:20:42.670Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T06:21:12.713Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T06:21:42.767Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T06:22:12.815Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T06:22:42.871Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T06:23:12.920Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T06:23:42.972Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T06:24:13.024Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T06:24:43.075Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T06:25:13.127Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T06:25:43.199Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T06:26:13.263Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T06:26:43.321Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T06:27:13.378Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T06:27:43.429Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T06:28:13.493Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T06:28:43.560Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T06:29:13.640Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T06:29:43.691Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T06:30:13.742Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T06:30:43.802Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T06:31:13.849Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T06:31:43.901Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T06:32:13.956Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T06:32:44.009Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T06:33:14.080Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T06:33:44.131Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T06:34:14.179Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T06:34:44.235Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T06:35:14.287Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T06:35:44.338Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T06:36:14.388Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T06:36:44.441Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T06:37:14.487Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T06:37:44.563Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T06:38:14.615Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T06:38:44.675Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T06:39:14.740Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T06:39:44.792Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T06:40:14.877Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T06:40:44.927Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T06:41:15.002Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T06:41:45.090Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T06:42:15.137Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T06:42:45.207Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T06:43:15.276Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T06:43:45.343Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T06:44:15.422Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T06:44:45.506Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T06:45:15.584Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T06:45:45.668Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T06:46:15.744Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T06:46:45.837Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T06:47:15.927Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T06:47:46.031Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T06:48:16.135Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T06:48:46.227Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T06:49:16.329Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T06:49:46.417Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T06:50:16.524Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T06:50:46.608Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T06:51:16.688Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T06:51:46.794Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T06:52:16.933Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T06:52:47.036Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T06:53:17.131Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T06:53:47.217Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T06:54:17.310Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T06:54:47.400Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T06:55:17.490Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T06:55:47.591Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T06:56:17.688Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T06:56:47.784Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T06:57:17.869Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T06:57:47.958Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T06:58:18.033Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T07:02:21.516Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T07:15:16.480Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T07:15:46.570Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T07:32:28.177Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T07:37:34.371Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T07:46:22.642Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T08:38:27.546Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T08:59:49.080Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T09:17:23.158Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T09:58:35.149Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T10:00:32.108Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T10:01:02.201Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T10:03:38.321Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T10:36:13.845Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T11:01:53.229Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T11:35:49.926Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T11:42:02.704Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T12:02:45.795Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T12:51:47.068Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T13:19:50.588Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T14:04:45.688Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T14:10:56.533Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T14:11:26.630Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T14:11:56.735Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T14:12:26.804Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T14:12:56.893Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T15:36:49.132Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T17:06:19.792Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T17:06:49.893Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T18:11:20.299Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T18:56:48.434Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T18:57:18.530Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T19:54:49.555Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T19:55:19.657Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T20:57:42.687Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T20:58:12.768Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T21:58:41.684Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T21:59:11.757Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T22:59:38.207Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-23T23:00:08.299Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-24T00:00:35.384Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-24T00:01:05.463Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-24T01:01:41.636Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-24T01:02:11.728Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-24T02:02:44.722Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-24T02:03:14.804Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-24T03:03:45.984Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-24T03:04:16.088Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-24T03:50:25.397Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-24T03:50:55.487Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-24T04:05:03.839Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-24T04:07:48.886Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-24T04:08:18.968Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-24T04:11:01.906Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-24T05:05:49.179Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-24T05:06:19.287Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-24T05:10:24.488Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-24T05:44:01.394Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-24T06:07:00.847Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-24T06:22:30.946Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-24T06:58:51.086Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-24T07:08:08.073Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-24T07:39:58.772Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-24T08:09:06.256Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-24T08:43:34.420Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-24T09:01:54.605Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-24T09:10:09.700Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-24T10:09:19.976Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-24T10:09:50.066Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-24T10:17:23.943Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-24T10:29:16.319Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-24T10:29:46.418Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-24T10:30:36.422Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-24T11:03:58.165Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-24T11:11:13.902Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-24T12:11:57.749Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-24T12:20:56.510Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-24T12:21:26.596Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-24T13:12:58.693Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-24T13:47:22.926Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-24T14:05:31.121Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-24T14:13:54.338Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-24T14:14:24.429Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-24T14:51:14.029Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-24T14:51:44.128Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-24T15:15:09.103Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-24T15:31:27.225Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-24T16:55:28.649Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-24T17:33:27.920Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-24T17:33:58.013Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-24T17:34:28.111Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-24T17:45:09.729Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-24T17:48:12.749Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-24T19:10:37.500Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-24T19:11:07.577Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-24T20:21:46.365Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-24T20:22:16.455Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-24T20:34:01.504Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-24T20:34:31.606Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-24T20:52:25.243Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-24T21:11:35.048Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-24T21:12:05.133Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-24T21:34:57.495Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-24T21:35:27.600Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-24T22:12:46.949Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-24T22:23:16.214Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-24T23:13:48.393Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T00:03:14.414Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T00:12:32.317Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T00:14:46.211Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T00:15:16.310Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T00:41:18.798Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T00:42:42.960Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T01:15:46.002Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T01:16:16.085Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T02:01:03.961Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T02:08:05.581Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T02:08:35.662Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T02:17:04.071Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T03:05:45.389Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T03:06:40.364Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T03:07:11.827Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T03:07:41.933Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T03:08:31.968Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T03:09:26.906Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T03:09:56.995Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T03:18:05.165Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T04:09:06.544Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T04:19:02.279Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T04:46:51.966Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T04:47:22.063Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T05:19:47.740Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T05:20:17.862Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T05:55:50.345Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T05:56:20.441Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T05:56:50.542Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T05:57:20.646Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T05:57:50.731Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T05:58:20.825Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T05:58:50.927Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T05:59:21.014Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T05:59:51.115Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T06:00:21.209Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T06:00:51.298Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T06:01:21.406Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T06:01:51.501Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T06:02:21.588Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T06:02:51.682Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T06:03:21.782Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T06:03:51.879Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T06:04:21.985Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T06:04:52.079Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T06:05:22.167Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T06:05:52.260Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T06:06:22.350Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T06:06:52.435Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T06:07:22.538Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T06:07:52.626Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T06:08:22.725Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T06:08:52.817Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T06:09:22.911Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T06:09:53.015Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T06:10:23.101Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T06:10:53.190Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T06:11:23.283Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T06:11:53.370Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T06:12:23.464Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T06:12:53.547Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T06:13:23.635Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T06:13:53.731Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T06:14:23.836Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T06:14:53.944Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T06:15:24.037Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T06:15:54.134Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T06:16:24.241Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T06:16:54.339Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T06:17:24.423Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T06:17:54.524Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T06:18:24.614Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T06:18:54.724Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T06:19:24.814Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T06:19:54.916Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T06:20:25.009Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T06:20:55.112Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T06:21:25.213Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T06:21:55.303Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T06:22:25.395Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T06:22:55.490Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T06:23:25.596Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T06:23:55.698Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T06:24:25.786Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T06:24:55.862Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T06:25:25.961Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T06:25:56.056Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T06:26:26.153Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T06:26:56.253Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T06:27:26.345Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T06:27:56.450Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T06:28:26.551Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T06:28:56.636Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T06:29:26.738Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T06:29:56.834Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T06:30:26.943Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T06:30:57.033Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T06:31:27.115Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T06:31:57.210Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T06:32:27.298Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T06:32:57.399Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T06:33:27.487Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T06:33:57.585Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T06:34:27.676Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T06:34:57.778Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T06:35:27.866Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T06:35:57.954Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T06:36:28.056Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T06:36:58.144Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T06:37:28.232Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T06:37:58.325Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T06:38:28.424Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T06:38:58.514Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T06:39:28.604Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T06:39:58.708Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T06:40:28.787Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T06:40:58.891Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T06:41:28.989Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T06:41:59.085Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T06:42:29.208Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T06:42:59.296Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T06:43:29.389Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T06:43:59.486Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T06:44:29.583Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T06:44:59.667Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T06:45:29.764Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T06:45:59.869Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T06:46:29.969Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T06:47:00.069Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T06:47:30.165Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T06:48:00.261Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T06:48:30.357Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T06:49:00.454Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T06:49:30.560Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T06:50:00.655Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T06:50:30.741Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T06:51:00.834Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T06:51:30.921Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T06:52:01.001Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T06:52:31.086Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T06:53:01.190Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T06:53:31.273Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T06:54:01.364Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T06:54:31.459Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T06:55:01.545Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T06:55:31.639Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T06:56:01.731Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T07:02:55.581Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T07:03:25.669Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T07:03:55.763Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T07:04:25.852Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T07:04:55.956Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T07:05:26.051Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T07:05:56.152Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T07:06:26.246Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T07:06:56.341Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T07:07:26.429Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T07:40:41.152Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T07:41:11.237Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T07:41:41.318Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T07:42:11.408Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T07:46:59.031Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T07:51:52.871Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T07:52:22.958Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T07:52:53.049Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T07:53:23.132Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T07:59:21.624Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T07:59:51.724Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T08:27:18.189Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T09:43:30.377Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T10:07:39.193Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T10:19:44.918Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T10:35:44.492Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T11:00:51.383Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T11:45:42.471Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T12:20:00.688Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T12:46:46.044Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T13:21:20.861Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T13:47:46.231Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T14:48:36.046Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T14:49:06.145Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T15:13:45.094Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T16:53:38.112Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T17:26:40.122Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T17:43:16.114Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T18:40:44.801Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T18:41:14.852Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T20:02:06.574Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T20:41:50.598Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T21:17:45.953Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T21:18:16.059Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T21:27:29.156Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T21:27:59.243Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T21:32:18.385Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T21:32:48.485Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T21:34:28.085Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T21:42:43.569Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T21:45:40.895Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T21:46:10.964Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T21:46:41.051Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T21:47:11.140Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T21:47:41.220Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T21:48:11.294Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T21:48:41.384Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T21:49:11.474Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T21:49:41.576Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T21:50:11.660Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T21:50:41.752Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T21:51:11.835Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T21:51:41.916Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T21:52:12.008Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T21:52:42.091Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T21:53:12.164Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T21:53:42.257Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T21:54:12.347Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T21:54:42.475Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T21:55:12.583Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T21:55:42.693Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T21:56:12.792Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T21:56:42.899Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T21:57:12.987Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T21:57:43.084Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T21:58:13.176Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T21:58:43.281Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T21:59:13.375Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T21:59:43.468Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T22:00:13.565Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T22:00:43.649Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T22:01:13.750Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T22:01:43.845Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T22:02:13.940Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T22:02:44.049Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T22:03:14.144Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T22:03:44.237Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T22:04:14.330Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T22:04:44.423Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T22:05:14.527Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T22:05:44.630Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T22:06:14.711Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T22:06:44.802Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T22:07:14.897Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T22:07:44.989Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T22:08:15.087Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T22:08:45.191Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T22:09:15.285Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T22:09:45.372Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T22:10:15.458Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T22:10:45.556Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T22:11:15.643Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T22:11:45.737Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T22:12:15.828Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T22:12:45.914Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T22:13:16.001Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T22:13:46.098Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T22:14:16.203Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T22:14:46.289Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T22:15:16.375Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T22:15:46.460Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T22:16:16.556Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T22:16:46.651Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T22:17:16.739Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T22:17:46.859Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T22:18:16.946Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T22:18:47.040Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T22:19:17.138Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T22:19:47.227Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T22:20:17.327Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T22:20:47.428Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T22:21:17.522Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T22:21:47.612Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T22:22:17.705Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T22:22:47.807Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T22:23:17.900Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T22:23:47.999Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T22:24:18.088Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T22:24:48.176Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T22:25:18.279Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T22:25:48.366Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T22:26:18.472Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T22:26:48.562Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T22:27:18.663Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T22:27:48.759Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T22:28:18.847Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T22:28:48.946Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T22:29:19.038Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T22:29:49.126Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T22:30:19.218Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T22:30:49.301Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T22:31:19.400Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T22:31:49.486Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T22:32:19.570Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T22:32:49.669Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T22:33:19.772Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T22:33:49.863Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T22:34:19.944Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T22:34:50.034Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T22:35:20.125Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T22:35:50.228Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T22:36:20.325Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T22:36:50.427Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T22:37:20.518Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T22:37:50.605Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T22:38:20.701Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T22:38:50.791Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T22:39:20.881Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T22:39:50.974Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T22:40:21.074Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T22:40:51.171Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T22:41:21.262Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T22:41:51.351Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T22:42:21.458Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T22:42:51.540Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T22:43:21.628Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T22:43:51.713Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T22:44:21.792Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T22:44:51.881Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T22:45:21.975Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T22:45:52.073Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T22:46:22.171Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T22:46:52.258Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T22:47:22.350Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T22:47:52.448Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T22:48:22.528Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T22:48:52.618Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T22:49:22.712Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T22:49:52.803Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T22:50:22.881Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T22:50:52.974Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T22:51:23.064Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T22:51:53.165Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T22:52:23.253Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T22:52:53.343Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T22:53:23.424Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T22:53:53.524Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T22:54:23.618Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T22:54:53.709Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T22:55:23.798Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T22:55:53.889Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T22:56:23.972Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T22:56:54.067Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T22:57:24.156Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T22:57:54.241Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T22:58:24.343Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T22:58:54.434Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T22:59:24.514Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T22:59:54.597Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T23:00:24.682Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T23:00:54.770Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T23:01:24.854Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T23:01:54.938Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T23:02:25.028Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T23:02:55.115Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T23:03:25.192Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T23:03:55.291Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T23:04:25.376Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T23:04:55.460Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T23:05:25.547Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T23:05:55.635Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T23:06:25.734Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T23:06:55.831Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T23:07:25.922Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T23:07:56.011Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T23:08:26.101Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T23:08:56.184Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T23:09:26.277Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T23:09:56.372Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T23:10:26.458Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T23:10:56.539Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T23:11:26.625Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T23:11:56.729Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T23:12:26.828Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T23:12:56.915Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T23:13:26.991Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T23:13:57.091Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T23:14:27.171Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T23:14:57.259Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T23:15:27.329Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T23:15:57.412Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T23:16:27.476Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T23:16:57.567Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T23:17:27.628Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T23:17:57.717Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T23:18:27.787Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T23:18:57.877Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T23:19:27.954Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T23:19:58.049Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T23:20:28.142Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T23:20:58.245Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T23:21:28.328Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T23:21:58.417Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T23:22:28.510Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T23:22:58.602Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T23:23:28.703Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T23:23:58.796Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T23:24:28.890Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T23:24:58.977Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T23:25:29.064Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T23:25:59.159Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T23:26:29.260Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T23:26:59.341Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T23:27:29.432Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T23:27:59.524Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T23:28:29.617Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T23:28:59.707Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T23:29:29.822Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T23:29:59.913Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T23:30:30.002Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T23:31:00.090Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T23:31:30.175Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T23:32:00.263Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T23:32:30.360Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T23:33:00.446Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T23:33:30.535Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T23:34:00.633Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T23:34:30.714Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T23:35:00.796Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T23:35:30.877Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T23:36:00.965Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T23:36:31.053Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T23:37:01.149Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T23:37:31.237Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T23:38:01.324Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T23:38:31.423Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T23:39:01.515Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T23:39:31.605Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T23:40:01.697Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T23:40:31.783Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T23:41:01.869Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T23:41:31.962Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T23:42:02.053Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T23:45:56.496Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T23:54:45.628Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T23:55:29.290Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T23:56:41.280Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T23:57:11.374Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T23:57:41.461Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T23:58:11.547Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T23:58:41.630Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T23:59:11.736Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-25T23:59:41.828Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T00:00:11.919Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T00:00:42.020Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T00:01:12.103Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T00:01:42.192Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T00:02:12.285Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T00:02:42.372Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T00:03:12.457Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T00:03:42.549Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T00:04:12.633Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T00:04:42.716Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T00:05:12.806Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T00:05:42.899Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T00:06:12.986Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T00:06:43.075Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T00:07:13.160Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T00:07:43.252Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T00:08:13.334Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T00:08:43.414Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T00:09:13.499Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T00:09:43.591Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T00:10:13.693Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T00:10:43.787Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T00:11:13.873Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T00:11:43.958Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T00:12:14.040Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T00:12:44.133Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T00:13:14.224Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T00:13:44.313Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T00:14:14.406Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T00:14:44.495Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T00:15:14.588Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T00:15:44.669Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T00:16:14.761Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T00:16:44.845Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T00:17:14.936Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T00:17:45.018Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T00:18:15.105Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T00:18:45.196Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T00:19:15.298Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T00:19:45.389Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T00:20:15.486Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T00:20:45.571Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T00:21:15.657Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T00:21:45.739Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T00:22:15.834Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T00:22:45.937Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T00:23:16.037Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T00:23:46.135Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T00:26:09.300Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T00:26:39.383Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T00:27:09.476Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T00:27:39.557Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T00:28:09.648Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T00:28:39.748Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T00:29:09.849Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T00:29:39.935Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T00:30:10.034Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T00:30:40.128Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T00:31:10.210Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T00:31:40.301Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T00:32:10.395Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T00:32:40.477Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T00:33:10.570Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T00:33:40.662Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T00:34:10.758Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T00:34:40.841Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T00:35:10.923Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T00:35:41.016Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T00:36:11.116Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T00:36:41.199Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T00:37:11.289Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T00:37:41.377Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T00:38:11.466Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T00:38:41.569Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T00:39:11.677Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T00:39:41.767Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T00:40:11.848Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T00:40:41.945Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T00:41:12.036Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T00:41:42.122Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T00:42:12.219Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T00:42:42.308Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T00:43:12.397Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T00:43:42.489Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T00:44:12.580Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T00:44:42.670Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T00:45:12.755Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T00:45:42.843Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T00:46:12.936Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T00:46:43.026Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T00:47:13.125Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T00:47:43.207Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T00:48:13.293Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T00:48:43.376Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T00:49:13.484Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T00:49:43.587Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T00:50:13.684Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T00:50:43.790Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T00:51:13.880Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T00:51:43.973Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T00:52:14.059Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T00:52:44.143Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T00:53:14.241Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T00:53:44.331Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T00:54:14.418Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T00:54:44.506Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T00:55:14.596Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T00:55:44.686Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T00:56:14.783Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T00:56:44.876Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T00:57:14.959Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T00:57:45.072Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T00:58:15.178Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T00:58:45.277Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T00:59:15.370Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T00:59:45.465Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T01:00:15.563Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T01:00:45.653Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T01:01:15.750Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T01:01:45.840Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T01:02:15.937Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T01:02:46.004Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T01:03:16.095Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T01:03:46.184Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T01:04:16.306Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T01:04:46.400Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T01:05:16.495Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T01:05:46.587Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T01:06:16.671Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T01:06:46.762Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T01:07:16.842Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T01:07:46.927Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T01:08:17.020Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T01:08:47.106Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T01:09:17.200Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T01:09:47.290Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T01:10:17.394Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T01:10:47.484Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T01:11:17.567Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T01:11:47.662Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T01:12:17.758Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T01:12:47.852Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T01:13:17.944Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T01:13:48.052Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T01:14:18.134Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T01:14:48.225Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T01:15:18.317Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T01:15:48.421Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T01:16:18.512Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T01:16:48.608Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T01:17:18.708Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T01:17:48.794Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T01:18:18.890Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T01:18:48.980Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T01:19:19.066Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T01:19:49.158Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T01:20:19.248Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T01:20:49.334Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T01:21:19.413Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T01:21:49.491Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T01:22:19.572Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T01:22:49.649Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T01:23:19.721Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T01:23:49.795Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T01:24:19.874Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T01:24:49.956Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T01:25:20.038Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T01:25:50.135Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T01:26:20.226Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T01:26:50.316Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T01:27:20.403Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T01:27:50.499Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T01:28:20.595Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T01:28:50.681Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T01:29:20.766Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T01:29:50.870Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T01:30:20.963Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T01:30:51.057Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T01:31:21.142Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T01:31:51.225Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T01:32:21.314Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T01:32:51.395Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T01:33:21.486Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T01:33:51.578Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T01:34:21.666Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T01:34:51.761Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T01:35:21.862Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T01:35:51.945Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T01:36:22.043Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T01:36:52.145Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T01:37:22.230Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T01:37:52.317Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T01:38:22.418Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T01:38:52.513Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T01:39:22.600Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T01:39:52.696Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T01:40:22.784Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T01:40:52.877Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T01:41:22.965Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T01:41:53.065Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T01:42:23.156Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T01:42:53.249Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T01:43:23.329Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T01:43:53.423Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T01:44:23.515Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T01:44:53.609Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T01:45:23.698Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T01:45:53.787Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T01:46:23.871Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T01:46:53.962Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T01:47:24.058Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T01:47:54.148Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T01:48:24.244Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T01:48:54.336Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T01:49:24.424Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T01:49:54.503Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T01:50:24.601Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T01:50:54.688Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T01:51:24.779Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T01:51:54.869Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T01:52:24.956Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T01:52:55.041Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T01:53:25.140Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T01:53:55.234Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T01:54:25.324Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T01:54:55.413Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T01:55:25.501Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T01:55:55.589Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T01:56:25.676Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T01:56:55.756Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T01:57:25.852Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T01:57:55.952Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T01:58:26.045Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T01:58:56.132Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T01:59:26.228Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T01:59:56.301Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T02:00:26.381Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T02:00:56.478Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T02:01:26.572Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T02:01:56.661Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T02:02:26.762Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T02:02:56.855Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T02:03:26.947Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T02:03:57.046Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T02:04:27.138Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T02:04:57.216Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T02:05:27.298Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T02:05:57.389Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T02:06:27.484Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T02:06:57.585Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T02:07:27.671Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T02:07:57.761Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T02:08:27.846Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T02:08:57.940Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T02:09:28.043Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T02:09:58.141Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T02:10:28.228Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T02:10:58.323Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T02:11:28.421Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T02:11:58.518Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T02:12:28.617Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T02:12:58.706Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T02:13:28.800Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T02:13:58.897Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T02:14:28.997Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T02:14:59.107Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T02:15:29.209Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T02:15:59.303Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T02:16:29.390Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T02:16:59.478Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T02:17:29.562Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T02:17:59.655Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T02:18:29.753Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T02:18:59.842Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T02:19:29.933Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T02:20:00.028Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T02:20:30.135Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T02:21:00.223Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T02:21:30.307Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T02:22:00.405Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T02:22:30.492Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T02:23:00.576Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T02:23:30.674Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T02:24:00.729Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T02:24:30.811Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T02:25:00.917Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T02:25:31.000Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T02:26:01.083Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T02:26:31.183Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T02:27:01.267Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T02:27:31.362Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T02:28:01.446Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T02:28:31.542Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T02:29:01.646Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T02:29:31.617Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T02:30:01.819Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T02:30:31.913Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T02:31:02.011Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T02:31:32.109Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T02:32:02.186Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T02:32:32.278Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T02:33:02.369Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T02:33:32.470Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T02:34:02.555Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T02:34:32.648Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T02:35:02.730Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T02:35:32.819Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T02:36:02.913Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T02:36:33.003Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T02:37:03.101Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T02:37:33.190Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T02:38:03.277Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T02:38:33.357Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T02:39:03.444Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T02:39:33.539Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T02:40:03.630Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T02:40:33.730Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T02:41:03.828Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T02:41:33.910Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T02:42:04.001Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T02:42:34.091Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T02:43:04.170Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T02:43:34.260Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T02:44:04.366Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T02:44:34.469Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T02:45:04.565Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T02:45:34.665Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T02:46:04.757Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T02:46:34.864Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T02:47:04.965Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T02:47:35.075Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T02:48:05.163Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T02:48:35.262Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T02:49:05.355Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T02:49:35.454Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T02:50:05.535Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T02:50:35.632Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T02:51:05.720Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T02:51:35.806Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T02:52:05.902Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T02:52:35.991Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T02:53:06.082Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T02:53:36.179Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T02:54:06.274Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T02:54:36.366Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T02:55:06.465Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T02:55:36.557Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T02:56:06.651Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T02:56:36.733Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T02:57:06.829Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T02:57:36.932Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T02:58:07.025Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T02:58:37.126Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T02:59:07.229Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T02:59:37.318Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T03:00:07.412Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T03:00:37.493Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T03:01:07.572Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T03:01:37.678Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T03:02:07.775Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T03:02:37.868Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T03:03:07.971Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T03:03:38.074Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T03:04:08.171Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T03:04:38.259Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T03:05:08.373Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "9ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T03:05:38.498Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T03:06:08.604Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T03:06:38.726Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T03:07:08.821Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T03:07:38.914Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T03:08:08.996Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T03:08:39.099Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T03:09:09.187Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T03:09:39.272Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T03:10:09.360Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T03:10:39.452Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T03:11:09.542Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T03:11:39.632Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T03:12:09.727Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T03:12:39.808Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T03:13:09.895Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T03:13:39.987Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T03:14:10.083Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T03:14:40.167Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T03:15:10.265Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T03:15:40.355Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T03:16:10.448Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T03:16:40.556Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T03:17:10.647Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T03:17:40.727Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T03:18:10.815Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T03:18:40.908Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T03:19:11.004Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T03:19:41.089Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T03:20:11.190Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T03:20:41.292Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T03:21:11.383Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T03:21:41.474Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T03:22:11.561Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T03:22:41.658Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T03:23:11.748Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T03:23:41.832Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T03:24:11.915Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T03:24:42.003Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T03:25:12.086Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T03:25:42.178Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T03:26:12.261Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T03:26:42.316Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T03:27:12.363Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T03:27:42.420Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T03:28:12.464Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T03:28:42.510Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T03:29:12.557Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T03:29:42.597Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T03:30:12.644Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T03:30:42.689Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T03:30:58.092Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-01-26T03:31:02.900Z] [ERROR] ❌ 아이디 또는 비밀번호가 올바르지 않습니다. - Context: { - "code": "INTERNAL_ERROR", - "stack": "AppError: 아이디 또는 비밀번호가 올바르지 않습니다.\n at errorHandler (/usr/src/app/middlewares/errorHandler.js:51:13)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:71:5)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/src/app/node_modules/express/lib/router/index.js:280:10)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:67:12)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)", - "url": "/api/auth/login", - "method": "POST", - "user": "anonymous" -} -[2026-01-26T03:31:02.902Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 500, - "duration": "29ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-01-26T03:31:12.748Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T03:31:14.495Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T03:31:21.277Z] [ERROR] ❌ 아이디 또는 비밀번호가 올바르지 않습니다. - Context: { - "code": "INTERNAL_ERROR", - "stack": "AppError: 아이디 또는 비밀번호가 올바르지 않습니다.\n at errorHandler (/usr/src/app/middlewares/errorHandler.js:51:13)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:71:5)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/src/app/node_modules/express/lib/router/index.js:280:10)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:67:12)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)", - "url": "/api/auth/login", - "method": "POST", - "user": "anonymous" -} -[2026-01-26T03:31:21.278Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 500, - "duration": "75ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T03:31:42.804Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T03:32:12.869Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T03:32:42.919Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T03:33:12.974Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T03:33:43.024Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T03:34:13.086Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T03:34:43.137Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T03:35:13.201Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T03:35:43.252Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T03:36:01.423Z] [ERROR] ❌ 아이디 또는 비밀번호가 올바르지 않습니다. - Context: { - "code": "INTERNAL_ERROR", - "stack": "AppError: 아이디 또는 비밀번호가 올바르지 않습니다.\n at errorHandler (/usr/src/app/middlewares/errorHandler.js:51:13)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:71:5)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/src/app/node_modules/express/lib/router/index.js:280:10)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:67:12)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)", - "url": "/api/auth/login", - "method": "POST", - "user": "anonymous" -} -[2026-01-26T03:36:01.426Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 500, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-01-26T03:36:11.834Z] [ERROR] ❌ 아이디 또는 비밀번호가 올바르지 않습니다. - Context: { - "code": "INTERNAL_ERROR", - "stack": "AppError: 아이디 또는 비밀번호가 올바르지 않습니다.\n at errorHandler (/usr/src/app/middlewares/errorHandler.js:51:13)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:71:5)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/src/app/node_modules/express/lib/router/index.js:280:10)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:67:12)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)", - "url": "/api/auth/login", - "method": "POST", - "user": "anonymous" -} -[2026-01-26T03:36:11.835Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 500, - "duration": "87ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-01-26T03:36:13.323Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T03:36:43.391Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T03:37:13.436Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T03:37:39.365Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2026-01-26T03:37:39.367Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-01-26T03:37:39.860Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-26T03:37:40.294Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-26T03:37:40.784Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-26T03:37:41.474Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-26T03:37:42.598Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-26T03:37:44.528Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-26T03:37:48.039Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-26T03:37:54.764Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-26T03:38:07.886Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-26T03:38:33.800Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-26T03:38:38.076Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-26T03:38:38.455Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-26T03:38:38.929Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-26T03:38:39.636Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-26T03:38:40.769Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-26T03:38:42.690Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-26T03:38:46.203Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-26T03:38:52.931Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-26T03:39:06.049Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-26T03:39:27.649Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-26T03:39:28.086Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-26T03:39:28.566Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-26T03:39:29.270Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-26T03:39:30.401Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-26T03:39:32.308Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-26T03:39:35.832Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-26T03:39:42.546Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-26T03:39:55.668Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-26T03:39:57.590Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-26T03:39:57.983Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-26T03:39:58.454Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-26T03:39:59.157Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-26T03:40:00.270Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-26T03:40:02.184Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-26T03:40:05.707Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-26T03:40:12.407Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-26T03:40:25.526Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-26T03:40:43.328Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-26T03:40:43.399Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-01-26T03:40:43.465Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2026-01-26T03:40:43.468Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-01-26T03:40:48.280Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T03:41:18.374Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T03:41:38.834Z] [INFO] ℹ️ MariaDB 연결 성공 - Context: { - "connection": "db:3306", - "database": "hyungi", - "connectionLimit": 10 -} -[2026-01-26T03:41:38.838Z] [WARN] ⚠️ 아이디 또는 비밀번호가 올바르지 않습니다. - Context: { - "code": "AUTHENTICATION_ERROR", - "url": "/api/auth/login", - "method": "POST", - "user": "anonymous" -} -[2026-01-26T03:41:38.839Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 401, - "duration": "17ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-01-26T03:41:48.457Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T03:42:18.551Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T03:42:48.653Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T03:43:18.739Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T03:43:48.823Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T03:44:18.916Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T03:44:49.016Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T03:45:19.113Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T03:45:49.208Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T03:46:19.303Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T03:46:49.398Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T03:47:19.511Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T03:47:49.604Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T03:48:19.716Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T03:48:49.792Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T03:49:19.877Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T03:49:49.972Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T03:50:20.071Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T03:50:50.161Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T03:51:20.251Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T03:51:50.344Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T03:52:20.443Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T03:52:50.553Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T03:53:20.650Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T03:53:50.733Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T03:54:20.828Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T03:54:50.915Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T03:55:21.021Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T03:55:51.113Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T03:56:21.215Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T03:56:51.304Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T03:57:21.391Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T03:57:51.477Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T03:58:21.583Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T03:58:51.651Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T03:59:03.770Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T03:59:08.281Z] [WARN] ⚠️ 아이디 또는 비밀번호가 올바르지 않습니다. - Context: { - "code": "AUTHENTICATION_ERROR", - "url": "/api/auth/login", - "method": "POST", - "user": "anonymous" -} -[2026-01-26T03:59:08.281Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 401, - "duration": "101ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T03:59:13.029Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T03:59:17.349Z] [WARN] ⚠️ 아이디 또는 비밀번호가 올바르지 않습니다. - Context: { - "code": "AUTHENTICATION_ERROR", - "url": "/api/auth/login", - "method": "POST", - "user": "anonymous" -} -[2026-01-26T03:59:17.349Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 401, - "duration": "91ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T03:59:21.760Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T03:59:51.862Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T04:00:21.944Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T04:00:52.036Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T04:01:22.100Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T04:01:52.164Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T04:01:57.741Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 200, - "duration": "96ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:01:58.458Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-26", - "requester": 1, - "isAdmin": false -} -[2026-01-26T04:01:58.465Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-26T04:01:58.466Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-26&view_all=true", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:01:58.468Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "18ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:01:58.535Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users/1/page-access", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:01:59.439Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:02:06.628Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:02:06.640Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects?is_active=1", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:02:06.645Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/tbm/safety-checks", - "method": "GET" -} -[2026-01-26T04:02:06.645Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/tbm/safety-checks", - "statusCode": 404, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:02:06.651Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/tbm/sessions/date/2026-01-26", - "method": "GET" -} -[2026-01-26T04:02:06.653Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-26", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:02:07.611Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:02:22.232Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T04:02:28.026Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 200, - "duration": "69ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-01-26T04:02:52.303Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T04:03:22.398Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T04:03:52.453Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T04:04:22.530Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T04:04:52.605Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T04:05:22.697Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T04:05:52.801Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T04:06:03.974Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-26", - "requester": 1, - "isAdmin": false -} -[2026-01-26T04:06:03.977Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "14ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:06:03.980Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-26T04:06:03.981Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-26&view_all=true", - "statusCode": 304, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:06:04.022Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/users/1/page-access", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:06:04.955Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:06:08.841Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:06:08.853Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:06:08.861Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:06:08.868Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:06:08.876Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:06:08.881Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/tbm/sessions/date/2026-01-26", - "method": "GET" -} -[2026-01-26T04:06:08.882Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-26", - "statusCode": 404, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:06:08.885Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-26", - "created_by_user_id": 1, - "requester": 1, - "isAdmin": false -} -[2026-01-26T04:06:08.886Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-26T04:06:08.887Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-26&created_by=1", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:06:09.811Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:06:20.497Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:06:20.528Z] [INFO] ℹ️ 월별 캘린더 데이터 조회 요청 - Context: { - "year": 2026, - "month": 1 -} -[2026-01-26T04:06:20.534Z] [ERROR] ❌ 월별 캘린더 데이터 조회 실패 - Context: { - "year": 2026, - "month": 1, - "error": "Table 'hyungi.monthly_summary' doesn't exist" -} -[2026-01-26T04:06:20.536Z] [ERROR] ❌ 월별 캘린더 데이터 조회 중 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 월별 캘린더 데이터 조회 중 오류가 발생했습니다\n at /usr/src/app/controllers/monthlyStatusController.js:80:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "url": "/api/monthly-status/calendar?year=2026&month=1", - "method": "GET", - "user": "anonymous" -} -[2026-01-26T04:06:20.538Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/monthly-status/calendar?year=2026&month=1", - "statusCode": 500, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:06:20.545Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2025-12-31", - "requester": 1, - "isAdmin": false -} -[2026-01-26T04:06:20.547Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-26T04:06:20.548Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-12-31&view_all=true", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:06:20.549Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-01", - "requester": 1, - "isAdmin": false -} -[2026-01-26T04:06:20.551Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-02", - "requester": 1, - "isAdmin": false -} -[2026-01-26T04:06:20.551Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-03", - "requester": 1, - "isAdmin": false -} -[2026-01-26T04:06:20.553Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-04", - "requester": 1, - "isAdmin": false -} -[2026-01-26T04:06:20.555Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-26T04:06:20.557Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-01&view_all=true", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:06:20.559Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-26T04:06:20.560Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-02&view_all=true", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:06:20.565Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-26T04:06:20.566Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-03&view_all=true", - "statusCode": 200, - "duration": "15ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:06:20.567Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-26T04:06:20.567Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-04&view_all=true", - "statusCode": 200, - "duration": "15ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:06:20.678Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-06", - "requester": 1, - "isAdmin": false -} -[2026-01-26T04:06:20.680Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-07", - "requester": 1, - "isAdmin": false -} -[2026-01-26T04:06:20.682Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-08", - "requester": 1, - "isAdmin": false -} -[2026-01-26T04:06:20.683Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-05", - "requester": 1, - "isAdmin": false -} -[2026-01-26T04:06:20.685Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-09", - "requester": 1, - "isAdmin": false -} -[2026-01-26T04:06:20.687Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-26T04:06:20.687Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-06&view_all=true", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:06:20.689Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-26T04:06:20.689Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-07&view_all=true", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:06:20.690Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-26T04:06:20.690Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-08&view_all=true", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:06:20.691Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-26T04:06:20.692Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-05&view_all=true", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:06:20.694Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-26T04:06:20.694Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-09&view_all=true", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:06:20.811Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-11", - "requester": 1, - "isAdmin": false -} -[2026-01-26T04:06:20.813Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-12", - "requester": 1, - "isAdmin": false -} -[2026-01-26T04:06:20.815Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-13", - "requester": 1, - "isAdmin": false -} -[2026-01-26T04:06:20.817Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-10", - "requester": 1, - "isAdmin": false -} -[2026-01-26T04:06:20.819Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-14", - "requester": 1, - "isAdmin": false -} -[2026-01-26T04:06:20.820Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-26T04:06:20.821Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-11&view_all=true", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:06:20.821Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-26T04:06:20.822Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-12&view_all=true", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:06:20.823Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-26T04:06:20.824Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-13&view_all=true", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:06:20.824Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-26T04:06:20.825Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-10&view_all=true", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:06:20.825Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-26T04:06:20.826Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-14&view_all=true", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:06:20.943Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-16", - "requester": 1, - "isAdmin": false -} -[2026-01-26T04:06:20.946Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-17", - "requester": 1, - "isAdmin": false -} -[2026-01-26T04:06:20.949Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-15", - "requester": 1, - "isAdmin": false -} -[2026-01-26T04:06:20.951Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-18", - "requester": 1, - "isAdmin": false -} -[2026-01-26T04:06:20.953Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-19", - "requester": 1, - "isAdmin": false -} -[2026-01-26T04:06:20.954Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-26T04:06:20.955Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-16&view_all=true", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:06:20.955Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-26T04:06:20.956Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-17&view_all=true", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:06:20.957Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-26T04:06:20.958Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-15&view_all=true", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:06:20.959Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 1 -} -[2026-01-26T04:06:20.960Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-18&view_all=true", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:06:20.961Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-26T04:06:20.961Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-19&view_all=true", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:06:21.082Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-21", - "requester": 1, - "isAdmin": false -} -[2026-01-26T04:06:21.085Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-20", - "requester": 1, - "isAdmin": false -} -[2026-01-26T04:06:21.088Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-22", - "requester": 1, - "isAdmin": false -} -[2026-01-26T04:06:21.090Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-26T04:06:21.091Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-21&view_all=true", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:06:21.092Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 1 -} -[2026-01-26T04:06:21.094Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-20&view_all=true", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:06:21.095Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-23", - "requester": 1, - "isAdmin": false -} -[2026-01-26T04:06:21.097Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-24", - "requester": 1, - "isAdmin": false -} -[2026-01-26T04:06:21.097Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-26T04:06:21.098Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-22&view_all=true", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:06:21.099Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-26T04:06:21.099Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-23&view_all=true", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:06:21.100Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-26T04:06:21.100Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-24&view_all=true", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:06:21.221Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-25", - "requester": 1, - "isAdmin": false -} -[2026-01-26T04:06:21.225Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-26T04:06:21.227Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-25&view_all=true", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:06:21.229Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-26", - "requester": 1, - "isAdmin": false -} -[2026-01-26T04:06:21.231Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-27", - "requester": 1, - "isAdmin": false -} -[2026-01-26T04:06:21.232Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-28", - "requester": 1, - "isAdmin": false -} -[2026-01-26T04:06:21.233Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-29", - "requester": 1, - "isAdmin": false -} -[2026-01-26T04:06:21.234Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-26T04:06:21.235Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-26&view_all=true", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:06:21.236Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-26T04:06:21.237Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-27&view_all=true", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:06:21.237Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-26T04:06:21.238Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-28&view_all=true", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:06:21.239Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-26T04:06:21.239Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-29&view_all=true", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:06:21.352Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-30", - "requester": 1, - "isAdmin": false -} -[2026-01-26T04:06:21.355Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-26T04:06:21.357Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-30&view_all=true", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:06:21.494Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:06:22.888Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T04:06:24.813Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:06:25.796Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:06:25.802Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:06:34.228Z] [INFO] ℹ️ 프로젝트별-작업별 시간 분석 요청 - Context: { - "start": "2025-10-01", - "end": "2026-01-31" -} -[2026-01-26T04:06:34.237Z] [INFO] ℹ️ 작업자별 통계 조회 요청 - Context: { - "start": "2025-10-01", - "end": "2026-01-31" -} -[2026-01-26T04:06:34.243Z] [INFO] ℹ️ 프로젝트별-작업별 시간 분석 성공 - Context: { - "start": "2025-10-01", - "end": "2026-01-31", - "projectCount": 3, - "workTypeCount": 2, - "totalHours": 84 -} -[2026-01-26T04:06:34.246Z] [INFO] ℹ️ 작업자별 통계 조회 성공 - Context: { - "start": "2025-10-01", - "end": "2026-01-31", - "workerCount": 11 -} -[2026-01-26T04:06:34.248Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-analysis/project-worktype-analysis?start=2025-10-01&end=2026-01-31", - "statusCode": 200, - "duration": "23ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:06:34.249Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-analysis/worker-stats?start=2025-10-01&end=2026-01-31", - "statusCode": 200, - "duration": "14ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:06:34.255Z] [INFO] ℹ️ 최근 작업 현황 조회 요청 - Context: { - "start": "2025-10-01", - "end": "2026-01-31", - "limit": 2000 -} -[2026-01-26T04:06:34.260Z] [INFO] ℹ️ 최근 작업 현황 조회 성공 - Context: { - "start": "2025-10-01", - "end": "2026-01-31", - "limit": 2000, - "resultCount": 11 -} -[2026-01-26T04:06:34.261Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-analysis/recent-work?start=2025-10-01&end=2026-01-31&limit=2000", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:06:47.247Z] [INFO] ℹ️ 프로젝트별-작업별 시간 분석 요청 - Context: { - "start": "2025-08-01", - "end": "2026-01-31" -} -[2026-01-26T04:06:47.253Z] [INFO] ℹ️ 작업자별 통계 조회 요청 - Context: { - "start": "2025-08-01", - "end": "2026-01-31" -} -[2026-01-26T04:06:47.256Z] [INFO] ℹ️ 프로젝트별-작업별 시간 분석 성공 - Context: { - "start": "2025-08-01", - "end": "2026-01-31", - "projectCount": 7, - "workTypeCount": 3, - "totalHours": 3212 -} -[2026-01-26T04:06:47.258Z] [INFO] ℹ️ 작업자별 통계 조회 성공 - Context: { - "start": "2025-08-01", - "end": "2026-01-31", - "workerCount": 11 -} -[2026-01-26T04:06:47.260Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-analysis/project-worktype-analysis?start=2025-08-01&end=2026-01-31", - "statusCode": 200, - "duration": "15ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:06:47.261Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-analysis/worker-stats?start=2025-08-01&end=2026-01-31", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:06:47.268Z] [INFO] ℹ️ 최근 작업 현황 조회 요청 - Context: { - "start": "2025-08-01", - "end": "2026-01-31", - "limit": 2000 -} -[2026-01-26T04:06:47.281Z] [INFO] ℹ️ 최근 작업 현황 조회 성공 - Context: { - "start": "2025-08-01", - "end": "2026-01-31", - "limit": 2000, - "resultCount": 449 -} -[2026-01-26T04:06:47.285Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-analysis/recent-work?start=2025-08-01&end=2026-01-31&limit=2000", - "statusCode": 200, - "duration": "18ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:06:52.989Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T04:06:53.263Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-26", - "requester": 1, - "isAdmin": false -} -[2026-01-26T04:06:53.265Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-26T04:06:53.267Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-26&view_all=true", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:06:53.269Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:06:53.284Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/users/1/page-access", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:06:54.263Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:06:55.520Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:06:55.528Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:06:55.535Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/tasks", - "method": "GET" -} -[2026-01-26T04:06:55.536Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/tasks", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:06:56.456Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:06:58.951Z] [INFO] ℹ️ 사용자 목록 조회 요청 - Context: { - "requestedBy": "admin" -} -[2026-01-26T04:06:58.956Z] [INFO] ℹ️ 사용자 목록 조회 성공 - Context: { - "count": 1 -} -[2026-01-26T04:06:58.957Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:06:59.931Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:07:05.096Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-26", - "requester": 1, - "isAdmin": false -} -[2026-01-26T04:07:05.100Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-26T04:07:05.101Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-26&view_all=true", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:07:05.107Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "17ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:07:05.121Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/users/1/page-access", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:07:06.089Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:07:10.674Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:07:10.686Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:07:10.690Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/tasks", - "method": "GET" -} -[2026-01-26T04:07:10.691Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/tasks", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:07:11.666Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:07:12.612Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:07:13.595Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:07:23.108Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T04:07:39.512Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 304, - "duration": "19ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:07:39.533Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:07:39.543Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/tasks", - "method": "GET" -} -[2026-01-26T04:07:39.543Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/tasks", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:07:40.475Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:07:41.598Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "15ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:07:42.580Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:07:53.206Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T04:08:23.300Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T04:08:53.372Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T04:09:23.474Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T04:09:53.568Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T04:10:11.384Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:10:11.395Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:10:11.406Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/tasks", - "method": "GET" -} -[2026-01-26T04:10:11.408Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/tasks", - "statusCode": 404, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:10:12.378Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:10:15.045Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:10:22.895Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 304, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:10:22.913Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:10:22.921Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/tasks", - "method": "GET" -} -[2026-01-26T04:10:22.922Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/tasks", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:10:23.664Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T04:10:23.878Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:10:53.747Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T04:11:23.843Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T04:11:53.929Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T04:12:24.016Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T04:12:54.108Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T04:13:24.212Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T04:13:51.997Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:13:52.009Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:13:52.015Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/tasks", - "method": "GET" -} -[2026-01-26T04:13:52.017Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/tasks", - "statusCode": 404, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:13:52.994Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:13:54.076Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:13:54.296Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T04:13:55.065Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:14:24.380Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T04:14:28.365Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:14:28.373Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:14:28.386Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/tasks", - "method": "GET" -} -[2026-01-26T04:14:28.387Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/tasks", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:14:29.366Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:14:29.892Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:14:30.872Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:14:35.102Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:14:35.111Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:14:35.135Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/tasks", - "method": "GET" -} -[2026-01-26T04:14:35.136Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/tasks", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:14:36.100Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:14:36.578Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:14:36.582Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:14:36.584Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:14:37.556Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:14:43.076Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:14:43.091Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:14:43.097Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/tasks", - "method": "GET" -} -[2026-01-26T04:14:43.099Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/tasks", - "statusCode": 404, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:14:44.077Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:14:44.614Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:14:45.601Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:14:45.610Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:14:50.465Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:14:50.475Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:14:50.479Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:14:51.459Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:14:54.474Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T04:15:24.543Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T04:15:54.628Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T04:16:24.726Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T04:16:54.815Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T04:17:24.910Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T04:17:55.009Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T04:18:25.100Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T04:18:29.278Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:18:29.281Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:18:29.282Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:18:30.272Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:18:32.419Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:18:32.437Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:18:32.443Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/tasks", - "method": "GET" -} -[2026-01-26T04:18:32.444Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/tasks", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:18:33.392Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:18:34.167Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:18:35.161Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:18:55.194Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T04:19:09.798Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:19:09.823Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "18ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:19:09.836Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/tasks", - "method": "GET" -} -[2026-01-26T04:19:09.837Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/tasks", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:19:10.792Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:19:10.866Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:19:10.878Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 304, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:19:10.880Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:19:11.858Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:19:21.841Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:19:21.859Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:19:21.881Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/tasks", - "method": "GET" -} -[2026-01-26T04:19:21.884Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/tasks", - "statusCode": 404, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:19:22.830Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:19:23.460Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:19:24.451Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:19:25.021Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:19:25.053Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:19:25.063Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/tasks", - "method": "GET" -} -[2026-01-26T04:19:25.065Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/tasks", - "statusCode": 404, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:19:25.279Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T04:19:26.018Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:19:55.356Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T04:20:25.437Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T04:20:44.619Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:20:44.624Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:20:44.627Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/tasks", - "method": "GET" -} -[2026-01-26T04:20:44.628Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/tasks", - "statusCode": 404, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:20:45.620Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:20:46.338Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:20:47.321Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:20:55.494Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T04:21:25.572Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T04:21:55.657Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T04:22:25.758Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T04:22:55.859Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T04:23:25.946Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T04:23:56.043Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T04:24:26.149Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T04:24:56.249Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T04:25:26.340Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T04:25:56.438Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T04:26:26.529Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T04:26:32.198Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:26:33.186Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:26:41.729Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:26:41.746Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:26:41.752Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/tasks", - "method": "GET" -} -[2026-01-26T04:26:41.753Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/tasks", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:26:42.699Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:26:43.353Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:26:44.355Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:26:56.613Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T04:27:26.705Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T04:27:56.799Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T04:28:25.816Z] [WARN] ⚠️ 인증 실패: Bearer 토큰 누락 - Context: { - "path": "/", - "method": "GET", - "ip": "::ffff:192.168.65.1" -} -[2026-01-26T04:28:25.818Z] [WARN] ⚠️ Bearer 토큰이 필요합니다 - Context: { - "code": "AUTHENTICATION_ERROR", - "url": "/api/projects", - "method": "GET", - "user": "anonymous" -} -[2026-01-26T04:28:25.820Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 401, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-01-26T04:28:26.881Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T04:28:40.061Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 200, - "duration": "79ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-01-26T04:28:53.164Z] [WARN] ⚠️ 인증 실패: Bearer 토큰 누락 - Context: { - "path": "/", - "method": "GET", - "ip": "::ffff:192.168.65.1" -} -[2026-01-26T04:28:53.165Z] [WARN] ⚠️ Bearer 토큰이 필요합니다 - Context: { - "code": "AUTHENTICATION_ERROR", - "url": "/api/projects", - "method": "GET", - "user": "anonymous" -} -[2026-01-26T04:28:53.167Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 401, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-01-26T04:28:56.968Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T04:29:27.063Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T04:29:57.149Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T04:30:23.972Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:30:24.965Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:30:27.250Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T04:30:57.340Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T04:31:27.420Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T04:31:57.521Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T04:32:27.617Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T04:32:57.697Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T04:33:27.797Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T04:33:57.887Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T04:34:27.979Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T04:34:58.057Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T04:35:18.775Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 200, - "duration": "16ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:35:19.675Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:35:28.150Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T04:35:58.244Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T04:36:28.338Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T04:36:58.422Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T04:37:28.517Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T04:37:38.414Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 200, - "duration": "57ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:37:39.346Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:37:41.536Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "14ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:37:42.519Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:37:54.993Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:37:54.997Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:37:54.999Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:37:55.960Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:37:58.623Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T04:38:28.707Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T04:38:43.931Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-26", - "requester": 1, - "isAdmin": false -} -[2026-01-26T04:38:43.933Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-26T04:38:43.933Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-26&view_all=true", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:38:43.936Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:38:43.948Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users/1/page-access", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:38:44.926Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:38:45.881Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:38:45.901Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:38:45.908Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/tasks", - "method": "GET" -} -[2026-01-26T04:38:45.910Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/tasks", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:38:46.848Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:38:48.771Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:38:49.776Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:38:58.808Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T04:39:28.900Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T04:39:58.976Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T04:40:29.053Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T04:40:59.141Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T04:41:29.229Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T04:41:59.315Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T04:42:29.406Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T04:42:59.493Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T04:43:25.093Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 200, - "duration": "34ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:43:26.052Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:43:29.585Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T04:43:35.401Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:43:36.381Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:43:41.100Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:43:42.091Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:43:47.240Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:43:48.213Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:43:54.036Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:43:54.041Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:43:54.043Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:43:55.026Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:43:59.691Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T04:44:29.788Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T04:44:59.880Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T04:45:29.972Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T04:46:00.060Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T04:46:30.156Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T04:47:00.229Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T04:47:30.314Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T04:47:39.730Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:47:39.731Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:47:39.735Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:47:40.717Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:47:41.724Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:47:42.545Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:47:43.537Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:48:00.411Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T04:48:30.514Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T04:49:00.616Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T04:49:30.714Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T04:50:00.803Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T04:50:30.883Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T04:51:01.004Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T04:51:02.508Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 200, - "duration": "31ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:51:03.475Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:51:03.796Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:51:04.789Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:51:31.094Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T04:52:01.191Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T04:52:31.284Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T04:53:01.373Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T04:53:31.463Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T04:54:01.559Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T04:54:31.644Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T04:54:52.731Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 200, - "duration": "25ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:54:52.733Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:54:52.735Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:54:53.601Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:55:01.748Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T04:55:31.889Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T04:56:01.990Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T04:56:32.087Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T04:57:02.211Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T04:57:06.345Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:57:06.346Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:57:06.348Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:57:07.323Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:57:32.313Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T04:57:33.885Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:57:33.913Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "20ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:57:33.921Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/tasks", - "method": "GET" -} -[2026-01-26T04:57:33.922Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/tasks", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:57:34.823Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T04:58:02.413Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T04:58:32.524Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T04:59:02.612Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T04:59:32.708Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T05:00:02.898Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T05:00:28.324Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 304, - "duration": "12ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T05:00:29.305Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T05:00:33.026Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T05:00:41.898Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 304, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T05:00:41.909Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T05:00:41.912Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/tasks", - "method": "GET" -} -[2026-01-26T05:00:41.913Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/tasks", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T05:00:42.884Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T05:01:03.126Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T05:01:33.224Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T05:02:03.350Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T05:02:33.413Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T05:03:03.474Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T05:03:30.684Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 304, - "duration": "21ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T05:03:31.618Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T05:03:33.605Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T05:04:03.721Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T05:04:33.819Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T05:05:03.879Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T05:05:33.953Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T05:06:04.039Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T05:06:16.817Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 200, - "duration": "21ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T05:06:17.786Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T05:06:18.957Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-26", - "requester": 1, - "isAdmin": false -} -[2026-01-26T05:06:18.964Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-26T05:06:18.965Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-26&view_all=true", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T05:06:18.968Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "20ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T05:06:18.988Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users/1/page-access", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T05:06:19.924Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T05:06:20.395Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "17ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T05:06:20.404Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects?is_active=1", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T05:06:20.413Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/tbm/safety-checks", - "method": "GET" -} -[2026-01-26T05:06:20.413Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/tbm/safety-checks", - "statusCode": 404, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T05:06:20.422Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/tbm/sessions/date/2026-01-26", - "method": "GET" -} -[2026-01-26T05:06:20.423Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-26", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T05:06:21.308Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T05:06:34.142Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T05:06:55.062Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-26", - "requester": 1, - "isAdmin": false -} -[2026-01-26T05:06:55.085Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-26T05:06:55.088Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-26&view_all=true", - "statusCode": 304, - "duration": "29ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T05:06:55.090Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "34ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T05:06:55.104Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/users/1/page-access", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T05:06:56.053Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T05:06:56.909Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T05:06:57.900Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T05:06:58.443Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-26", - "requester": 1, - "isAdmin": false -} -[2026-01-26T05:06:58.447Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T05:06:58.449Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-26T05:06:58.450Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-26&view_all=true", - "statusCode": 304, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T05:06:58.480Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/users/1/page-access", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T05:06:59.440Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T05:07:04.244Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T05:07:34.347Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T05:08:04.444Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T05:08:34.534Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T05:09:04.617Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T05:09:34.707Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T05:10:04.806Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T05:10:34.898Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T05:10:36.665Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 304, - "duration": "30ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T05:10:37.599Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T05:11:05.003Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T05:11:35.097Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T05:12:05.201Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T05:12:35.293Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T05:13:05.409Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T05:13:35.504Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T05:14:05.594Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T05:14:35.679Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T05:15:05.748Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T05:15:35.824Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T05:16:05.910Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T05:16:35.980Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T05:17:06.064Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T05:17:36.133Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T05:18:06.207Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T05:18:36.311Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T05:19:06.385Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T05:19:36.446Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T05:20:06.536Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T05:20:36.616Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T05:21:06.686Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T05:21:36.769Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T05:22:06.844Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T05:22:36.940Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T05:23:07.033Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T05:23:37.128Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T05:24:07.223Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T05:24:37.333Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T05:25:07.453Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T05:25:37.550Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T05:26:07.657Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T05:26:37.746Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T05:27:07.845Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T05:27:37.943Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T05:27:55.992Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T05:27:56.973Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T05:27:57.725Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/categories", - "method": "GET" -} -[2026-01-26T05:27:57.727Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 404, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T05:27:57.729Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces", - "method": "GET" -} -[2026-01-26T05:27:57.731Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces", - "statusCode": 404, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T05:27:58.685Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T05:28:08.048Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T05:28:11.547Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-01-26T05:28:34.918Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/categories", - "method": "GET" -} -[2026-01-26T05:28:34.920Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 404, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "curl/8.7.1" -} -[2026-01-26T05:28:38.140Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T05:28:48.526Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2026-01-26T05:28:48.530Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-01-26T05:28:48.996Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-26T05:28:49.063Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-01-26T05:28:49.130Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2026-01-26T05:28:49.133Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-01-26T05:28:52.962Z] [INFO] ℹ️ 카테고리 생성 요청 - Context: { - "name": "제 1공장" -} -[2026-01-26T05:28:52.975Z] [INFO] ℹ️ MariaDB 연결 성공 - Context: { - "connection": "db:3306", - "database": "hyungi", - "connectionLimit": 10 -} -[2026-01-26T05:28:52.982Z] [INFO] ℹ️ 카테고리 생성 성공 - Context: { - "category_id": 1 -} -[2026-01-26T05:28:52.987Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/workplaces/categories", - "statusCode": 201, - "duration": "30ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T05:28:53.001Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T05:28:53.005Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T05:28:53.884Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T05:28:59.237Z] [INFO] ℹ️ 카테고리 생성 요청 - Context: { - "name": "제 2공장" -} -[2026-01-26T05:28:59.243Z] [INFO] ℹ️ 카테고리 생성 성공 - Context: { - "category_id": 2 -} -[2026-01-26T05:28:59.246Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/workplaces/categories", - "statusCode": 201, - "duration": "11ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T05:28:59.256Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T05:28:59.261Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T05:29:02.750Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "curl/8.7.1" -} -[2026-01-26T05:29:08.938Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "curl/8.7.1" -} -[2026-01-26T05:29:18.502Z] [INFO] ℹ️ 작업장 생성 요청 - Context: { - "name": "서스작업장" -} -[2026-01-26T05:29:18.507Z] [INFO] ℹ️ 작업장 생성 성공 - Context: { - "workplace_id": 1 -} -[2026-01-26T05:29:18.510Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/workplaces", - "statusCode": 201, - "duration": "11ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T05:29:18.526Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T05:29:18.530Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T05:29:23.985Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T05:29:30.296Z] [INFO] ℹ️ 작업장 생성 요청 - Context: { - "name": "조립구역" -} -[2026-01-26T05:29:30.301Z] [INFO] ℹ️ 작업장 생성 성공 - Context: { - "workplace_id": 2 -} -[2026-01-26T05:29:30.302Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/workplaces", - "statusCode": 201, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T05:29:30.315Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T05:29:30.322Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T05:29:36.587Z] [INFO] ℹ️ 작업장 생성 요청 - Context: { - "name": "외부작업장" -} -[2026-01-26T05:29:36.592Z] [INFO] ℹ️ 작업장 생성 성공 - Context: { - "workplace_id": 3 -} -[2026-01-26T05:29:36.593Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/workplaces", - "statusCode": 201, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T05:29:36.602Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T05:29:36.607Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T05:29:41.785Z] [INFO] ℹ️ 작업장 생성 요청 - Context: { - "name": "입고장" -} -[2026-01-26T05:29:41.789Z] [INFO] ℹ️ 작업장 생성 성공 - Context: { - "workplace_id": 4 -} -[2026-01-26T05:29:41.790Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/workplaces", - "statusCode": 201, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T05:29:41.801Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T05:29:41.804Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T05:29:48.774Z] [INFO] ℹ️ 작업장 생성 요청 - Context: { - "name": "생산팀 창고" -} -[2026-01-26T05:29:48.777Z] [INFO] ℹ️ 작업장 생성 성공 - Context: { - "workplace_id": 5 -} -[2026-01-26T05:29:48.779Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/workplaces", - "statusCode": 201, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T05:29:48.791Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T05:29:48.802Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T05:29:54.040Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T05:29:57.437Z] [INFO] ℹ️ 작업장 생성 요청 - Context: { - "name": "검사장비 창고" -} -[2026-01-26T05:29:57.442Z] [INFO] ℹ️ 작업장 생성 성공 - Context: { - "workplace_id": 6 -} -[2026-01-26T05:29:57.443Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/workplaces", - "statusCode": 201, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T05:29:57.464Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T05:29:57.467Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T05:30:04.380Z] [INFO] ℹ️ 작업장 생성 요청 - Context: { - "name": "2층 가공장" -} -[2026-01-26T05:30:04.382Z] [INFO] ℹ️ 작업장 생성 성공 - Context: { - "workplace_id": 7 -} -[2026-01-26T05:30:04.382Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/workplaces", - "statusCode": 201, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T05:30:04.388Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T05:30:04.392Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T05:30:09.375Z] [INFO] ℹ️ 작업장 생성 요청 - Context: { - "name": "1층 가공장" -} -[2026-01-26T05:30:09.379Z] [INFO] ℹ️ 작업장 생성 성공 - Context: { - "workplace_id": 8 -} -[2026-01-26T05:30:09.381Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/workplaces", - "statusCode": 201, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T05:30:09.395Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T05:30:09.397Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T05:30:17.858Z] [INFO] ℹ️ 작업장 생성 요청 - Context: { - "name": "조방A" -} -[2026-01-26T05:30:17.862Z] [INFO] ℹ️ 작업장 생성 성공 - Context: { - "workplace_id": 9 -} -[2026-01-26T05:30:17.864Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/workplaces", - "statusCode": 201, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T05:30:17.878Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T05:30:17.885Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T05:30:24.110Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T05:30:26.826Z] [INFO] ℹ️ 작업장 생성 요청 - Context: { - "name": "조방B" -} -[2026-01-26T05:30:26.830Z] [INFO] ℹ️ 작업장 생성 성공 - Context: { - "workplace_id": 10 -} -[2026-01-26T05:30:26.832Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/workplaces", - "statusCode": 201, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T05:30:26.843Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T05:30:26.849Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T05:30:36.902Z] [INFO] ℹ️ 작업장 생성 요청 - Context: { - "name": "NDE룸" -} -[2026-01-26T05:30:36.904Z] [INFO] ℹ️ 작업장 생성 성공 - Context: { - "workplace_id": 11 -} -[2026-01-26T05:30:36.905Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/workplaces", - "statusCode": 201, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T05:30:36.915Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T05:30:36.919Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T05:30:44.902Z] [INFO] ℹ️ 작업장 생성 요청 - Context: { - "name": "휴게실" -} -[2026-01-26T05:30:44.906Z] [INFO] ℹ️ 작업장 생성 성공 - Context: { - "workplace_id": 12 -} -[2026-01-26T05:30:44.909Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/workplaces", - "statusCode": 201, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T05:30:44.922Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T05:30:44.924Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T05:30:52.916Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-26", - "requester": 1, - "isAdmin": false -} -[2026-01-26T05:30:52.933Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-26T05:30:52.934Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-26&view_all=true", - "statusCode": 200, - "duration": "23ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T05:30:52.960Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "60ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T05:30:52.983Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users/1/page-access", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T05:30:53.871Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T05:30:54.192Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T05:30:54.341Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "17ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T05:30:54.355Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects?is_active=1", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T05:30:54.363Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/tbm/safety-checks", - "method": "GET" -} -[2026-01-26T05:30:54.365Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/tbm/safety-checks", - "statusCode": 404, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T05:30:54.376Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/tbm/sessions/date/2026-01-26", - "method": "GET" -} -[2026-01-26T05:30:54.382Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-26", - "statusCode": 404, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T05:30:55.294Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T05:31:24.314Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T05:31:54.384Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T05:32:24.437Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T05:32:54.508Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T05:33:24.603Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T05:33:54.691Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T05:34:24.784Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T05:34:54.866Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T05:35:24.941Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T05:35:55.048Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T05:36:25.144Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T05:36:55.227Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T05:37:25.298Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T05:37:55.386Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T05:38:25.477Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T05:38:55.566Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T05:39:25.654Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T05:39:55.738Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T05:40:25.837Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T05:40:55.956Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T05:41:26.038Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T05:41:56.119Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T05:42:26.226Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T05:42:56.309Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T05:43:26.411Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T05:43:56.522Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T05:44:26.611Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T05:44:56.704Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T05:45:26.773Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T05:45:56.877Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T05:46:26.979Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T05:46:57.075Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T05:47:27.207Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T05:47:57.281Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T05:48:27.362Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T05:48:57.431Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T05:49:27.496Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T05:49:57.571Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T05:50:27.639Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T05:50:57.728Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T05:51:27.822Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T05:51:44.520Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-26", - "requester": 1, - "isAdmin": false -} -[2026-01-26T05:51:44.525Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-26T05:51:44.526Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-26&view_all=true", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T05:51:44.527Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 304, - "duration": "17ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T05:51:44.544Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/users/1/page-access", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T05:51:45.499Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T05:51:45.941Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T05:51:46.919Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T05:51:54.601Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-26", - "requester": 1, - "isAdmin": false -} -[2026-01-26T05:51:54.611Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "26ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T05:51:54.615Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-26T05:51:54.619Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-26&view_all=true", - "statusCode": 304, - "duration": "19ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T05:51:54.641Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/users/1/page-access", - "statusCode": 304, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T05:51:55.729Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T05:51:55.739Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T05:51:55.745Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T05:51:55.752Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T05:51:55.760Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T05:51:55.767Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/tbm/sessions/date/2026-01-26", - "method": "GET" -} -[2026-01-26T05:51:55.768Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-26", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T05:51:55.772Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-26", - "created_by_user_id": 1, - "requester": 1, - "isAdmin": false -} -[2026-01-26T05:51:55.773Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-26T05:51:55.774Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-26&created_by=1", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T05:51:56.682Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T05:51:57.942Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T05:52:28.038Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T05:52:58.149Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T05:53:28.241Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T05:53:58.357Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T05:54:28.471Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T05:54:58.590Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T05:55:28.719Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T05:55:58.807Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T05:56:28.888Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T05:56:59.019Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T05:57:29.108Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T05:57:59.202Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T05:58:29.304Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T05:58:59.398Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T05:59:29.482Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T05:59:59.566Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T06:00:29.649Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T06:00:59.732Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T06:01:29.827Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T06:01:59.916Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T06:02:29.997Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T06:03:00.080Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T06:03:30.184Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T06:04:00.289Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T06:04:30.384Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T06:05:00.473Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T06:05:30.599Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "6ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T06:06:00.721Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T06:06:30.797Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T06:07:00.887Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T06:07:30.414Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 304, - "duration": "62ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T06:07:30.443Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T06:07:30.453Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T06:07:30.461Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T06:07:30.471Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T06:07:30.486Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/tbm/sessions/date/2026-01-26", - "method": "GET" -} -[2026-01-26T06:07:30.487Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-26", - "statusCode": 404, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T06:07:30.489Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-26", - "created_by_user_id": 1, - "requester": 1, - "isAdmin": false -} -[2026-01-26T06:07:30.491Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-26T06:07:30.492Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-26&created_by=1", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T06:07:31.012Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T06:07:31.322Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T06:07:32.090Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-26", - "requester": 1, - "isAdmin": false -} -[2026-01-26T06:07:32.099Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-26T06:07:32.101Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-26&view_all=true", - "statusCode": 304, - "duration": "13ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T06:07:32.103Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "20ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T06:07:32.123Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/users/1/page-access", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T06:07:33.077Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T06:07:34.688Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T06:07:34.736Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/projects?is_active=1", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T06:07:34.748Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/tbm/safety-checks", - "method": "GET" -} -[2026-01-26T06:07:34.750Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/tbm/safety-checks", - "statusCode": 404, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T06:07:34.755Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/tbm/sessions/date/2026-01-26", - "method": "GET" -} -[2026-01-26T06:07:34.756Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-26", - "statusCode": 404, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T06:07:35.677Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T06:07:41.501Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-26", - "requester": 1, - "isAdmin": false -} -[2026-01-26T06:07:41.509Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-26T06:07:41.510Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-26&view_all=true", - "statusCode": 304, - "duration": "13ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T06:07:41.513Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "21ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T06:07:41.529Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/users/1/page-access", - "statusCode": 304, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T06:07:42.484Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T06:07:42.977Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T06:07:43.895Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T06:07:44.725Z] [WARN] ⚠️ 유효하지 않은 도구 ID입니다 - Context: { - "code": "VALIDATION_ERROR", - "url": "/api/tools/work-types", - "method": "GET", - "user": "admin" -} -[2026-01-26T06:07:44.729Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/tools/work-types", - "statusCode": 400, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T06:07:44.760Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/tasks", - "method": "GET" -} -[2026-01-26T06:07:44.763Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/tasks", - "statusCode": 404, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T06:07:45.713Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T06:08:01.129Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T06:08:06.148Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "30ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T06:08:06.150Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T06:08:07.089Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T06:08:08.894Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 304, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T06:08:08.904Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T06:08:08.905Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T06:08:09.879Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T06:08:12.185Z] [WARN] ⚠️ 유효하지 않은 도구 ID입니다 - Context: { - "code": "VALIDATION_ERROR", - "url": "/api/tools/work-types", - "method": "GET", - "user": "admin" -} -[2026-01-26T06:08:12.187Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/tools/work-types", - "statusCode": 400, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T06:08:12.250Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/tasks", - "method": "GET" -} -[2026-01-26T06:08:12.254Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/tasks", - "statusCode": 404, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T06:08:13.187Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T06:08:31.228Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T06:09:01.313Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T06:09:07.492Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2026-01-26T06:09:07.494Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-01-26T06:09:07.941Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-26T06:09:08.008Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-01-26T06:09:08.084Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2026-01-26T06:09:08.087Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-01-26T06:09:12.835Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T06:09:42.925Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T06:09:58.891Z] [INFO] ℹ️ MariaDB 연결 성공 - Context: { - "connection": "db:3306", - "database": "hyungi", - "connectionLimit": 10 -} -[2026-01-26T06:09:58.899Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 304, - "duration": "39ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T06:09:58.909Z] [ERROR] ❌ 작업 목록 조회 중 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 작업 목록 조회 중 오류가 발생했습니다\n at /usr/src/app/controllers/taskController.js:52:23\n at Object.getAllTasks (/usr/src/app/models/taskModel.js:48:5)\n at rows (/usr/src/app/controllers/taskController.js:51:15)\n at new Promise ()\n at /usr/src/app/controllers/taskController.js:50:22\n at /usr/src/app/middlewares/errorHandler.js:86:21\n at Layer.handle [as handle_request] (/usr/src/app/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/src/app/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/src/app/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/src/app/node_modules/express/lib/router/layer.js:95:5)", - "url": "/api/tasks", - "method": "GET", - "user": "admin" -} -[2026-01-26T06:09:58.913Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/tasks", - "statusCode": 500, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T06:09:59.861Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T06:10:03.518Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T06:10:03.531Z] [ERROR] ❌ 작업 목록 조회 중 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 작업 목록 조회 중 오류가 발생했습니다\n at /usr/src/app/controllers/taskController.js:52:23\n at Object.getAllTasks (/usr/src/app/models/taskModel.js:48:5)\n at rows (/usr/src/app/controllers/taskController.js:51:15)\n at new Promise ()\n at /usr/src/app/controllers/taskController.js:50:22\n at /usr/src/app/middlewares/errorHandler.js:86:21\n at Layer.handle [as handle_request] (/usr/src/app/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/src/app/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/src/app/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/src/app/node_modules/express/lib/router/layer.js:95:5)", - "url": "/api/tasks", - "method": "GET", - "user": "admin" -} -[2026-01-26T06:10:03.535Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/tasks", - "statusCode": 500, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T06:10:04.517Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T06:10:13.024Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T06:10:16.438Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T06:10:17.422Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T06:10:22.872Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T06:10:23.861Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T06:10:29.061Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T06:10:30.055Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T06:10:33.503Z] [WARN] ⚠️ 인증 실패: Bearer 토큰 누락 - Context: { - "path": "/", - "method": "GET", - "ip": "::ffff:192.168.65.1" -} -[2026-01-26T06:10:33.504Z] [WARN] ⚠️ Bearer 토큰이 필요합니다 - Context: { - "code": "AUTHENTICATION_ERROR", - "url": "/api/tasks", - "method": "GET", - "user": "anonymous" -} -[2026-01-26T06:10:33.505Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/tasks", - "statusCode": 401, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-01-26T06:10:43.130Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T06:11:12.138Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 200, - "duration": "78ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-01-26T06:11:13.229Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T06:11:22.958Z] [ERROR] ❌ 작업 목록 조회 중 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 작업 목록 조회 중 오류가 발생했습니다\n at /usr/src/app/controllers/taskController.js:52:23\n at Object.getAllTasks (/usr/src/app/models/taskModel.js:48:5)\n at rows (/usr/src/app/controllers/taskController.js:51:15)\n at new Promise ()\n at /usr/src/app/controllers/taskController.js:50:22\n at /usr/src/app/middlewares/errorHandler.js:86:21\n at Layer.handle [as handle_request] (/usr/src/app/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/src/app/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/src/app/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/src/app/node_modules/express/lib/router/layer.js:95:5)", - "url": "/api/tasks", - "method": "GET", - "user": "admin" -} -[2026-01-26T06:11:22.961Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/tasks", - "statusCode": 500, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "curl/8.7.1" -} -[2026-01-26T06:11:43.319Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T06:12:01.724Z] [WARN] ⚠️ 인증 실패: Bearer 토큰 누락 - Context: { - "path": "/", - "method": "GET", - "ip": "::ffff:192.168.65.1" -} -[2026-01-26T06:12:01.725Z] [WARN] ⚠️ Bearer 토큰이 필요합니다 - Context: { - "code": "AUTHENTICATION_ERROR", - "url": "/api/daily-work-reports/work-types", - "method": "GET", - "user": "anonymous" -} -[2026-01-26T06:12:01.727Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 401, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-01-26T06:12:13.397Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T06:12:14.807Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2026-01-26T06:12:14.809Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-01-26T06:12:15.238Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-26T06:12:15.308Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-01-26T06:12:15.380Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2026-01-26T06:12:15.383Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-01-26T06:12:20.170Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T06:12:22.519Z] [WARN] ⚠️ 인증 실패: Bearer 토큰 누락 - Context: { - "path": "/", - "method": "GET", - "ip": "::ffff:192.168.65.1" -} -[2026-01-26T06:12:22.521Z] [WARN] ⚠️ Bearer 토큰이 필요합니다 - Context: { - "code": "AUTHENTICATION_ERROR", - "url": "/api/tasks", - "method": "GET", - "user": "anonymous" -} -[2026-01-26T06:12:22.523Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/tasks", - "statusCode": 401, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-01-26T06:12:50.257Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T06:13:20.348Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T06:13:42.734Z] [INFO] ℹ️ MariaDB 연결 성공 - Context: { - "connection": "db:3306", - "database": "hyungi", - "connectionLimit": 10 -} -[2026-01-26T06:13:42.820Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 200, - "duration": "103ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-01-26T06:13:50.443Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T06:13:59.633Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 200, - "duration": "66ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-01-26T06:14:10.182Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "curl/8.7.1" -} -[2026-01-26T06:14:16.390Z] [WARN] ⚠️ 인증 실패: Bearer 토큰 누락 - Context: { - "path": "/", - "method": "GET", - "ip": "::ffff:192.168.65.1" -} -[2026-01-26T06:14:16.391Z] [WARN] ⚠️ Bearer 토큰이 필요합니다 - Context: { - "code": "AUTHENTICATION_ERROR", - "url": "/api/daily-work-reports/work-types", - "method": "GET", - "user": "anonymous" -} -[2026-01-26T06:14:16.393Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 401, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-01-26T06:14:20.533Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T06:14:50.613Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T06:15:20.706Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T06:15:24.748Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2026-01-26T06:15:24.750Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-01-26T06:15:25.188Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-26T06:15:25.256Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-01-26T06:15:25.318Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2026-01-26T06:15:25.321Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-01-26T06:15:30.094Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T06:15:37.941Z] [INFO] ℹ️ MariaDB 연결 성공 - Context: { - "connection": "db:3306", - "database": "hyungi", - "connectionLimit": 10 -} -[2026-01-26T06:15:37.955Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "49ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T06:15:38.908Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T06:15:40.069Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "18ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T06:15:40.107Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T06:15:41.053Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T06:16:00.180Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T06:16:30.278Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T06:17:00.386Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T06:17:30.464Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T06:18:00.555Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T06:18:30.646Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T06:18:39.103Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T06:18:39.113Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T06:18:40.102Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T06:19:00.741Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T06:19:30.837Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T06:20:00.927Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T06:20:31.017Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T06:20:39.557Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "15ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T06:20:39.581Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T06:20:40.539Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T06:20:42.908Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "19ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T06:20:42.914Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces", - "statusCode": 200, - "duration": "14ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T06:20:43.886Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T06:20:45.859Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T06:20:46.848Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T06:21:01.151Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T06:21:31.249Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T06:22:01.344Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T06:22:31.439Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T06:23:01.536Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T06:23:31.817Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T06:24:01.911Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T06:24:30.211Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T06:24:31.163Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T06:24:32.044Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T06:25:02.147Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T06:25:32.254Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T06:25:56.403Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T06:25:56.428Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T06:25:57.390Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T06:26:02.353Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T06:26:09.481Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-26", - "requester": 1, - "isAdmin": false -} -[2026-01-26T06:26:09.485Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-26T06:26:09.486Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-26&view_all=true", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T06:26:09.489Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T06:26:09.508Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users/1/page-access", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T06:26:11.581Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T06:26:11.642Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects?is_active=1", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T06:26:11.648Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/tbm/safety-checks", - "method": "GET" -} -[2026-01-26T06:26:11.650Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/tbm/safety-checks", - "statusCode": 404, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T06:26:11.656Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/tbm/sessions/date/2026-01-26", - "method": "GET" -} -[2026-01-26T06:26:11.658Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-26", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T06:26:12.577Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T06:26:32.469Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T06:27:02.566Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T06:27:32.653Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T06:28:02.741Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T06:28:32.836Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T06:29:02.941Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T06:29:33.042Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T06:30:03.148Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T06:30:33.259Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T06:31:03.359Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T06:31:33.454Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T06:32:03.541Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T06:32:18.659Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2026-01-26T06:32:18.661Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-01-26T06:32:19.109Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-26T06:32:19.565Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-26T06:32:20.084Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-26T06:32:20.801Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-26T06:32:21.939Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-26T06:32:23.877Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-26T06:32:27.397Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-26T06:32:34.150Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-26T06:32:47.315Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-26T06:33:12.638Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-26T06:33:12.707Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-01-26T06:33:12.778Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2026-01-26T06:33:12.780Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-01-26T06:33:17.565Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T06:33:34.381Z] [INFO] ℹ️ MariaDB 연결 성공 - Context: { - "connection": "db:3306", - "database": "hyungi", - "connectionLimit": 10 -} -[2026-01-26T06:33:34.462Z] [WARN] ⚠️ 아이디 또는 비밀번호가 올바르지 않습니다. - Context: { - "code": "AUTHENTICATION_ERROR", - "url": "/api/auth/login", - "method": "POST", - "user": "anonymous" -} -[2026-01-26T06:33:34.463Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 401, - "duration": "97ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-01-26T06:33:38.747Z] [WARN] ⚠️ 아이디 또는 비밀번호가 올바르지 않습니다. - Context: { - "code": "AUTHENTICATION_ERROR", - "url": "/api/auth/login", - "method": "POST", - "user": "anonymous" -} -[2026-01-26T06:33:38.749Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 401, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-01-26T06:33:47.673Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T06:33:52.031Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/safety-checks", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "curl/8.7.1" -} -[2026-01-26T06:33:57.929Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-26", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "curl/8.7.1" -} -[2026-01-26T06:34:17.776Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T06:34:47.857Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T06:35:17.945Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T06:35:48.048Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T06:35:56.403Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "64ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T06:35:56.427Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects?is_active=1", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T06:35:56.435Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/safety-checks", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T06:35:56.441Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T06:35:56.448Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks/active/list", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T06:35:56.456Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-26", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T06:35:57.323Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T06:36:18.148Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T06:36:48.235Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T06:37:18.315Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T06:37:48.401Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T06:38:18.503Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T06:38:48.612Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T06:39:18.702Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T06:39:48.791Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T06:40:18.885Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T06:40:48.975Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T06:41:19.077Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T06:41:49.168Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T06:42:19.260Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T06:42:49.351Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T06:43:19.450Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T06:43:49.541Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T06:44:19.636Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T06:44:49.714Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T06:45:19.822Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T06:45:49.911Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T06:46:20.020Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T06:46:50.118Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T06:47:20.220Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T06:47:50.306Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T06:48:20.409Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T06:48:50.502Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T06:49:20.630Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T06:49:50.782Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T06:49:55.665Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "17ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T06:49:55.684Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects?is_active=1", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T06:49:55.703Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/safety-checks", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T06:49:55.717Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T06:49:55.732Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks/active/list", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T06:49:55.747Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?is_active=true", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T06:49:55.755Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-26", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T06:49:56.643Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T06:50:20.864Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T06:50:50.961Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T06:51:21.047Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T06:51:51.134Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T06:52:21.223Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T06:52:51.314Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T06:53:21.425Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T06:53:51.539Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T06:54:21.639Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T06:54:51.720Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T06:55:21.786Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T06:55:51.885Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T06:56:21.978Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T06:56:52.070Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T06:57:22.164Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T06:57:52.245Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T06:58:22.321Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T06:58:52.397Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T06:59:22.514Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T07:27:14.326Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T07:27:44.420Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T08:08:38.553Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T08:09:08.653Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T08:39:53.768Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T09:00:28.016Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T09:00:58.116Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T09:51:42.266Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T10:01:55.045Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T10:17:45.579Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T10:18:15.669Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T11:02:34.809Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T11:03:05.043Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T12:03:31.760Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T12:04:01.848Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T13:04:28.856Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T13:04:58.949Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T13:07:04.613Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T13:07:35.081Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T14:05:36.847Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T14:06:06.941Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T14:37:59.617Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T14:38:29.722Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T14:41:23.107Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T15:01:38.010Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T15:02:08.091Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T15:11:36.224Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T15:13:01.787Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T15:37:25.446Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T15:37:55.553Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T15:55:54.842Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T15:56:24.918Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T16:38:20.478Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T16:38:50.567Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T17:08:02.881Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T17:24:26.596Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T17:24:57.169Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T17:41:14.916Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T17:41:45.008Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T17:57:19.808Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T18:08:26.409Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T18:08:56.494Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T19:00:18.285Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T19:33:38.612Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T19:34:08.709Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T19:38:27.436Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T19:48:05.080Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T19:48:35.175Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T19:58:27.882Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T20:30:50.364Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T20:59:24.778Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T21:16:15.848Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T21:29:37.613Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "5ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T21:30:07.702Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T21:30:37.803Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T21:31:07.914Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T21:31:38.018Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T21:32:08.110Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T21:32:38.199Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T21:33:08.293Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T21:33:38.381Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T21:34:08.471Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T21:34:38.541Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T21:35:08.618Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T21:35:38.694Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T21:36:08.798Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T21:36:38.885Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T21:37:08.973Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T21:37:39.070Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T21:38:09.165Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T21:38:39.285Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T21:39:09.370Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T21:39:10.318Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T21:39:10.340Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects?is_active=1", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T21:39:10.350Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/safety-checks", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T21:39:10.358Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T21:39:10.363Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks/active/list", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T21:39:10.371Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?is_active=true", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T21:39:10.377Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/active/list", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T21:39:10.384Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-26", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T21:39:11.298Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T21:39:39.469Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T21:40:09.560Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T21:40:39.675Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T21:41:09.766Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T21:41:39.862Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T21:42:09.955Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T21:42:40.107Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T21:43:10.229Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T21:43:40.322Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T21:44:10.416Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T21:44:40.519Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T21:45:10.618Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T21:45:29.105Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "37ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T21:45:29.120Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects?is_active=1", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T21:45:29.129Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/safety-checks", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T21:45:29.137Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T21:45:29.145Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks/active/list", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T21:45:29.152Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?is_active=true", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T21:45:29.158Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/active/list", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T21:45:29.165Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-26", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T21:45:30.060Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T21:45:40.719Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T21:45:51.255Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T21:46:10.813Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T21:46:40.918Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T21:46:49.425Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T21:47:02.528Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T21:47:11.006Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T21:47:41.109Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T21:48:11.202Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T21:48:41.297Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T21:49:11.401Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T21:49:41.498Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T21:50:11.594Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T21:50:41.690Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T21:51:11.781Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T21:51:41.873Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T21:52:11.970Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T21:52:38.220Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "14ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T21:52:38.236Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects?is_active=1", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T21:52:38.248Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/safety-checks", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T21:52:38.264Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T21:52:38.276Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks/active/list", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T21:52:38.284Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?is_active=true", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T21:52:38.289Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/active/list", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T21:52:38.296Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-26", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T21:52:39.198Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T21:52:42.072Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T21:53:04.574Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T21:53:12.165Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T21:53:26.020Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-26", - "requester": 1, - "isAdmin": false -} -[2026-01-26T21:53:26.028Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-26T21:53:26.029Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-26&view_all=true", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T21:53:26.031Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "15ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T21:53:26.062Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users/1/page-access", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T21:53:27.014Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T21:53:27.745Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T21:53:28.740Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T21:53:30.083Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T21:53:30.097Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T21:53:31.059Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T21:53:42.252Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T21:54:12.373Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T21:54:17.494Z] [INFO] ℹ️ 작업 생성 요청 - Context: { - "name": "H빔 절단" -} -[2026-01-26T21:54:17.501Z] [INFO] ℹ️ 작업 생성 성공 - Context: { - "task_id": 1 -} -[2026-01-26T21:54:17.503Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/tasks", - "statusCode": 201, - "duration": "13ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T21:54:17.515Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T21:54:17.529Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T21:54:42.455Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T21:55:12.553Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T21:55:42.647Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T21:56:12.762Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T21:56:42.855Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T21:57:12.942Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T21:57:43.040Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T21:58:13.128Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T21:58:43.224Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T21:58:52.461Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T21:58:53.457Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T21:58:59.701Z] [INFO] ℹ️ 프로젝트 수정 성공 - Context: { - "project_id": 14 -} -[2026-01-26T21:58:59.703Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "PUT", - "url": "/api/projects/14", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T21:58:59.715Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T21:59:06.567Z] [INFO] ℹ️ 프로젝트 수정 성공 - Context: { - "project_id": 12 -} -[2026-01-26T21:59:06.569Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "PUT", - "url": "/api/projects/12", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T21:59:06.581Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T21:59:13.180Z] [INFO] ℹ️ 프로젝트 수정 성공 - Context: { - "project_id": 10 -} -[2026-01-26T21:59:13.183Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "PUT", - "url": "/api/projects/10", - "statusCode": 200, - "duration": "14ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T21:59:13.195Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T21:59:13.302Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T21:59:16.995Z] [INFO] ℹ️ 프로젝트 수정 성공 - Context: { - "project_id": 5 -} -[2026-01-26T21:59:16.997Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "PUT", - "url": "/api/projects/5", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T21:59:17.008Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T21:59:20.638Z] [INFO] ℹ️ 프로젝트 수정 성공 - Context: { - "project_id": 4 -} -[2026-01-26T21:59:20.641Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "PUT", - "url": "/api/projects/4", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T21:59:20.651Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T21:59:27.352Z] [INFO] ℹ️ 프로젝트 수정 성공 - Context: { - "project_id": 2 -} -[2026-01-26T21:59:27.355Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "PUT", - "url": "/api/projects/2", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T21:59:27.369Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T21:59:30.442Z] [INFO] ℹ️ 프로젝트 수정 성공 - Context: { - "project_id": 1 -} -[2026-01-26T21:59:30.444Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "PUT", - "url": "/api/projects/1", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T21:59:30.457Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T21:59:36.833Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T21:59:37.828Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T21:59:42.168Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-26", - "requester": 1, - "isAdmin": false -} -[2026-01-26T21:59:42.171Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-26T21:59:42.173Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-26&view_all=true", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T21:59:42.176Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 304, - "duration": "14ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T21:59:42.189Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/users/1/page-access", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T21:59:43.164Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T21:59:43.405Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T21:59:44.034Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T21:59:44.120Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects?is_active=1", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T21:59:44.275Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/safety-checks", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T21:59:44.284Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T21:59:44.292Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks/active/list", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T21:59:44.298Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?is_active=true", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T21:59:44.302Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/active/list", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T21:59:44.309Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-26", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T21:59:45.019Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T22:00:13.509Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T22:00:43.604Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T22:01:13.695Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T22:01:43.783Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T22:02:13.872Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T22:02:25.781Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-26", - "requester": 1, - "isAdmin": false -} -[2026-01-26T22:02:25.786Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T22:02:25.790Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-26T22:02:25.790Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-26&view_all=true", - "statusCode": 304, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T22:02:25.802Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/users/1/page-access", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T22:02:26.773Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T22:02:29.222Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 304, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T22:02:30.553Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T22:02:30.562Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T22:02:31.534Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T22:02:43.967Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T22:03:14.058Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T22:03:44.136Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T22:04:14.227Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T22:04:44.315Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T22:05:14.399Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T22:05:44.483Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T22:06:14.574Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T22:06:44.668Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T22:07:14.758Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T22:07:44.851Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T22:08:14.953Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T22:08:45.042Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T22:09:15.130Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T22:09:45.229Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T22:10:15.308Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T22:10:45.400Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T22:11:15.477Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T22:11:45.566Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T22:12:15.664Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T22:12:45.756Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T22:13:15.849Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T22:13:45.931Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T22:14:16.016Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T22:14:46.108Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T22:15:16.205Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T22:15:46.295Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T22:16:16.400Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T22:16:46.473Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T22:17:16.530Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T22:17:46.591Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T22:18:16.661Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T22:18:46.735Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T22:19:16.817Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T22:19:46.906Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T22:20:17.012Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T22:20:47.105Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T22:21:17.203Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T22:21:47.296Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T22:22:17.381Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T22:22:47.463Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T22:23:17.551Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T22:23:47.634Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T22:24:17.717Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T22:24:47.787Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T22:25:17.877Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T22:25:47.957Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T22:26:18.052Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T22:26:48.135Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T22:27:18.249Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T22:27:48.339Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T22:28:18.428Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T22:28:48.514Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T22:29:18.605Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T22:29:48.695Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T22:30:18.810Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T22:30:48.911Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T22:31:18.986Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T22:31:49.071Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T22:32:19.163Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T22:32:49.252Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T22:33:19.343Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T22:33:49.432Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T22:34:00.529Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2026-01-26T22:34:00.530Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-01-26T22:34:00.949Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-26T22:34:01.010Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-01-26T22:34:01.073Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2026-01-26T22:34:01.076Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-01-26T22:34:05.854Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T22:34:35.941Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T22:35:06.035Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T22:35:36.128Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T22:36:06.194Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T22:36:36.276Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T22:37:06.366Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T22:37:16.527Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2026-01-26T22:37:16.530Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-01-26T22:37:16.966Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-26T22:37:17.032Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-01-26T22:37:17.091Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2026-01-26T22:37:17.096Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-01-26T22:37:21.852Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T22:37:51.942Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T22:38:22.044Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T22:38:52.128Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T22:39:22.222Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T22:39:52.329Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T22:40:22.421Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T22:40:52.510Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T22:41:22.602Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T22:41:52.682Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T22:42:22.773Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T22:42:52.869Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T22:43:22.952Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T22:43:53.039Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T22:44:23.140Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T22:44:53.231Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T22:45:23.339Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T22:45:53.444Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T22:46:23.531Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T22:46:24.742Z] [INFO] ℹ️ MariaDB 연결 성공 - Context: { - "connection": "db:3306", - "database": "hyungi", - "connectionLimit": 10 -} -[2026-01-26T22:46:24.758Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "67ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T22:46:25.677Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T22:46:29.222Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-26", - "requester": 1, - "isAdmin": false -} -[2026-01-26T22:46:29.230Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-26T22:46:29.231Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-26&view_all=true", - "statusCode": 200, - "duration": "14ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T22:46:29.232Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "21ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T22:46:29.246Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users/1/page-access", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T22:46:30.196Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T22:46:34.655Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T22:46:35.641Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T22:46:38.338Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "15ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T22:46:38.350Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T22:46:39.308Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T22:46:53.633Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T22:47:23.741Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T22:47:53.842Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T22:48:23.927Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T22:48:54.246Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T22:49:24.349Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T22:49:54.642Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T22:57:28.174Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T22:57:41.173Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "50ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T22:57:41.183Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces", - "statusCode": 200, - "duration": "20ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T22:57:42.048Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T22:57:44.422Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T22:57:58.266Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T22:58:28.380Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T22:58:44.044Z] [INFO] ℹ️ 카테고리 레이아웃 이미지 업로드 요청 - Context: { - "category_id": "1", - "path": "/uploads/workplace-layout-1769468324035-929214788.jpg" -} -[2026-01-26T22:58:44.061Z] [INFO] ℹ️ 레이아웃 이미지 업로드 성공 - Context: { - "category_id": "1" -} -[2026-01-26T22:58:44.062Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/workplaces/categories/1/layout-image", - "statusCode": 200, - "duration": "40ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T22:58:44.072Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T22:58:58.489Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T22:59:28.608Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T22:59:58.708Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T23:00:28.804Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T23:00:58.882Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T23:01:28.995Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T23:01:59.099Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T23:02:29.202Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T23:02:39.464Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:02:39.469Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:02:40.454Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:02:42.039Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:02:47.444Z] [INFO] ℹ️ 카테고리 레이아웃 이미지 업로드 요청 - Context: { - "category_id": "1", - "path": "/uploads/workplace-layout-1769468567436-256578465.jpg" -} -[2026-01-26T23:02:47.448Z] [INFO] ℹ️ 레이아웃 이미지 업로드 성공 - Context: { - "category_id": "1" -} -[2026-01-26T23:02:47.450Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/workplaces/categories/1/layout-image", - "statusCode": 200, - "duration": "18ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:02:47.466Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:02:59.304Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T23:03:29.393Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T23:03:45.096Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2026-01-26T23:03:45.099Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-01-26T23:03:45.543Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-26T23:03:45.614Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-01-26T23:03:45.678Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2026-01-26T23:03:45.684Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-01-26T23:03:50.427Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T23:04:20.534Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T23:04:45.092Z] [INFO] ℹ️ MariaDB 연결 성공 - Context: { - "connection": "db:3306", - "database": "hyungi", - "connectionLimit": 10 -} -[2026-01-26T23:04:45.098Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 304, - "duration": "41ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:04:50.635Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T23:04:50.991Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:04:51.020Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces", - "statusCode": 200, - "duration": "24ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:04:51.992Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:04:56.046Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:05:00.606Z] [INFO] ℹ️ 카테고리 레이아웃 이미지 업로드 요청 - Context: { - "category_id": "1", - "path": "/uploads/workplace-layout-1769468700596-144979470.jpg" -} -[2026-01-26T23:05:00.610Z] [INFO] ℹ️ 레이아웃 이미지 업로드 성공 - Context: { - "category_id": "1" -} -[2026-01-26T23:05:00.611Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/workplaces/categories/1/layout-image", - "statusCode": 200, - "duration": "24ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:05:00.624Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:05:13.249Z] [INFO] ℹ️ 지도 영역 생성 요청 - Context: { - "workplace_id": 12 -} -[2026-01-26T23:05:13.254Z] [INFO] ℹ️ 지도 영역 생성 성공 - Context: { - "region_id": 1 -} -[2026-01-26T23:05:13.255Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/workplaces/map-regions", - "statusCode": 201, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:05:13.266Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:05:20.736Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T23:05:23.314Z] [INFO] ℹ️ 지도 영역 생성 요청 - Context: { - "workplace_id": 11 -} -[2026-01-26T23:05:23.319Z] [INFO] ℹ️ 지도 영역 생성 성공 - Context: { - "region_id": 2 -} -[2026-01-26T23:05:23.322Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/workplaces/map-regions", - "statusCode": 201, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:05:23.333Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:05:50.840Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T23:05:53.906Z] [INFO] ℹ️ 지도 영역 생성 요청 - Context: { - "workplace_id": 4 -} -[2026-01-26T23:05:53.913Z] [INFO] ℹ️ 지도 영역 생성 성공 - Context: { - "region_id": 3 -} -[2026-01-26T23:05:53.914Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/workplaces/map-regions", - "statusCode": 201, - "duration": "12ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:05:53.927Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:06:03.210Z] [INFO] ℹ️ 지도 영역 생성 요청 - Context: { - "workplace_id": 9 -} -[2026-01-26T23:06:03.214Z] [INFO] ℹ️ 지도 영역 생성 성공 - Context: { - "region_id": 4 -} -[2026-01-26T23:06:03.218Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/workplaces/map-regions", - "statusCode": 201, - "duration": "11ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:06:03.231Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:06:08.070Z] [INFO] ℹ️ 지도 영역 생성 요청 - Context: { - "workplace_id": 10 -} -[2026-01-26T23:06:08.075Z] [INFO] ℹ️ 지도 영역 생성 성공 - Context: { - "region_id": 5 -} -[2026-01-26T23:06:08.077Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/workplaces/map-regions", - "statusCode": 201, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:06:08.088Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:06:15.303Z] [INFO] ℹ️ 지도 영역 생성 요청 - Context: { - "workplace_id": 5 -} -[2026-01-26T23:06:15.308Z] [INFO] ℹ️ 지도 영역 생성 성공 - Context: { - "region_id": 6 -} -[2026-01-26T23:06:15.310Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/workplaces/map-regions", - "statusCode": 201, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:06:15.324Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:06:20.927Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T23:06:29.824Z] [INFO] ℹ️ 지도 영역 생성 요청 - Context: { - "workplace_id": 3 -} -[2026-01-26T23:06:29.829Z] [INFO] ℹ️ 지도 영역 생성 성공 - Context: { - "region_id": 7 -} -[2026-01-26T23:06:29.831Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/workplaces/map-regions", - "statusCode": 201, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:06:29.847Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:06:37.749Z] [INFO] ℹ️ 지도 영역 생성 요청 - Context: { - "workplace_id": 1 -} -[2026-01-26T23:06:37.754Z] [INFO] ℹ️ 지도 영역 생성 성공 - Context: { - "region_id": 8 -} -[2026-01-26T23:06:37.757Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/workplaces/map-regions", - "statusCode": 201, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:06:37.769Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:06:46.041Z] [INFO] ℹ️ 지도 영역 생성 요청 - Context: { - "workplace_id": 8 -} -[2026-01-26T23:06:46.044Z] [INFO] ℹ️ 지도 영역 생성 성공 - Context: { - "region_id": 9 -} -[2026-01-26T23:06:46.046Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/workplaces/map-regions", - "statusCode": 201, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:06:46.058Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:06:51.022Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T23:06:51.410Z] [INFO] ℹ️ 지도 영역 생성 요청 - Context: { - "workplace_id": 7 -} -[2026-01-26T23:06:51.414Z] [INFO] ℹ️ 지도 영역 생성 성공 - Context: { - "region_id": 10 -} -[2026-01-26T23:06:51.416Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/workplaces/map-regions", - "statusCode": 201, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:06:51.429Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:06:59.569Z] [INFO] ℹ️ 지도 영역 생성 요청 - Context: { - "workplace_id": 2 -} -[2026-01-26T23:06:59.573Z] [INFO] ℹ️ 지도 영역 생성 성공 - Context: { - "region_id": 11 -} -[2026-01-26T23:06:59.575Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/workplaces/map-regions", - "statusCode": 201, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:06:59.586Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:07:10.042Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:07:21.110Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T23:07:51.217Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T23:08:21.310Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T23:08:42.548Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:08:42.550Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:08:43.533Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:08:44.731Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:08:51.411Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T23:08:57.729Z] [INFO] ℹ️ 카테고리 레이아웃 이미지 업로드 요청 - Context: { - "category_id": "1", - "path": "/uploads/workplace-layout-1769468937720-622731913.jpg" -} -[2026-01-26T23:08:57.735Z] [INFO] ℹ️ 레이아웃 이미지 업로드 성공 - Context: { - "category_id": "1" -} -[2026-01-26T23:08:57.736Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/workplaces/categories/1/layout-image", - "statusCode": 200, - "duration": "20ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:08:57.753Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:09:05.327Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:09:05.328Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:09:06.321Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:09:07.756Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:09:21.508Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T23:09:30.532Z] [WARN] ⚠️ 인증 실패: Authorization 헤더 없음 - Context: { - "path": "/", - "method": "GET", - "ip": "::ffff:192.168.65.1" -} -[2026-01-26T23:09:30.534Z] [WARN] ⚠️ Authorization 헤더가 필요합니다 - Context: { - "code": "AUTHENTICATION_ERROR", - "url": "/api/workplaces/categories", - "method": "GET", - "user": "anonymous" -} -[2026-01-26T23:09:30.536Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 401, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-01-26T23:09:39.168Z] [INFO] ℹ️ 카테고리 레이아웃 이미지 업로드 요청 - Context: { - "category_id": "1", - "path": "/uploads/workplace-layout-1769468979164-175068568.jpg" -} -[2026-01-26T23:09:39.174Z] [INFO] ℹ️ 레이아웃 이미지 업로드 성공 - Context: { - "category_id": "1" -} -[2026-01-26T23:09:39.175Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/workplaces/categories/1/layout-image", - "statusCode": 200, - "duration": "17ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:09:39.188Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:09:46.413Z] [WARN] ⚠️ 인증 실패: Bearer 토큰 누락 - Context: { - "path": "/", - "method": "GET", - "ip": "::ffff:192.168.65.1" -} -[2026-01-26T23:09:46.416Z] [WARN] ⚠️ Bearer 토큰이 필요합니다 - Context: { - "code": "AUTHENTICATION_ERROR", - "url": "/api/workplaces/categories", - "method": "GET", - "user": "anonymous" -} -[2026-01-26T23:09:46.419Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 401, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-01-26T23:09:51.590Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T23:09:51.705Z] [WARN] ⚠️ 아이디 또는 비밀번호가 올바르지 않습니다. - Context: { - "code": "AUTHENTICATION_ERROR", - "url": "/api/auth/login", - "method": "POST", - "user": "anonymous" -} -[2026-01-26T23:09:51.706Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 401, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-01-26T23:10:21.688Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T23:10:25.550Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2026-01-26T23:10:25.552Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-01-26T23:10:25.985Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-26T23:10:26.058Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-01-26T23:10:26.128Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2026-01-26T23:10:26.131Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-01-26T23:10:30.909Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T23:10:52.392Z] [INFO] ℹ️ MariaDB 연결 성공 - Context: { - "connection": "db:3306", - "database": "hyungi", - "connectionLimit": 10 -} -[2026-01-26T23:10:52.397Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "53ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:10:52.398Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces", - "statusCode": 200, - "duration": "45ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:10:53.335Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:11:00.012Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:11:01.008Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T23:11:31.102Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T23:12:01.200Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T23:12:03.138Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-26", - "requester": 1, - "isAdmin": false -} -[2026-01-26T23:12:03.144Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-26T23:12:03.146Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-26&view_all=true", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:12:03.155Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "31ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:12:03.179Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users/1/page-access", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:12:04.102Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:12:04.671Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "15ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:12:04.689Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects?is_active=1", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:12:04.700Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/safety-checks", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:12:04.708Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:12:04.719Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks/active/list", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:12:04.730Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?is_active=true", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:12:04.738Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/active/list", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:12:04.753Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-26", - "statusCode": 500, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:12:05.589Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:12:14.091Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:12:31.303Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T23:13:01.383Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T23:13:19.666Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-26", - "requester": 1, - "isAdmin": false -} -[2026-01-26T23:13:19.670Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-26T23:13:19.672Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-26&view_all=true", - "statusCode": 304, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:13:19.674Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "16ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:13:19.698Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/users/1/page-access", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:13:20.651Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:13:21.301Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:13:22.111Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:13:22.113Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:13:23.110Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:13:31.484Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T23:14:01.576Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T23:14:31.652Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T23:15:01.723Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T23:15:31.808Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T23:16:01.896Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T23:16:31.991Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T23:17:02.071Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T23:17:32.174Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T23:18:02.269Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T23:18:32.359Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T23:19:02.453Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T23:19:32.535Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T23:20:02.615Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T23:20:32.718Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T23:20:54.585Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2026-01-26T23:20:54.587Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-01-26T23:20:55.021Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-26T23:20:55.092Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-01-26T23:20:55.156Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2026-01-26T23:20:55.159Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-01-26T23:20:59.925Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T23:21:30.016Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T23:22:00.101Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T23:22:30.195Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T23:23:00.279Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T23:23:30.374Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T23:24:00.456Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T23:24:14.503Z] [INFO] ℹ️ MariaDB 연결 성공 - Context: { - "connection": "db:3306", - "database": "hyungi", - "connectionLimit": 10 -} -[2026-01-26T23:24:14.524Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "52ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:24:14.528Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces", - "statusCode": 200, - "duration": "48ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:24:14.587Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/12/map-region", - "method": "GET" -} -[2026-01-26T23:24:14.589Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/12/map-region", - "statusCode": 404, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:24:14.590Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/6/map-region", - "method": "GET" -} -[2026-01-26T23:24:14.591Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/6/map-region", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:24:14.593Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/5/map-region", - "method": "GET" -} -[2026-01-26T23:24:14.594Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/5/map-region", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:24:14.596Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/10/map-region", - "method": "GET" -} -[2026-01-26T23:24:14.597Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/10/map-region", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:24:14.599Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/11/map-region", - "method": "GET" -} -[2026-01-26T23:24:14.601Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/11/map-region", - "statusCode": 404, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:24:14.606Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/8/map-region", - "method": "GET" -} -[2026-01-26T23:24:14.606Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/8/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:24:14.608Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/3/map-region", - "method": "GET" -} -[2026-01-26T23:24:14.609Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/3/map-region", - "statusCode": 404, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:24:14.610Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/2/map-region", - "method": "GET" -} -[2026-01-26T23:24:14.611Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/2/map-region", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:24:14.612Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/1/map-region", - "method": "GET" -} -[2026-01-26T23:24:14.612Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/1/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:24:14.613Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/9/map-region", - "method": "GET" -} -[2026-01-26T23:24:14.613Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/9/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:24:14.614Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/7/map-region", - "method": "GET" -} -[2026-01-26T23:24:14.614Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/7/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:24:14.616Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/4/map-region", - "method": "GET" -} -[2026-01-26T23:24:14.616Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/4/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:24:15.468Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:24:17.304Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/12/map-region", - "method": "GET" -} -[2026-01-26T23:24:17.307Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/12/map-region", - "statusCode": 404, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:24:17.311Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/11/map-region", - "method": "GET" -} -[2026-01-26T23:24:17.313Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/11/map-region", - "statusCode": 404, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:24:17.316Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/10/map-region", - "method": "GET" -} -[2026-01-26T23:24:17.318Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/10/map-region", - "statusCode": 404, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:24:17.325Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/6/map-region", - "method": "GET" -} -[2026-01-26T23:24:17.326Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/6/map-region", - "statusCode": 404, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:24:17.328Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/9/map-region", - "method": "GET" -} -[2026-01-26T23:24:17.329Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/9/map-region", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:24:17.331Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/8/map-region", - "method": "GET" -} -[2026-01-26T23:24:17.332Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/8/map-region", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:24:17.334Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/7/map-region", - "method": "GET" -} -[2026-01-26T23:24:17.335Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/7/map-region", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:24:17.338Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/5/map-region", - "method": "GET" -} -[2026-01-26T23:24:17.338Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/5/map-region", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:24:17.340Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/4/map-region", - "method": "GET" -} -[2026-01-26T23:24:17.340Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/4/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:24:17.344Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/3/map-region", - "method": "GET" -} -[2026-01-26T23:24:17.345Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/3/map-region", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:24:17.347Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/2/map-region", - "method": "GET" -} -[2026-01-26T23:24:17.347Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/2/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:24:17.351Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/1/map-region", - "method": "GET" -} -[2026-01-26T23:24:17.352Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/1/map-region", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:24:17.374Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:24:30.547Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T23:24:38.906Z] [INFO] ℹ️ 작업장 수정 요청 - Context: { - "workplace_id": "12" -} -[2026-01-26T23:24:38.911Z] [INFO] ℹ️ 작업장 수정 성공 - Context: { - "workplace_id": "12" -} -[2026-01-26T23:24:38.911Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "PUT", - "url": "/api/workplaces/12", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:24:38.924Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:24:38.929Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:24:38.937Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/11/map-region", - "method": "GET" -} -[2026-01-26T23:24:38.938Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/11/map-region", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:24:38.940Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/10/map-region", - "method": "GET" -} -[2026-01-26T23:24:38.940Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/10/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:24:38.943Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/5/map-region", - "method": "GET" -} -[2026-01-26T23:24:38.944Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/5/map-region", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:24:38.945Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/4/map-region", - "method": "GET" -} -[2026-01-26T23:24:38.946Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/4/map-region", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:24:38.948Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/9/map-region", - "method": "GET" -} -[2026-01-26T23:24:38.949Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/9/map-region", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:24:38.950Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/8/map-region", - "method": "GET" -} -[2026-01-26T23:24:38.951Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/8/map-region", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:24:38.952Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/7/map-region", - "method": "GET" -} -[2026-01-26T23:24:38.952Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/7/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:24:38.953Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/6/map-region", - "method": "GET" -} -[2026-01-26T23:24:38.954Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/6/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:24:38.955Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/2/map-region", - "method": "GET" -} -[2026-01-26T23:24:38.956Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/2/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:24:38.957Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/3/map-region", - "method": "GET" -} -[2026-01-26T23:24:38.957Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/3/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:24:38.958Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/1/map-region", - "method": "GET" -} -[2026-01-26T23:24:38.959Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/1/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:24:38.959Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/12/map-region", - "method": "GET" -} -[2026-01-26T23:24:38.960Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/12/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:24:45.740Z] [INFO] ℹ️ 작업장 수정 요청 - Context: { - "workplace_id": "11" -} -[2026-01-26T23:24:45.744Z] [INFO] ℹ️ 작업장 수정 성공 - Context: { - "workplace_id": "11" -} -[2026-01-26T23:24:45.746Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "PUT", - "url": "/api/workplaces/11", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:24:45.759Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:24:45.765Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:24:45.774Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/10/map-region", - "method": "GET" -} -[2026-01-26T23:24:45.775Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/10/map-region", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:24:45.778Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/9/map-region", - "method": "GET" -} -[2026-01-26T23:24:45.779Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/9/map-region", - "statusCode": 404, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:24:45.781Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/4/map-region", - "method": "GET" -} -[2026-01-26T23:24:45.782Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/4/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:24:45.784Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/3/map-region", - "method": "GET" -} -[2026-01-26T23:24:45.785Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/3/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:24:45.786Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/8/map-region", - "method": "GET" -} -[2026-01-26T23:24:45.787Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/8/map-region", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:24:45.788Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/7/map-region", - "method": "GET" -} -[2026-01-26T23:24:45.789Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/7/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:24:45.790Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/6/map-region", - "method": "GET" -} -[2026-01-26T23:24:45.790Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/6/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:24:45.791Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/5/map-region", - "method": "GET" -} -[2026-01-26T23:24:45.792Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/5/map-region", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:24:45.794Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/2/map-region", - "method": "GET" -} -[2026-01-26T23:24:45.795Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/2/map-region", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:24:45.797Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/1/map-region", - "method": "GET" -} -[2026-01-26T23:24:45.798Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/1/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:24:45.799Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/11/map-region", - "method": "GET" -} -[2026-01-26T23:24:45.800Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/11/map-region", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:24:45.801Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/12/map-region", - "method": "GET" -} -[2026-01-26T23:24:45.801Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/12/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:24:51.992Z] [INFO] ℹ️ 작업장 수정 요청 - Context: { - "workplace_id": "10" -} -[2026-01-26T23:24:51.997Z] [INFO] ℹ️ 작업장 수정 성공 - Context: { - "workplace_id": "10" -} -[2026-01-26T23:24:51.998Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "PUT", - "url": "/api/workplaces/10", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:24:52.009Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:24:52.017Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:24:52.027Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/8/map-region", - "method": "GET" -} -[2026-01-26T23:24:52.029Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/8/map-region", - "statusCode": 404, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:24:52.030Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/9/map-region", - "method": "GET" -} -[2026-01-26T23:24:52.031Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/9/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:24:52.033Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/3/map-region", - "method": "GET" -} -[2026-01-26T23:24:52.034Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/3/map-region", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:24:52.036Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/2/map-region", - "method": "GET" -} -[2026-01-26T23:24:52.037Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/2/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:24:52.038Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/7/map-region", - "method": "GET" -} -[2026-01-26T23:24:52.040Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/7/map-region", - "statusCode": 404, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:24:52.041Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/6/map-region", - "method": "GET" -} -[2026-01-26T23:24:52.041Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/6/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:24:52.042Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/5/map-region", - "method": "GET" -} -[2026-01-26T23:24:52.043Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/5/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:24:52.044Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/4/map-region", - "method": "GET" -} -[2026-01-26T23:24:52.044Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/4/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:24:52.046Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/1/map-region", - "method": "GET" -} -[2026-01-26T23:24:52.046Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/1/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:24:52.048Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/10/map-region", - "method": "GET" -} -[2026-01-26T23:24:52.048Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/10/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:24:52.049Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/11/map-region", - "method": "GET" -} -[2026-01-26T23:24:52.049Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/11/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:24:52.050Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/12/map-region", - "method": "GET" -} -[2026-01-26T23:24:52.050Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/12/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:24:56.433Z] [INFO] ℹ️ 작업장 수정 요청 - Context: { - "workplace_id": "9" -} -[2026-01-26T23:24:56.441Z] [INFO] ℹ️ 작업장 수정 성공 - Context: { - "workplace_id": "9" -} -[2026-01-26T23:24:56.443Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "PUT", - "url": "/api/workplaces/9", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:24:56.453Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:24:56.457Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:24:56.475Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/8/map-region", - "method": "GET" -} -[2026-01-26T23:24:56.479Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/8/map-region", - "statusCode": 404, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:24:56.486Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/7/map-region", - "method": "GET" -} -[2026-01-26T23:24:56.488Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/7/map-region", - "statusCode": 404, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:24:56.492Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/6/map-region", - "method": "GET" -} -[2026-01-26T23:24:56.493Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/6/map-region", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:24:56.496Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/5/map-region", - "method": "GET" -} -[2026-01-26T23:24:56.496Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/5/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:24:56.499Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/4/map-region", - "method": "GET" -} -[2026-01-26T23:24:56.500Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/4/map-region", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:24:56.501Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/3/map-region", - "method": "GET" -} -[2026-01-26T23:24:56.502Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/3/map-region", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:24:56.503Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/2/map-region", - "method": "GET" -} -[2026-01-26T23:24:56.504Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/2/map-region", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:24:56.505Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/1/map-region", - "method": "GET" -} -[2026-01-26T23:24:56.505Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/1/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:24:56.508Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/10/map-region", - "method": "GET" -} -[2026-01-26T23:24:56.509Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/10/map-region", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:24:56.512Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/9/map-region", - "method": "GET" -} -[2026-01-26T23:24:56.512Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/9/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:24:56.514Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/11/map-region", - "method": "GET" -} -[2026-01-26T23:24:56.515Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/11/map-region", - "statusCode": 404, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:24:56.516Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/12/map-region", - "method": "GET" -} -[2026-01-26T23:24:56.517Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/12/map-region", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:25:00.642Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T23:25:00.757Z] [INFO] ℹ️ 작업장 수정 요청 - Context: { - "workplace_id": "8" -} -[2026-01-26T23:25:00.759Z] [INFO] ℹ️ 작업장 수정 성공 - Context: { - "workplace_id": "8" -} -[2026-01-26T23:25:00.760Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "PUT", - "url": "/api/workplaces/8", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:25:00.772Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:25:00.781Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:25:00.790Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/7/map-region", - "method": "GET" -} -[2026-01-26T23:25:00.791Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/7/map-region", - "statusCode": 404, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:25:00.792Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/6/map-region", - "method": "GET" -} -[2026-01-26T23:25:00.793Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/6/map-region", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:25:00.794Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/5/map-region", - "method": "GET" -} -[2026-01-26T23:25:00.795Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/5/map-region", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:25:00.797Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/10/map-region", - "method": "GET" -} -[2026-01-26T23:25:00.798Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/10/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:25:00.799Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/4/map-region", - "method": "GET" -} -[2026-01-26T23:25:00.800Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/4/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:25:00.801Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/2/map-region", - "method": "GET" -} -[2026-01-26T23:25:00.801Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/2/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:25:00.802Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/3/map-region", - "method": "GET" -} -[2026-01-26T23:25:00.803Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/3/map-region", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:25:00.804Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/1/map-region", - "method": "GET" -} -[2026-01-26T23:25:00.805Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/1/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:25:00.807Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/9/map-region", - "method": "GET" -} -[2026-01-26T23:25:00.808Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/9/map-region", - "statusCode": 404, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:25:00.809Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/11/map-region", - "method": "GET" -} -[2026-01-26T23:25:00.809Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/11/map-region", - "statusCode": 404, - "duration": "0ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:25:00.810Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/8/map-region", - "statusCode": 429, - "duration": "0ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:25:00.811Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/12/map-region", - "statusCode": 429, - "duration": "0ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:25:04.762Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "PUT", - "url": "/api/workplaces/7", - "statusCode": 429, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:25:10.030Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "PUT", - "url": "/api/workplaces/7", - "statusCode": 429, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:25:30.730Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T23:26:00.835Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T23:26:30.924Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T23:27:01.011Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T23:27:17.984Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2026-01-26T23:27:17.986Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-01-26T23:27:18.418Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-26T23:27:18.479Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-01-26T23:27:18.544Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2026-01-26T23:27:18.547Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-01-26T23:27:23.325Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T23:27:53.410Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T23:28:00.077Z] [INFO] ℹ️ MariaDB 연결 성공 - Context: { - "connection": "db:3306", - "database": "hyungi", - "connectionLimit": 10 -} -[2026-01-26T23:28:00.110Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "63ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:28:00.114Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces", - "statusCode": 200, - "duration": "58ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:28:00.290Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/7/map-region", - "method": "GET" -} -[2026-01-26T23:28:00.291Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/7/map-region", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:28:00.292Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/1/map-region", - "method": "GET" -} -[2026-01-26T23:28:00.293Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/1/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:28:00.294Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/10/map-region", - "method": "GET" -} -[2026-01-26T23:28:00.294Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/10/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:28:00.295Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/9/map-region", - "method": "GET" -} -[2026-01-26T23:28:00.296Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/9/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:28:00.296Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/5/map-region", - "method": "GET" -} -[2026-01-26T23:28:00.297Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/5/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:28:00.298Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/6/map-region", - "method": "GET" -} -[2026-01-26T23:28:00.298Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/6/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:28:00.300Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/2/map-region", - "method": "GET" -} -[2026-01-26T23:28:00.301Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/2/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:28:00.301Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/11/map-region", - "method": "GET" -} -[2026-01-26T23:28:00.302Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/11/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:28:00.303Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/8/map-region", - "method": "GET" -} -[2026-01-26T23:28:00.303Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/8/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:28:00.304Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/4/map-region", - "method": "GET" -} -[2026-01-26T23:28:00.304Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/4/map-region", - "statusCode": 404, - "duration": "0ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:28:00.305Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/3/map-region", - "method": "GET" -} -[2026-01-26T23:28:00.305Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/3/map-region", - "statusCode": 404, - "duration": "0ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:28:00.306Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/12/map-region", - "method": "GET" -} -[2026-01-26T23:28:00.306Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/12/map-region", - "statusCode": 404, - "duration": "0ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:28:01.044Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:28:01.269Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/7/map-region", - "method": "GET" -} -[2026-01-26T23:28:01.272Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/7/map-region", - "statusCode": 404, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:28:01.276Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/5/map-region", - "method": "GET" -} -[2026-01-26T23:28:01.277Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/5/map-region", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:28:01.279Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/6/map-region", - "method": "GET" -} -[2026-01-26T23:28:01.280Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/6/map-region", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:28:01.282Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/3/map-region", - "method": "GET" -} -[2026-01-26T23:28:01.284Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/3/map-region", - "statusCode": 404, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:28:01.288Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/4/map-region", - "method": "GET" -} -[2026-01-26T23:28:01.289Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/4/map-region", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:28:01.293Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/10/map-region", - "method": "GET" -} -[2026-01-26T23:28:01.294Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/10/map-region", - "statusCode": 404, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:28:01.297Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/9/map-region", - "method": "GET" -} -[2026-01-26T23:28:01.298Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/9/map-region", - "statusCode": 404, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:28:01.299Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/11/map-region", - "method": "GET" -} -[2026-01-26T23:28:01.299Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/11/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:28:01.301Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/1/map-region", - "method": "GET" -} -[2026-01-26T23:28:01.302Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/1/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:28:01.302Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/2/map-region", - "method": "GET" -} -[2026-01-26T23:28:01.303Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/2/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:28:01.304Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/12/map-region", - "method": "GET" -} -[2026-01-26T23:28:01.304Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/12/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:28:01.308Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/8/map-region", - "method": "GET" -} -[2026-01-26T23:28:01.308Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/8/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:28:01.329Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:28:08.619Z] [INFO] ℹ️ 작업장 수정 요청 - Context: { - "workplace_id": "7" -} -[2026-01-26T23:28:08.623Z] [INFO] ℹ️ 작업장 수정 성공 - Context: { - "workplace_id": "7" -} -[2026-01-26T23:28:08.625Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "PUT", - "url": "/api/workplaces/7", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:28:08.635Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:28:08.642Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:28:08.650Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/6/map-region", - "method": "GET" -} -[2026-01-26T23:28:08.651Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/6/map-region", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:28:08.654Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/5/map-region", - "method": "GET" -} -[2026-01-26T23:28:08.655Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/5/map-region", - "statusCode": 404, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:28:08.658Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/10/map-region", - "method": "GET" -} -[2026-01-26T23:28:08.659Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/10/map-region", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:28:08.660Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/9/map-region", - "method": "GET" -} -[2026-01-26T23:28:08.661Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/9/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:28:08.666Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/4/map-region", - "method": "GET" -} -[2026-01-26T23:28:08.667Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/4/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:28:08.668Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/2/map-region", - "method": "GET" -} -[2026-01-26T23:28:08.668Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/2/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:28:08.669Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/3/map-region", - "method": "GET" -} -[2026-01-26T23:28:08.670Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/3/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:28:08.671Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/1/map-region", - "method": "GET" -} -[2026-01-26T23:28:08.671Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/1/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:28:08.673Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/8/map-region", - "method": "GET" -} -[2026-01-26T23:28:08.673Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/8/map-region", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:28:08.674Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/11/map-region", - "method": "GET" -} -[2026-01-26T23:28:08.675Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/11/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:28:08.677Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/7/map-region", - "method": "GET" -} -[2026-01-26T23:28:08.677Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/7/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:28:08.678Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/12/map-region", - "method": "GET" -} -[2026-01-26T23:28:08.679Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/12/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:28:16.405Z] [INFO] ℹ️ 작업장 수정 요청 - Context: { - "workplace_id": "5" -} -[2026-01-26T23:28:16.410Z] [INFO] ℹ️ 작업장 수정 성공 - Context: { - "workplace_id": "5" -} -[2026-01-26T23:28:16.411Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "PUT", - "url": "/api/workplaces/5", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:28:16.429Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:28:16.430Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:28:16.438Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/6/map-region", - "method": "GET" -} -[2026-01-26T23:28:16.439Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/6/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:28:16.440Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/4/map-region", - "method": "GET" -} -[2026-01-26T23:28:16.441Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/4/map-region", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:28:16.444Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/9/map-region", - "method": "GET" -} -[2026-01-26T23:28:16.445Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/9/map-region", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:28:16.446Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/11/map-region", - "method": "GET" -} -[2026-01-26T23:28:16.447Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/11/map-region", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:28:16.450Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/3/map-region", - "method": "GET" -} -[2026-01-26T23:28:16.450Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/3/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:28:16.451Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/2/map-region", - "method": "GET" -} -[2026-01-26T23:28:16.452Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/2/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:28:16.453Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/10/map-region", - "method": "GET" -} -[2026-01-26T23:28:16.454Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/10/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:28:16.455Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/1/map-region", - "method": "GET" -} -[2026-01-26T23:28:16.456Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/1/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:28:16.457Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/7/map-region", - "method": "GET" -} -[2026-01-26T23:28:16.457Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/7/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:28:16.459Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/8/map-region", - "method": "GET" -} -[2026-01-26T23:28:16.460Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/8/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:28:16.462Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/12/map-region", - "method": "GET" -} -[2026-01-26T23:28:16.463Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/12/map-region", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:28:16.463Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/5/map-region", - "method": "GET" -} -[2026-01-26T23:28:16.464Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/5/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:28:21.307Z] [INFO] ℹ️ 작업장 수정 요청 - Context: { - "workplace_id": "6" -} -[2026-01-26T23:28:21.311Z] [INFO] ℹ️ 작업장 수정 성공 - Context: { - "workplace_id": "6" -} -[2026-01-26T23:28:21.313Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "PUT", - "url": "/api/workplaces/6", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:28:21.326Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:28:21.331Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:28:21.340Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/4/map-region", - "method": "GET" -} -[2026-01-26T23:28:21.342Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/4/map-region", - "statusCode": 404, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:28:21.344Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/3/map-region", - "method": "GET" -} -[2026-01-26T23:28:21.345Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/3/map-region", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:28:21.347Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/2/map-region", - "method": "GET" -} -[2026-01-26T23:28:21.347Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/2/map-region", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:28:21.351Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/8/map-region", - "method": "GET" -} -[2026-01-26T23:28:21.352Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/8/map-region", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:28:21.353Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/10/map-region", - "method": "GET" -} -[2026-01-26T23:28:21.353Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/10/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:28:21.355Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/1/map-region", - "method": "GET" -} -[2026-01-26T23:28:21.356Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/1/map-region", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:28:21.358Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/9/map-region", - "method": "GET" -} -[2026-01-26T23:28:21.359Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/9/map-region", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:28:21.360Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/11/map-region", - "method": "GET" -} -[2026-01-26T23:28:21.361Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/11/map-region", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:28:21.362Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/7/map-region", - "method": "GET" -} -[2026-01-26T23:28:21.362Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/7/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:28:21.364Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/12/map-region", - "method": "GET" -} -[2026-01-26T23:28:21.364Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/12/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:28:21.365Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/6/map-region", - "method": "GET" -} -[2026-01-26T23:28:21.366Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/6/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:28:21.367Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/5/map-region", - "method": "GET" -} -[2026-01-26T23:28:21.368Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/5/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:28:23.524Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T23:28:30.729Z] [INFO] ℹ️ 작업장 수정 요청 - Context: { - "workplace_id": "4" -} -[2026-01-26T23:28:30.733Z] [INFO] ℹ️ 작업장 수정 성공 - Context: { - "workplace_id": "4" -} -[2026-01-26T23:28:30.734Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "PUT", - "url": "/api/workplaces/4", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:28:30.747Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:28:30.749Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:28:30.760Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/3/map-region", - "method": "GET" -} -[2026-01-26T23:28:30.761Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/3/map-region", - "statusCode": 404, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:28:30.763Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/2/map-region", - "method": "GET" -} -[2026-01-26T23:28:30.764Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/2/map-region", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:28:30.768Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/8/map-region", - "method": "GET" -} -[2026-01-26T23:28:30.769Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/8/map-region", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:28:30.770Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/7/map-region", - "method": "GET" -} -[2026-01-26T23:28:30.770Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/7/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:28:30.773Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/9/map-region", - "method": "GET" -} -[2026-01-26T23:28:30.774Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/9/map-region", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:28:30.776Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/1/map-region", - "method": "GET" -} -[2026-01-26T23:28:30.777Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/1/map-region", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:28:30.778Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/10/map-region", - "method": "GET" -} -[2026-01-26T23:28:30.778Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/10/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:28:30.780Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/11/map-region", - "method": "GET" -} -[2026-01-26T23:28:30.780Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/11/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:28:30.782Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/12/map-region", - "method": "GET" -} -[2026-01-26T23:28:30.784Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/12/map-region", - "statusCode": 404, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:28:30.785Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/4/map-region", - "method": "GET" -} -[2026-01-26T23:28:30.786Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/4/map-region", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:28:30.787Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/6/map-region", - "method": "GET" -} -[2026-01-26T23:28:30.788Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/6/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:28:30.789Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/5/map-region", - "method": "GET" -} -[2026-01-26T23:28:30.790Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/5/map-region", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:28:35.000Z] [INFO] ℹ️ 작업장 수정 요청 - Context: { - "workplace_id": "3" -} -[2026-01-26T23:28:35.004Z] [INFO] ℹ️ 작업장 수정 성공 - Context: { - "workplace_id": "3" -} -[2026-01-26T23:28:35.006Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "PUT", - "url": "/api/workplaces/3", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:28:35.018Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:28:35.022Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:28:35.029Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/2/map-region", - "method": "GET" -} -[2026-01-26T23:28:35.031Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/2/map-region", - "statusCode": 404, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:28:35.035Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/1/map-region", - "method": "GET" -} -[2026-01-26T23:28:35.036Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/1/map-region", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:28:35.037Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/10/map-region", - "method": "GET" -} -[2026-01-26T23:28:35.037Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/10/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:28:35.039Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/9/map-region", - "method": "GET" -} -[2026-01-26T23:28:35.039Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/9/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:28:35.040Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/11/map-region", - "method": "GET" -} -[2026-01-26T23:28:35.041Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/11/map-region", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:28:35.042Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/8/map-region", - "method": "GET" -} -[2026-01-26T23:28:35.043Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/8/map-region", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:28:35.044Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/7/map-region", - "method": "GET" -} -[2026-01-26T23:28:35.045Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/7/map-region", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:28:35.047Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/4/map-region", - "method": "GET" -} -[2026-01-26T23:28:35.048Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/4/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:28:35.048Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/3/map-region", - "method": "GET" -} -[2026-01-26T23:28:35.049Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/3/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:28:35.050Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/12/map-region", - "method": "GET" -} -[2026-01-26T23:28:35.050Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/12/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:28:35.051Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/6/map-region", - "method": "GET" -} -[2026-01-26T23:28:35.051Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/6/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:28:35.052Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/5/map-region", - "method": "GET" -} -[2026-01-26T23:28:35.052Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/5/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:28:38.451Z] [INFO] ℹ️ 작업장 수정 요청 - Context: { - "workplace_id": "2" -} -[2026-01-26T23:28:38.455Z] [INFO] ℹ️ 작업장 수정 성공 - Context: { - "workplace_id": "2" -} -[2026-01-26T23:28:38.456Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "PUT", - "url": "/api/workplaces/2", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:28:38.473Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:28:38.476Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:28:38.485Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/2/map-region", - "method": "GET" -} -[2026-01-26T23:28:38.486Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/2/map-region", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:28:38.488Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/1/map-region", - "method": "GET" -} -[2026-01-26T23:28:38.488Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/1/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:28:38.491Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/10/map-region", - "method": "GET" -} -[2026-01-26T23:28:38.491Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/10/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:28:38.492Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/4/map-region", - "method": "GET" -} -[2026-01-26T23:28:38.493Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/4/map-region", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:28:38.496Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/9/map-region", - "method": "GET" -} -[2026-01-26T23:28:38.497Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/9/map-region", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:28:38.498Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/11/map-region", - "method": "GET" -} -[2026-01-26T23:28:38.498Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/11/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:28:38.499Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/8/map-region", - "method": "GET" -} -[2026-01-26T23:28:38.500Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/8/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:28:38.501Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/7/map-region", - "method": "GET" -} -[2026-01-26T23:28:38.501Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/7/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:28:38.502Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/12/map-region", - "method": "GET" -} -[2026-01-26T23:28:38.503Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/12/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:28:38.504Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/3/map-region", - "method": "GET" -} -[2026-01-26T23:28:38.504Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/3/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:28:38.506Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/6/map-region", - "method": "GET" -} -[2026-01-26T23:28:38.506Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/6/map-region", - "statusCode": 404, - "duration": "0ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:28:38.507Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/5/map-region", - "method": "GET" -} -[2026-01-26T23:28:38.508Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/5/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:28:46.411Z] [INFO] ℹ️ 작업장 수정 요청 - Context: { - "workplace_id": "1" -} -[2026-01-26T23:28:46.414Z] [INFO] ℹ️ 작업장 수정 성공 - Context: { - "workplace_id": "1" -} -[2026-01-26T23:28:46.416Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "PUT", - "url": "/api/workplaces/1", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:28:46.427Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:28:46.436Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:28:46.445Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/10/map-region", - "method": "GET" -} -[2026-01-26T23:28:46.446Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/10/map-region", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:28:46.447Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/2/map-region", - "method": "GET" -} -[2026-01-26T23:28:46.448Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/2/map-region", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:28:46.450Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/7/map-region", - "method": "GET" -} -[2026-01-26T23:28:46.450Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/7/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:28:46.452Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/4/map-region", - "method": "GET" -} -[2026-01-26T23:28:46.453Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/4/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:28:46.454Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/9/map-region", - "method": "GET" -} -[2026-01-26T23:28:46.455Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/9/map-region", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:28:46.456Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/1/map-region", - "method": "GET" -} -[2026-01-26T23:28:46.457Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/1/map-region", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:28:46.458Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/11/map-region", - "method": "GET" -} -[2026-01-26T23:28:46.459Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/11/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:28:46.460Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/8/map-region", - "method": "GET" -} -[2026-01-26T23:28:46.460Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/8/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:28:46.462Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/3/map-region", - "method": "GET" -} -[2026-01-26T23:28:46.462Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/3/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:28:46.464Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/12/map-region", - "method": "GET" -} -[2026-01-26T23:28:46.464Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/12/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:28:46.465Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/6/map-region", - "method": "GET" -} -[2026-01-26T23:28:46.465Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/6/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:28:46.466Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/5/map-region", - "method": "GET" -} -[2026-01-26T23:28:46.466Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/5/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:28:50.440Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-26", - "requester": 1, - "isAdmin": false -} -[2026-01-26T23:28:50.447Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-26T23:28:50.448Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-26&view_all=true", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:28:50.450Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "18ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:28:50.464Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users/1/page-access", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:28:51.426Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:28:53.620Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T23:29:23.713Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T23:29:53.826Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T23:30:23.911Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T23:30:53.996Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T23:31:24.056Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T23:31:54.119Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T23:32:24.182Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T23:32:54.263Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T23:33:05.491Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-26", - "requester": 1, - "isAdmin": false -} -[2026-01-26T23:33:05.494Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:33:05.498Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-26T23:33:05.499Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-26&view_all=true", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:33:05.514Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users/1/page-access", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:33:06.483Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:33:07.270Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:33:07.283Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects?is_active=1", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:33:07.298Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/safety-checks", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:33:07.306Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:33:07.315Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks/active/list", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:33:07.323Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?is_active=true", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:33:07.331Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/active/list", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:33:07.342Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-26", - "statusCode": 500, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:33:08.244Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:33:15.164Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:33:15.177Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:33:24.370Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T23:33:54.464Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T23:34:24.578Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T23:34:54.667Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T23:35:24.752Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T23:35:54.848Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T23:36:24.972Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T23:36:55.069Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T23:37:25.163Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T23:37:28.792Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2026-01-26T23:37:28.793Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-01-26T23:37:29.220Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-26T23:37:29.283Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-01-26T23:37:29.349Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2026-01-26T23:37:29.355Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-01-26T23:37:34.128Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T23:38:02.606Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2026-01-26T23:38:02.608Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-01-26T23:38:02.990Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-26T23:38:03.058Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-01-26T23:38:03.115Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2026-01-26T23:38:03.120Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-01-26T23:38:07.914Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T23:38:36.444Z] [WARN] ⚠️ 인증 실패: Bearer 토큰 누락 - Context: { - "path": "/", - "method": "GET", - "ip": "::ffff:192.168.65.1" -} -[2026-01-26T23:38:36.447Z] [WARN] ⚠️ Bearer 토큰이 필요합니다 - Context: { - "code": "AUTHENTICATION_ERROR", - "url": "/api/tbm/sessions/date/2026-01-27", - "method": "GET", - "user": "anonymous" -} -[2026-01-26T23:38:36.449Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-27", - "statusCode": 401, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-01-26T23:38:38.000Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T23:38:44.930Z] [ERROR] ❌ Unexpected token ! in JSON at position 44 - Context: { - "code": "INTERNAL_ERROR", - "stack": "AppError: Unexpected token ! in JSON at position 44\n at errorHandler (/usr/src/app/middlewares/errorHandler.js:51:13)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:71:5)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/src/app/node_modules/express/lib/router/index.js:280:10)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:67:12)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)", - "url": "/api/auth/login", - "method": "POST", - "user": "anonymous" -} -[2026-01-26T23:38:52.048Z] [INFO] ℹ️ MariaDB 연결 성공 - Context: { - "connection": "db:3306", - "database": "hyungi", - "connectionLimit": 10 -} -[2026-01-26T23:38:52.051Z] [WARN] ⚠️ 아이디 또는 비밀번호가 올바르지 않습니다. - Context: { - "code": "AUTHENTICATION_ERROR", - "url": "/api/auth/login", - "method": "POST", - "user": "anonymous" -} -[2026-01-26T23:38:52.052Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 401, - "duration": "26ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-01-26T23:39:08.062Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T23:39:38.176Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T23:40:08.270Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T23:40:38.364Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T23:41:08.460Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T23:41:29.684Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "46ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:41:29.696Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects?is_active=1", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:41:29.704Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/safety-checks", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:41:29.710Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:41:29.717Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks/active/list", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:41:29.726Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?is_active=true", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:41:29.732Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/active/list", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:41:29.741Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-26", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:41:30.618Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:41:38.569Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T23:41:49.359Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:41:49.382Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:42:08.669Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T23:42:38.793Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T23:43:08.896Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T23:43:38.994Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T23:44:09.107Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T23:44:16.898Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:44:16.913Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects?is_active=1", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:44:16.936Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/safety-checks", - "statusCode": 200, - "duration": "18ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:44:16.947Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:44:16.959Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks/active/list", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:44:16.965Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?is_active=true", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:44:16.971Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/active/list", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:44:16.975Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-26", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:44:17.898Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:44:35.529Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:44:35.547Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:44:39.202Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T23:45:09.293Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T23:45:39.376Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T23:46:09.485Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T23:46:39.584Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T23:47:09.673Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T23:47:39.745Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T23:48:09.839Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T23:48:39.933Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T23:48:52.597Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2026-01-26T23:48:52.599Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-01-26T23:48:52.993Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-26T23:48:53.063Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-01-26T23:48:53.123Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2026-01-26T23:48:53.126Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-01-26T23:48:57.922Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T23:49:28.009Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T23:49:58.098Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T23:50:28.185Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T23:50:58.286Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T23:51:28.389Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T23:51:35.971Z] [INFO] ℹ️ MariaDB 연결 성공 - Context: { - "connection": "db:3306", - "database": "hyungi", - "connectionLimit": 10 -} -[2026-01-26T23:51:35.983Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "82ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:51:35.991Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects?is_active=1", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:51:36.000Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/safety-checks", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:51:36.008Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:51:36.015Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks/active/list", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:51:36.023Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?is_active=true", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:51:36.028Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/active/list", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:51:36.037Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-26", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:51:36.885Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:51:58.490Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T23:52:26.346Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:52:26.365Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:52:28.574Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T23:52:32.739Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "POST", - "url": "/api/tbm/sessions", - "statusCode": 400, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:52:33.959Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "POST", - "url": "/api/tbm/sessions", - "statusCode": 400, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:52:34.134Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "POST", - "url": "/api/tbm/sessions", - "statusCode": 400, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:52:58.671Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T23:53:28.765Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T23:53:58.856Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T23:54:28.952Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T23:54:31.134Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2026-01-26T23:54:31.136Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-01-26T23:54:31.518Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-26T23:54:31.582Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-01-26T23:54:31.645Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2026-01-26T23:54:31.647Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-01-26T23:54:36.445Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T23:55:06.537Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T23:55:36.649Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T23:55:39.122Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "20ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:55:39.146Z] [INFO] ℹ️ MariaDB 연결 성공 - Context: { - "connection": "db:3306", - "database": "hyungi", - "connectionLimit": 10 -} -[2026-01-26T23:55:39.151Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects?is_active=1", - "statusCode": 200, - "duration": "21ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:55:39.159Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/safety-checks", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:55:39.164Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:55:39.171Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks/active/list", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:55:39.177Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?is_active=true", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:55:39.182Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/active/list", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:55:39.188Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-26", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:55:40.096Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:55:56.371Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:55:56.388Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:56:03.905Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/tbm/sessions", - "statusCode": 201, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:56:03.919Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/tbm/sessions/1/team/batch", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:56:03.928Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-26", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:56:06.720Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T23:56:12.162Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/1/safety", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:56:23.068Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/1/safety", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:56:23.071Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/1", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:56:23.074Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/tbm/sessions/1/team", - "statusCode": 500, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:56:23.819Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/1", - "statusCode": 304, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:56:23.822Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/tbm/sessions/1/team", - "statusCode": 500, - "duration": "11ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:56:23.825Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/1/safety", - "statusCode": 304, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:56:25.480Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/tbm/sessions/1/team", - "statusCode": 500, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:56:36.804Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T23:57:06.903Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T23:57:36.988Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T23:58:07.084Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T23:58:09.147Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2026-01-26T23:58:09.149Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-01-26T23:58:09.552Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-26T23:58:09.618Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-01-26T23:58:09.678Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2026-01-26T23:58:09.680Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-01-26T23:58:14.475Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T23:58:44.554Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T23:59:14.651Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-26T23:59:18.315Z] [INFO] ℹ️ MariaDB 연결 성공 - Context: { - "connection": "db:3306", - "database": "hyungi", - "connectionLimit": 10 -} -[2026-01-26T23:59:18.344Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "57ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:59:18.355Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects?is_active=1", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:59:18.361Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/safety-checks", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:59:18.366Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:59:18.372Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks/active/list", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:59:18.377Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?is_active=true", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:59:18.381Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/active/list", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:59:18.390Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-26", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:59:19.280Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:59:22.800Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/1", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:59:22.812Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/tbm/sessions/1/team", - "statusCode": 500, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:59:22.818Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/1/safety", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:59:33.912Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-26", - "statusCode": 304, - "duration": "12ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:59:38.615Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-26", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:59:42.308Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/tbm/sessions/1/team", - "statusCode": 500, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:59:42.321Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/1/safety", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:59:42.323Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/1", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:59:43.607Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/tbm/sessions/1/team", - "statusCode": 500, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:59:44.725Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T00:00:14.796Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T00:00:44.871Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T00:01:14.974Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T00:01:45.055Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T00:02:15.144Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T00:02:45.223Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T00:03:15.302Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T00:03:24.194Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2026-01-27T00:03:24.196Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-01-27T00:03:24.624Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-27T00:03:24.720Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-01-27T00:03:24.781Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2026-01-27T00:03:24.784Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-01-27T00:03:29.551Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T00:03:59.644Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T00:04:29.733Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T00:04:59.804Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T00:05:29.886Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T00:05:59.983Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T00:06:30.075Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T00:07:00.164Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T00:07:30.268Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T00:08:00.367Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T00:08:30.457Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T00:09:00.553Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T00:09:30.651Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T00:10:00.751Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T00:10:15.694Z] [INFO] ℹ️ MariaDB 연결 성공 - Context: { - "connection": "db:3306", - "database": "hyungi", - "connectionLimit": 10 -} -[2026-01-27T00:10:15.707Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "53ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T00:10:15.715Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects?is_active=1", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T00:10:15.723Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/safety-checks", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T00:10:15.728Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T00:10:15.733Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks/active/list", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T00:10:15.739Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?is_active=true", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T00:10:15.742Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/active/list", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T00:10:15.748Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-27", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T00:10:16.645Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T00:10:17.593Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-27", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T00:10:18.170Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-27", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T00:10:30.849Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T00:10:48.840Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-27", - "statusCode": 304, - "duration": "16ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T00:10:52.607Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-26", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T00:10:56.305Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/1", - "statusCode": 200, - "duration": "19ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T00:10:56.317Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/tbm/sessions/1/team", - "statusCode": 500, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T00:10:56.324Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/1/safety", - "statusCode": 200, - "duration": "32ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T00:10:58.769Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/1", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T00:10:58.780Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/tbm/sessions/1/team", - "statusCode": 500, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T00:11:00.056Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/1", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T00:11:00.068Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/tbm/sessions/1/team", - "statusCode": 500, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T00:11:00.956Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T00:11:31.072Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T00:11:49.629Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2026-01-27T00:11:49.631Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-01-27T00:11:50.034Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-27T00:11:50.098Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-01-27T00:11:50.161Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2026-01-27T00:11:50.164Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-01-27T00:11:54.938Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T00:12:24.989Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T00:12:55.045Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T00:13:25.118Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T00:13:55.199Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T00:14:25.281Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T00:14:55.367Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T00:15:24.327Z] [INFO] ℹ️ MariaDB 연결 성공 - Context: { - "connection": "db:3306", - "database": "hyungi", - "connectionLimit": 10 -} -[2026-01-27T00:15:24.336Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "65ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T00:15:24.344Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects?is_active=1", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T00:15:24.354Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/safety-checks", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T00:15:24.361Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T00:15:24.371Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks/active/list", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T00:15:24.379Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?is_active=true", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T00:15:24.385Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/active/list", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T00:15:24.394Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-27", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T00:15:25.246Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T00:15:25.464Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T00:15:25.644Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-27", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T00:15:28.025Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-26", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T00:15:31.086Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/1", - "statusCode": 200, - "duration": "15ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T00:15:31.102Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/1/team", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T00:15:32.253Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/1", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T00:15:32.267Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/1/team", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T00:15:55.572Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T00:16:25.671Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T00:16:55.765Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T00:17:25.841Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T00:17:34.582Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T00:17:34.592Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects?is_active=1", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T00:17:34.602Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/safety-checks", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T00:17:34.610Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T00:17:34.619Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks/active/list", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T00:17:34.624Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?is_active=true", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T00:17:34.629Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/active/list", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T00:17:34.635Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-27", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T00:17:35.571Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T00:17:55.937Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T00:18:26.029Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T00:18:56.119Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T00:19:26.211Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T00:19:56.301Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T00:20:26.394Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T00:20:56.491Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T00:21:26.575Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T00:21:56.661Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T00:22:26.745Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T00:22:56.845Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T00:23:26.938Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T00:23:57.043Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T00:24:27.142Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T00:24:57.249Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T00:25:27.341Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T00:25:57.443Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T00:26:27.530Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T00:26:57.623Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T00:27:27.719Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T00:27:57.819Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T00:28:27.920Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T00:28:58.011Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T00:29:28.102Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T00:29:58.171Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T00:30:28.262Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T00:30:58.347Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T00:31:28.428Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T00:31:58.509Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T00:32:28.588Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T00:32:58.651Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T00:33:28.726Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T00:33:58.813Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T00:34:28.897Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T00:34:58.985Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T00:35:29.072Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T00:35:59.156Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T00:36:29.248Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T00:36:59.332Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T00:37:29.424Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T00:37:59.523Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T00:38:29.610Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T00:38:59.712Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T00:39:29.800Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T00:39:59.877Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T00:40:29.980Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T00:41:00.070Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T00:41:30.159Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T00:42:00.256Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T00:42:30.346Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T00:43:00.456Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T00:43:30.563Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T00:44:00.655Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T00:44:30.749Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T00:45:00.833Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T00:45:30.929Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T00:46:01.027Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T00:46:31.122Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T00:47:01.217Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T00:47:31.295Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T00:48:01.377Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T00:48:31.474Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T00:49:01.576Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T00:49:31.666Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T00:50:01.741Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T00:50:31.824Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T00:51:01.917Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T00:51:32.009Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T00:52:02.110Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T00:52:32.197Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T00:53:02.303Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T00:53:32.413Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T00:54:02.506Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T00:54:32.595Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T00:55:02.693Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T00:55:32.785Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T00:56:02.879Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T00:56:32.970Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T00:57:03.068Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T00:57:33.153Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T00:58:03.252Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T00:58:33.331Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T00:59:03.425Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T00:59:33.527Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T01:00:03.631Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T01:00:33.720Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T01:01:03.813Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T01:01:33.909Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T01:02:03.999Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T01:02:34.098Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T01:03:04.191Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T01:03:34.282Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T01:04:04.392Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T01:04:34.491Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T01:05:04.601Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T01:05:34.694Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T01:06:04.795Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T01:06:34.887Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T01:07:04.977Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T01:07:35.090Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T01:08:05.185Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T01:08:35.282Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T01:09:05.381Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T01:09:35.481Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T01:10:05.574Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T01:10:35.666Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T01:11:05.766Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T01:11:35.863Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T01:12:05.955Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T01:12:36.046Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T01:13:06.140Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T01:13:36.240Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T01:14:06.326Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T01:14:36.420Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T01:15:06.512Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T01:15:36.608Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T01:16:06.689Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T01:16:36.780Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T01:17:06.868Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T01:17:36.977Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T01:18:07.069Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T01:18:37.162Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T01:19:07.264Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T01:19:37.333Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T01:20:07.390Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T01:20:37.454Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T01:21:07.525Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T01:21:37.596Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T01:22:07.675Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T01:22:37.762Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T01:23:07.855Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T01:23:37.933Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T01:24:08.027Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T01:24:27.445Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T01:24:27.452Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects?is_active=1", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T01:24:27.467Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/safety-checks", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T01:24:27.488Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T01:24:27.529Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks/active/list", - "statusCode": 200, - "duration": "28ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T01:24:27.536Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?is_active=true", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T01:24:27.542Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/active/list", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T01:24:27.548Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-27", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T01:24:28.428Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T01:24:29.984Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-27", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T01:24:32.301Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-26", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T01:24:34.256Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/1", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T01:24:34.263Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/1/team", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T01:24:34.267Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/1/safety", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T01:24:38.130Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T01:24:41.735Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/1", - "statusCode": 304, - "duration": "12ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T01:24:41.738Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/1/team", - "statusCode": 304, - "duration": "12ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T01:24:41.741Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/1/safety", - "statusCode": 304, - "duration": "13ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T01:25:06.939Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/1", - "statusCode": 304, - "duration": "12ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T01:25:06.948Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/1/team", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T01:25:08.227Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T01:25:21.268Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/1", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T01:25:21.270Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/1/team", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T01:25:38.319Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T01:26:08.420Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T01:26:38.510Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T01:26:42.081Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-27", - "requester": 1, - "isAdmin": false -} -[2026-01-27T01:26:42.087Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-27T01:26:42.088Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-27&view_all=true", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T01:26:42.089Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "29ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T01:26:42.376Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users/1/page-access", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T01:26:43.029Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T01:26:43.987Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T01:26:44.002Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T01:26:44.009Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T01:26:44.018Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T01:26:44.028Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T01:26:44.038Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-27", - "created_by_user_id": 1, - "requester": 1, - "isAdmin": false -} -[2026-01-27T01:26:44.039Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-27", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T01:26:44.040Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-27T01:26:44.041Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-27&created_by=1", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T01:26:44.957Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T01:27:08.588Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T01:27:38.669Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T01:28:08.751Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T01:28:38.844Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T01:29:08.937Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T01:29:39.026Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T01:30:09.126Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T01:30:39.228Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T01:31:09.322Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T01:31:39.412Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T01:32:09.489Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T01:32:39.623Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T01:33:09.776Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T01:33:39.893Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T01:34:09.992Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T01:34:40.082Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T01:35:10.173Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T01:35:40.265Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T01:36:10.365Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T01:36:40.450Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T01:37:10.537Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T01:37:40.607Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T01:38:10.692Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T01:38:40.786Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T01:39:10.861Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T01:39:40.938Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T01:40:11.052Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T01:40:41.175Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T01:41:11.304Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "6ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T01:41:41.500Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T01:42:11.577Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T01:42:41.667Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T01:43:11.760Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T01:43:41.839Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T01:44:11.919Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T01:44:42.008Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T01:45:12.096Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T01:45:42.176Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T01:46:12.272Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T01:46:42.365Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T01:47:12.448Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T01:47:42.524Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T01:48:12.603Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T01:48:42.688Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T01:49:12.771Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T01:49:42.852Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T01:50:12.947Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T01:50:43.028Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T01:51:13.121Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T01:51:43.203Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T01:52:13.281Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T01:52:43.360Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T01:53:13.443Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T01:53:43.536Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T01:54:13.624Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T01:54:43.808Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "11ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T01:55:13.914Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T01:55:25.787Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-27", - "requester": 1, - "isAdmin": false -} -[2026-01-27T01:55:25.795Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-27T01:55:25.796Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-27&view_all=true", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T01:55:25.800Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "20ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T01:55:25.819Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users/1/page-access", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T01:55:26.778Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T01:55:27.790Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T01:55:27.798Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T01:55:27.805Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T01:55:27.812Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T01:55:27.820Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T01:55:27.827Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-27", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T01:55:27.829Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 404, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T01:55:27.835Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-27", - "created_by_user_id": 1, - "requester": 1, - "isAdmin": false -} -[2026-01-27T01:55:27.836Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-27T01:55:27.837Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-27&created_by=1", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T01:55:28.782Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T01:55:36.371Z] [WARN] ⚠️ 인증 실패: Authorization 헤더 없음 - Context: { - "path": "/", - "method": "GET", - "ip": "::ffff:192.168.65.1" -} -[2026-01-27T01:55:36.373Z] [WARN] ⚠️ Authorization 헤더가 필요합니다 - Context: { - "code": "AUTHENTICATION_ERROR", - "url": "/api/tbm/sessions/date/2026-01-27", - "method": "GET", - "user": "anonymous" -} -[2026-01-27T01:55:36.374Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-27", - "statusCode": 401, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T01:55:44.017Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T01:56:14.115Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T01:56:44.208Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T01:57:14.309Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T01:57:22.460Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "23ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T01:57:22.482Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects?is_active=1", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T01:57:22.494Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/safety-checks", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T01:57:22.499Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T01:57:22.508Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks/active/list", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T01:57:22.517Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?is_active=true", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T01:57:22.523Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/active/list", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T01:57:22.530Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-27", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T01:57:23.332Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T01:57:23.837Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-27", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T01:57:27.901Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-26", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T01:57:42.207Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-27", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T01:57:44.399Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T01:58:14.501Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T01:58:44.581Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T01:59:14.660Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T01:59:44.753Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T02:00:14.852Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T02:00:33.850Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T02:00:33.859Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects?is_active=1", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T02:00:33.878Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/safety-checks", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T02:00:33.913Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T02:00:33.918Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks/active/list", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T02:00:33.923Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?is_active=true", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T02:00:33.927Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/active/list", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T02:00:33.931Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-27", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T02:00:34.808Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T02:00:38.065Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-27", - "requester": 1, - "isAdmin": false -} -[2026-01-27T02:00:38.068Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-27T02:00:38.069Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-27&view_all=true", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T02:00:38.070Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T02:00:38.094Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users/1/page-access", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T02:00:39.052Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T02:00:39.536Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T02:00:39.548Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T02:00:39.561Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T02:00:39.568Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T02:00:39.574Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T02:00:39.580Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-27", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T02:00:39.581Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T02:00:39.588Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-27", - "created_by_user_id": 1, - "requester": 1, - "isAdmin": false -} -[2026-01-27T02:00:39.589Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-27T02:00:39.589Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-27&created_by=1", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T02:00:40.528Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T02:00:42.343Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-27", - "created_by_user_id": 1, - "requester": 1, - "isAdmin": false -} -[2026-01-27T02:00:42.346Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-27T02:00:42.348Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-27", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T02:00:44.376Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 404, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T02:00:44.944Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T02:04:51.192Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-27T02:04:51.278Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-01-27T02:04:51.390Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "20005", - "env": "production", - "nodeVersion": "v24.4.0" -} -[2026-01-27T02:04:51.401Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-01-27T02:12:27.434Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T02:12:44.070Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-27", - "created_by_user_id": 1, - "requester": 1, - "isAdmin": false -} -[2026-01-27T02:12:44.079Z] [ERROR] ❌ 작업보고서 조회 실패 - Context: { - "error": "데이터베이스에서 작업 보고서를 조회하는 중 오류가 발생했습니다." -} -[2026-01-27T02:12:44.083Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-27", - "statusCode": 400, - "duration": "15ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T02:13:14.118Z] [ERROR] ❌ 페이지네이션 쿼리 실행 오류: getaddrinfo ENOTFOUND db - Context: { - "code": "INTERNAL_ERROR", - "stack": "AppError: 페이지네이션 쿼리 실행 오류: getaddrinfo ENOTFOUND db\n at errorHandler (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/middlewares/errorHandler.js:51:13)\n at Layer.handle_error (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/router/layer.js:71:5)\n at trim_prefix (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/router/index.js:326:13)\n at /Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/router/index.js:286:9\n at router.process_params (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/router/index.js:346:12)\n at next (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/router/index.js:280:10)\n at Layer.handle_error (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/router/layer.js:67:12)\n at trim_prefix (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/router/index.js:326:13)\n at /Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/router/index.js:286:9\n at router.process_params (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/router/index.js:346:12)", - "url": "/api/workers?limit=1000", - "method": "GET", - "user": "admin" -} -[2026-01-27T02:13:14.121Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 500, - "duration": "47692ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T02:13:14.145Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 500, - "duration": "7ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T02:13:14.153Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-27", - "created_by_user_id": 1, - "requester": 1, - "isAdmin": false -} -[2026-01-27T02:13:14.157Z] [ERROR] ❌ 작업보고서 조회 실패 - Context: { - "error": "데이터베이스에서 작업 보고서를 조회하는 중 오류가 발생했습니다." -} -[2026-01-27T02:13:14.157Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-27&created_by=1", - "statusCode": 400, - "duration": "5ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T02:17:31.806Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2026-01-27T02:17:31.807Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-01-27T02:17:48.744Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-27T02:17:48.809Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-01-27T02:17:48.922Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "20005", - "env": "production", - "nodeVersion": "v24.4.0" -} -[2026-01-27T02:17:48.927Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-01-27T02:18:52.779Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 500, - "duration": "45419ms", - "ip": "::1", - "user": "admin", - "userAgent": "curl/8.7.1" -} -[2026-01-27T02:22:39.446Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-27T02:22:39.844Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-01-27T02:22:40.161Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2026-01-27T02:22:40.166Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-01-27T02:22:43.357Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "6ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T02:23:13.443Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T02:23:43.534Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T02:24:13.620Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T02:24:28.342Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2026-01-27T02:24:28.343Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-01-27T02:24:43.713Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T02:25:13.813Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T02:25:26.625Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-27T02:25:26.700Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-01-27T02:25:26.812Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "20005", - "env": "production", - "nodeVersion": "v24.4.0" -} -[2026-01-27T02:25:26.817Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-01-27T02:25:40.918Z] [INFO] ℹ️ MariaDB 연결 성공 - Context: { - "connection": "localhost:20306", - "database": "hyungi", - "connectionLimit": 10 -} -[2026-01-27T02:25:40.934Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 500, - "duration": "32ms", - "ip": "::1", - "user": "admin", - "userAgent": "curl/8.7.1" -} -[2026-01-27T02:25:43.900Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T02:26:13.969Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T02:26:29.590Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2026-01-27T02:26:29.591Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-01-27T02:26:30.828Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-27T02:26:30.889Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-01-27T02:26:30.996Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "20005", - "env": "production", - "nodeVersion": "v24.4.0" -} -[2026-01-27T02:26:31.001Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-01-27T02:26:40.594Z] [INFO] ℹ️ MariaDB 연결 성공 - Context: { - "connection": "localhost:20306", - "database": "hyungi", - "connectionLimit": 10 -} -[2026-01-27T02:26:40.599Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "19ms", - "ip": "::1", - "user": "admin", - "userAgent": "curl/8.7.1" -} -[2026-01-27T02:26:44.061Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T02:27:14.149Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T02:27:44.249Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T02:28:14.353Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T02:28:44.424Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T02:29:14.483Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T02:29:44.552Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T02:30:14.624Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T02:30:44.697Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T02:31:14.783Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T02:31:44.870Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T02:32:14.965Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T02:32:45.051Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T02:33:15.155Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T02:33:45.258Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T02:34:15.350Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T02:34:45.443Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T02:35:15.545Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T02:35:45.632Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T02:36:15.740Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T02:36:45.848Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T02:37:15.943Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T02:37:46.031Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T02:38:16.123Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T02:38:46.206Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T02:39:16.302Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T02:39:46.391Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T02:40:16.479Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T02:40:46.567Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T02:41:16.659Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T02:41:46.759Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T02:42:16.840Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T02:42:46.930Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T02:43:17.024Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T02:43:47.114Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T02:44:17.202Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T02:44:47.296Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T02:45:17.377Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T02:45:47.452Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T02:46:17.546Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T02:46:47.645Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T02:47:17.725Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T02:47:47.815Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T02:48:17.905Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T02:48:47.989Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T02:49:18.069Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T02:49:48.148Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T02:50:18.238Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T02:50:48.337Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T02:51:18.424Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T02:51:48.521Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T02:52:18.611Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T02:52:48.689Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T02:53:18.770Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T02:53:48.872Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T02:54:18.953Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T02:54:49.044Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T02:55:19.139Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T02:55:49.230Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T02:56:19.318Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T02:56:49.412Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T02:57:19.505Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T02:57:49.593Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T02:58:19.680Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T02:58:49.762Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T02:59:19.854Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T02:59:49.945Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T03:00:20.031Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T03:00:50.117Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T03:01:20.229Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T03:01:25.494Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-27T03:01:25.570Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-01-27T03:01:25.706Z] [ERROR] ❌ 처리되지 않은 예외 - Context: { - "error": "listen EADDRINUSE: address already in use :::20005", - "stack": "Error: listen EADDRINUSE: address already in use :::20005\n at Server.setupListenHandle [as _listen2] (node:net:1940:16)\n at listenInCluster (node:net:1997:12)\n at Server.listen (node:net:2102:7)\n at app.listen (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/application.js:635:24)\n at Object. (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/index.js:45:20)\n at Module._compile (node:internal/modules/cjs/loader:1692:14)\n at Object..js (node:internal/modules/cjs/loader:1824:10)\n at Module.load (node:internal/modules/cjs/loader:1427:32)\n at Module._load (node:internal/modules/cjs/loader:1250:12)\n at TracingChannel.traceSync (node:diagnostics_channel:322:14)" -} -[2026-01-27T03:01:25.707Z] [INFO] ℹ️ UNCAUGHT_EXCEPTION 신호 수신 - 서버 종료 시작 -[2026-01-27T03:01:25.707Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-01-27T03:01:50.331Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T03:02:20.415Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T03:02:50.506Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T03:02:53.446Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-27T03:02:53.505Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-01-27T03:02:53.612Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "20005", - "env": "production", - "nodeVersion": "v24.4.0" -} -[2026-01-27T03:02:53.616Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-01-27T03:03:16.342Z] [WARN] ⚠️ 인증 실패: Bearer 토큰 누락 - Context: { - "path": "/", - "method": "GET", - "ip": "::1" -} -[2026-01-27T03:03:16.343Z] [WARN] ⚠️ Bearer 토큰이 필요합니다 - Context: { - "code": "AUTHENTICATION_ERROR", - "url": "/api/tbm/sessions/incomplete-reports", - "method": "GET", - "user": "anonymous" -} -[2026-01-27T03:03:16.345Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 401, - "duration": "3ms", - "ip": "::1", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-01-27T03:03:20.587Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T03:03:29.338Z] [INFO] ℹ️ MariaDB 연결 성공 - Context: { - "connection": "localhost:20306", - "database": "hyungi", - "connectionLimit": 10 -} -[2026-01-27T03:03:29.413Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 200, - "duration": "87ms", - "ip": "::1", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-01-27T03:03:39.602Z] [WARN] ⚠️ 인증 실패: Bearer 토큰 누락 - Context: { - "path": "/", - "method": "GET", - "ip": "::1" -} -[2026-01-27T03:03:39.603Z] [WARN] ⚠️ Bearer 토큰이 필요합니다 - Context: { - "code": "AUTHENTICATION_ERROR", - "url": "/api/tbm/sessions/incomplete-reports", - "method": "GET", - "user": "anonymous" -} -[2026-01-27T03:03:39.603Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 401, - "duration": "1ms", - "ip": "::1", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-01-27T03:03:50.674Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T03:03:58.036Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "6ms", - "ip": "::1", - "user": "admin", - "userAgent": "curl/8.7.1" -} -[2026-01-27T03:04:04.544Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "admin", - "userAgent": "curl/8.7.1" -} -[2026-01-27T03:04:19.854Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-27", - "created_by_user_id": 1, - "requester": 1, - "isAdmin": false -} -[2026-01-27T03:04:19.860Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-27T03:04:19.860Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-27", - "statusCode": 200, - "duration": "7ms", - "ip": "::1", - "user": "admin", - "userAgent": "curl/8.7.1" -} -[2026-01-27T03:04:20.819Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T03:04:26.075Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-25", - "created_by_user_id": 1, - "requester": 1, - "isAdmin": false -} -[2026-01-27T03:04:26.080Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-27T03:04:26.081Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-25", - "statusCode": 200, - "duration": "7ms", - "ip": "::1", - "user": "admin", - "userAgent": "curl/8.7.1" -} -[2026-01-27T03:04:50.911Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T03:05:20.974Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T03:05:51.046Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T03:06:02.103Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "19ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:06:02.110Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:06:02.117Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:06:02.121Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:06:02.128Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:06:02.138Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-27", - "statusCode": 200, - "duration": "7ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:06:02.144Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "11ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:06:02.149Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-27", - "created_by_user_id": 1, - "requester": 1, - "isAdmin": false -} -[2026-01-27T03:06:02.151Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-27T03:06:02.152Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-27&created_by=1", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:06:03.082Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:06:21.111Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T03:06:51.208Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T03:07:21.295Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T03:07:51.406Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T03:08:21.494Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T03:08:51.594Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T03:09:21.687Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T03:09:51.801Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T03:10:07.716Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "14ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:10:07.725Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 200, - "duration": "7ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:10:07.729Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:10:07.733Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:10:07.737Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:10:07.744Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-27", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:10:07.745Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "5ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:10:07.749Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-27", - "created_by_user_id": 1, - "requester": 1, - "isAdmin": false -} -[2026-01-27T03:10:07.751Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-27T03:10:07.752Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-27&created_by=1", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:10:08.674Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:10:21.881Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T03:10:45.614Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 304, - "duration": "7ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:10:51.975Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T03:10:53.679Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-27", - "created_by_user_id": 1, - "requester": 1, - "isAdmin": false -} -[2026-01-27T03:10:53.683Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-27T03:10:53.684Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-27", - "statusCode": 200, - "duration": "6ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:10:57.448Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 304, - "duration": "3ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:11:22.059Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T03:11:52.146Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T03:12:22.228Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T03:12:52.315Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T03:13:22.405Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T03:13:52.487Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T03:14:03.259Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "13ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:14:03.266Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:14:03.271Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:14:03.276Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:14:03.282Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:14:03.289Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-27", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:14:03.290Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:14:03.293Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-27", - "created_by_user_id": 1, - "requester": 1, - "isAdmin": false -} -[2026-01-27T03:14:03.295Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-27T03:14:03.296Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-27&created_by=1", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:14:04.248Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:14:22.586Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T03:14:52.672Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T03:15:22.779Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T03:15:52.858Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T03:16:22.944Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T03:16:53.037Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T03:17:23.127Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T03:17:53.215Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T03:18:23.328Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T03:18:53.429Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T03:19:23.527Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T03:19:53.625Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T03:20:23.722Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T03:20:46.596Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:20:53.914Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T03:21:24.014Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T03:21:54.104Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T03:22:24.167Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T03:22:54.247Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T03:23:22.006Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "38ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:23:22.014Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 200, - "duration": "5ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:23:22.021Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:23:22.026Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:23:22.034Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 200, - "duration": "5ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:23:22.043Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "6ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:23:22.967Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:23:24.321Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T03:23:54.391Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T03:24:24.491Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T03:24:54.585Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T03:25:24.685Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T03:25:54.776Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T03:26:24.870Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T03:26:54.952Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T03:27:25.028Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T03:27:55.114Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T03:28:25.203Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T03:28:55.301Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T03:29:15.936Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-27", - "requester": 1, - "isAdmin": false -} -[2026-01-27T03:29:15.952Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-27T03:29:15.953Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-27&view_all=true", - "statusCode": 200, - "duration": "18ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:29:15.958Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "32ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:29:15.975Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users/1/page-access", - "statusCode": 200, - "duration": "10ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:29:16.896Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:29:25.391Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T03:29:55.494Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T03:30:25.576Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T03:30:29.216Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-27", - "requester": 1, - "isAdmin": false -} -[2026-01-27T03:30:29.217Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:30:29.219Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-27T03:30:29.220Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-27&view_all=true", - "statusCode": 200, - "duration": "5ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:30:29.232Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users/1/page-access", - "statusCode": 200, - "duration": "7ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:30:30.212Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:30:30.744Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "9ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:30:30.794Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects?is_active=1", - "statusCode": 200, - "duration": "12ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:30:30.803Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/safety-checks", - "statusCode": 200, - "duration": "7ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:30:30.809Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:30:30.816Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks/active/list", - "statusCode": 200, - "duration": "5ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:30:30.825Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?is_active=true", - "statusCode": 200, - "duration": "7ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:30:30.831Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/active/list", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:30:30.839Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-27", - "statusCode": 200, - "duration": "6ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:30:31.729Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:30:33.292Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-27", - "requester": 1, - "isAdmin": false -} -[2026-01-27T03:30:33.294Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 304, - "duration": "3ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:30:33.297Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-27T03:30:33.298Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-27&view_all=true", - "statusCode": 304, - "duration": "6ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:30:33.319Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/users/1/page-access", - "statusCode": 304, - "duration": "6ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:30:34.291Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:30:37.398Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:30:37.420Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 200, - "duration": "7ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:30:37.432Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 304, - "duration": "5ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:30:37.440Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:30:37.453Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 200, - "duration": "5ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:30:37.467Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "7ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:30:38.382Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:30:55.664Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T03:31:00.605Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-27", - "created_by_user_id": 1, - "requester": 1, - "isAdmin": false -} -[2026-01-27T03:31:00.608Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-27T03:31:00.609Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-27", - "statusCode": 200, - "duration": "5ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:31:02.418Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 304, - "duration": "6ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:31:25.764Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T03:31:55.860Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T03:32:02.039Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "6ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:32:03.216Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "5ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:32:06.553Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "2ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:32:26.008Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T03:32:41.595Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "8ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:32:41.625Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 200, - "duration": "23ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:32:41.634Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:32:41.644Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 200, - "duration": "6ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:32:41.651Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:32:41.657Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:32:42.588Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:32:56.114Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T03:33:01.918Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-27", - "created_by_user_id": 1, - "requester": 1, - "isAdmin": false -} -[2026-01-27T03:33:01.923Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-27T03:33:01.924Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-27", - "statusCode": 200, - "duration": "8ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:33:26.203Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T03:33:56.293Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T03:34:26.358Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T03:34:56.417Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T03:35:11.224Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "31ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:35:18.341Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "7ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:35:26.488Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T03:35:34.819Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "7ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:35:34.830Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 200, - "duration": "7ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:35:34.840Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "6ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:35:34.850Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:35:34.860Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:35:34.868Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:35:35.804Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:35:38.599Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "6ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:35:56.586Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T03:36:21.360Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-27", - "created_by_user_id": 1, - "requester": 1, - "isAdmin": false -} -[2026-01-27T03:36:21.366Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-27T03:36:21.367Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-27", - "statusCode": 200, - "duration": "8ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:36:24.855Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/by-category/1", - "method": "GET" -} -[2026-01-27T03:36:24.856Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/by-category/1", - "statusCode": 404, - "duration": "3ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:36:26.696Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T03:36:27.748Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 304, - "duration": "5ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:36:32.320Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "3ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:36:37.409Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "admin", - "userAgent": "curl/8.7.1" -} -[2026-01-27T03:36:51.611Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/by-category/1", - "method": "GET" -} -[2026-01-27T03:36:51.612Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/by-category/1", - "statusCode": 404, - "duration": "4ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:36:52.488Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/by-category/1", - "method": "GET" -} -[2026-01-27T03:36:52.489Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/by-category/1", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:36:53.003Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/by-category/2", - "method": "GET" -} -[2026-01-27T03:36:53.004Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/by-category/2", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:36:56.814Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T03:37:26.905Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T03:37:57.003Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T03:38:27.088Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T03:38:57.179Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T03:39:15.547Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "52ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:39:15.558Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 200, - "duration": "5ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:39:15.567Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:39:15.574Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:39:15.582Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:39:15.589Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:39:16.494Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:39:18.249Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "5ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:39:19.733Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/by-category/1", - "method": "GET" -} -[2026-01-27T03:39:19.735Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/by-category/1", - "statusCode": 404, - "duration": "2ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:39:27.289Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T03:39:43.511Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "admin", - "userAgent": "curl/8.7.1" -} -[2026-01-27T03:39:57.375Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T03:40:27.461Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T03:40:29.890Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:40:29.904Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 200, - "duration": "11ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:40:29.916Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "5ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:40:29.921Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:40:29.926Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:40:29.934Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:40:30.893Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:40:33.392Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "6ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:40:34.438Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "5ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:40:57.553Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T03:41:27.643Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T03:41:57.719Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T03:42:21.910Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "57ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:42:21.921Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 200, - "duration": "5ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:42:21.929Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:42:21.935Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:42:21.942Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:42:21.948Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:42:22.848Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:42:25.528Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:42:27.806Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T03:42:57.880Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T03:43:27.998Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T03:43:58.089Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T03:44:28.210Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "5ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T03:44:54.858Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "5ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:44:54.872Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 200, - "duration": "6ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:44:54.882Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:44:54.892Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:44:54.897Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:44:54.903Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:44:55.850Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:44:57.701Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "6ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:44:58.302Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T03:45:28.388Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T03:45:58.500Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T03:46:25.453Z] [WARN] ⚠️ 인증 실패: Bearer 토큰 누락 - Context: { - "path": "/", - "method": "GET", - "ip": "::1" -} -[2026-01-27T03:46:25.454Z] [WARN] ⚠️ Bearer 토큰이 필요합니다 - Context: { - "code": "AUTHENTICATION_ERROR", - "url": "/api/workplaces/categories", - "method": "GET", - "user": "anonymous" -} -[2026-01-27T03:46:25.455Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 401, - "duration": "2ms", - "ip": "::1", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-01-27T03:46:28.613Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T03:46:32.600Z] [WARN] ⚠️ 아이디 또는 비밀번호가 올바르지 않습니다. - Context: { - "code": "AUTHENTICATION_ERROR", - "url": "/api/auth/login", - "method": "POST", - "user": "anonymous" -} -[2026-01-27T03:46:32.600Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 401, - "duration": "68ms", - "ip": "::1", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-01-27T03:46:58.720Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T03:47:11.411Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "6ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:47:11.421Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 200, - "duration": "8ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:47:11.435Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "5ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:47:11.441Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:47:11.448Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:47:11.456Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "6ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:47:12.399Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:47:15.282Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "5ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:47:28.833Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T03:47:58.925Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T03:48:29.027Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T03:48:55.798Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "87ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:48:55.807Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 200, - "duration": "5ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:48:55.815Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "5ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:48:55.822Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:48:55.828Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:48:55.837Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "6ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:48:56.684Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:48:58.566Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "6ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:48:59.134Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T03:49:29.252Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T03:49:29.841Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-27", - "requester": 1, - "isAdmin": false -} -[2026-01-27T03:49:29.855Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-27T03:49:29.857Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-27&view_all=true", - "statusCode": 200, - "duration": "18ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:49:29.861Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "35ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:49:29.887Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users/1/page-access", - "statusCode": 200, - "duration": "12ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:49:30.809Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:49:36.412Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "12ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:49:36.437Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects?is_active=1", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:49:36.481Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/safety-checks", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:49:36.490Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 304, - "duration": "3ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:49:36.500Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks/active/list", - "statusCode": 200, - "duration": "6ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:49:36.508Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?is_active=true", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:49:36.513Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/active/list", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:49:36.520Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-27", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:49:37.215Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:49:50.302Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "8ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:49:50.314Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/uploads/workplace-layout-1769468979164-175068568.jpg", - "method": "GET" -} -[2026-01-27T03:49:50.320Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:49:59.348Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T03:50:11.425Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:50:11.438Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects?is_active=1", - "statusCode": 200, - "duration": "10ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:50:11.448Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/safety-checks", - "statusCode": 200, - "duration": "7ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:50:11.457Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "5ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:50:11.471Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks/active/list", - "statusCode": 200, - "duration": "6ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:50:11.480Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?is_active=true", - "statusCode": 200, - "duration": "5ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:50:11.485Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/active/list", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:50:11.492Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-27", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:50:12.421Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:50:26.678Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "5ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:50:26.683Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/uploads/workplace-layout-1769468979164-175068568.jpg", - "method": "GET" -} -[2026-01-27T03:50:26.693Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "5ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:50:29.453Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T03:50:59.567Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T03:51:05.654Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-27", - "requester": 1, - "isAdmin": false -} -[2026-01-27T03:51:05.659Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "6ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:51:05.663Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-27T03:51:05.664Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-27&view_all=true", - "statusCode": 200, - "duration": "10ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:51:05.698Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users/1/page-access", - "statusCode": 200, - "duration": "10ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:51:06.642Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:51:09.277Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 200, - "duration": "5ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:51:10.212Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:51:10.784Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "8ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:51:10.807Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces", - "statusCode": 200, - "duration": "28ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:51:10.828Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/2/map-region", - "method": "GET" -} -[2026-01-27T03:51:10.829Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/2/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:51:10.830Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/10/map-region", - "method": "GET" -} -[2026-01-27T03:51:10.830Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/10/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:51:10.831Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/9/map-region", - "method": "GET" -} -[2026-01-27T03:51:10.831Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/9/map-region", - "statusCode": 404, - "duration": "0ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:51:10.832Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/7/map-region", - "method": "GET" -} -[2026-01-27T03:51:10.832Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/7/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:51:10.833Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/4/map-region", - "method": "GET" -} -[2026-01-27T03:51:10.834Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/4/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:51:10.835Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/1/map-region", - "method": "GET" -} -[2026-01-27T03:51:10.836Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/1/map-region", - "statusCode": 404, - "duration": "2ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:51:10.837Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/11/map-region", - "method": "GET" -} -[2026-01-27T03:51:10.837Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/11/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:51:10.838Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/8/map-region", - "method": "GET" -} -[2026-01-27T03:51:10.838Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/8/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:51:10.841Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/3/map-region", - "method": "GET" -} -[2026-01-27T03:51:10.843Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/3/map-region", - "statusCode": 404, - "duration": "3ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:51:10.845Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/12/map-region", - "method": "GET" -} -[2026-01-27T03:51:10.845Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/12/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:51:10.845Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/6/map-region", - "method": "GET" -} -[2026-01-27T03:51:10.846Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/6/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:51:10.846Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/5/map-region", - "method": "GET" -} -[2026-01-27T03:51:10.846Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/5/map-region", - "statusCode": 404, - "duration": "0ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:51:11.324Z] [WARN] ⚠️ 인증 실패: Bearer 토큰 누락 - Context: { - "path": "/", - "method": "GET", - "ip": "::1" -} -[2026-01-27T03:51:11.324Z] [WARN] ⚠️ Bearer 토큰이 필요합니다 - Context: { - "code": "AUTHENTICATION_ERROR", - "url": "/api/workplaces/categories", - "method": "GET", - "user": "anonymous" -} -[2026-01-27T03:51:11.324Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 401, - "duration": "0ms", - "ip": "::1", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-01-27T03:51:11.735Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:51:12.092Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/2/map-region", - "method": "GET" -} -[2026-01-27T03:51:12.093Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/2/map-region", - "statusCode": 404, - "duration": "2ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:51:12.095Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/10/map-region", - "method": "GET" -} -[2026-01-27T03:51:12.096Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/10/map-region", - "statusCode": 404, - "duration": "2ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:51:12.097Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/9/map-region", - "method": "GET" -} -[2026-01-27T03:51:12.098Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/9/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:51:12.098Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/1/map-region", - "method": "GET" -} -[2026-01-27T03:51:12.099Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/1/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:51:12.100Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/7/map-region", - "method": "GET" -} -[2026-01-27T03:51:12.101Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/7/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:51:12.103Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/4/map-region", - "method": "GET" -} -[2026-01-27T03:51:12.104Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/4/map-region", - "statusCode": 404, - "duration": "2ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:51:12.106Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/11/map-region", - "method": "GET" -} -[2026-01-27T03:51:12.106Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/11/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:51:12.107Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/8/map-region", - "method": "GET" -} -[2026-01-27T03:51:12.108Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/8/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:51:12.108Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/6/map-region", - "method": "GET" -} -[2026-01-27T03:51:12.109Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/6/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:51:12.111Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/12/map-region", - "method": "GET" -} -[2026-01-27T03:51:12.112Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/12/map-region", - "statusCode": 404, - "duration": "2ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:51:12.113Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/3/map-region", - "method": "GET" -} -[2026-01-27T03:51:12.113Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/3/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:51:12.114Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/5/map-region", - "method": "GET" -} -[2026-01-27T03:51:12.114Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/5/map-region", - "statusCode": 404, - "duration": "0ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:51:12.116Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/uploads/workplace-layout-1769468979164-175068568.jpg", - "method": "GET" -} -[2026-01-27T03:51:15.084Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/uploads/workplace-layout-1769468979164-175068568.jpg", - "method": "GET" -} -[2026-01-27T03:51:15.087Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 304, - "duration": "3ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:51:22.804Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/uploads/workplace-layout-1769468979164-175068568.jpg", - "method": "GET" -} -[2026-01-27T03:51:29.661Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T03:51:59.753Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T03:52:28.507Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:52:28.508Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:52:28.517Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/2/map-region", - "method": "GET" -} -[2026-01-27T03:52:28.518Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/2/map-region", - "statusCode": 404, - "duration": "0ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:52:28.518Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/10/map-region", - "method": "GET" -} -[2026-01-27T03:52:28.518Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/10/map-region", - "statusCode": 404, - "duration": "0ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:52:28.518Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/7/map-region", - "method": "GET" -} -[2026-01-27T03:52:28.518Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/7/map-region", - "statusCode": 404, - "duration": "0ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:52:28.520Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/4/map-region", - "method": "GET" -} -[2026-01-27T03:52:28.521Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/4/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:52:28.521Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/9/map-region", - "method": "GET" -} -[2026-01-27T03:52:28.521Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/9/map-region", - "statusCode": 404, - "duration": "0ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:52:28.522Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/1/map-region", - "method": "GET" -} -[2026-01-27T03:52:28.522Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/1/map-region", - "statusCode": 404, - "duration": "0ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:52:28.524Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/11/map-region", - "method": "GET" -} -[2026-01-27T03:52:28.524Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/11/map-region", - "statusCode": 404, - "duration": "0ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:52:28.525Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/8/map-region", - "method": "GET" -} -[2026-01-27T03:52:28.525Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/8/map-region", - "statusCode": 404, - "duration": "0ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:52:28.525Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/3/map-region", - "method": "GET" -} -[2026-01-27T03:52:28.525Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/3/map-region", - "statusCode": 404, - "duration": "0ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:52:28.526Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/12/map-region", - "method": "GET" -} -[2026-01-27T03:52:28.526Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/12/map-region", - "statusCode": 404, - "duration": "0ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:52:28.527Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/6/map-region", - "method": "GET" -} -[2026-01-27T03:52:28.527Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/6/map-region", - "statusCode": 404, - "duration": "0ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:52:28.527Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/5/map-region", - "method": "GET" -} -[2026-01-27T03:52:28.527Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/5/map-region", - "statusCode": 404, - "duration": "0ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:52:29.503Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:52:29.546Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/2/map-region", - "method": "GET" -} -[2026-01-27T03:52:29.548Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/2/map-region", - "statusCode": 404, - "duration": "2ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:52:29.552Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/10/map-region", - "method": "GET" -} -[2026-01-27T03:52:29.554Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/10/map-region", - "statusCode": 404, - "duration": "3ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:52:29.558Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/9/map-region", - "method": "GET" -} -[2026-01-27T03:52:29.561Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/9/map-region", - "statusCode": 404, - "duration": "6ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:52:29.565Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/11/map-region", - "method": "GET" -} -[2026-01-27T03:52:29.566Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/11/map-region", - "statusCode": 404, - "duration": "2ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:52:29.567Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/1/map-region", - "method": "GET" -} -[2026-01-27T03:52:29.567Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/1/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:52:29.568Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/8/map-region", - "method": "GET" -} -[2026-01-27T03:52:29.569Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/8/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:52:29.570Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/4/map-region", - "method": "GET" -} -[2026-01-27T03:52:29.572Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/4/map-region", - "statusCode": 404, - "duration": "2ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:52:29.574Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/7/map-region", - "method": "GET" -} -[2026-01-27T03:52:29.575Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/7/map-region", - "statusCode": 404, - "duration": "2ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:52:29.581Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/3/map-region", - "method": "GET" -} -[2026-01-27T03:52:29.582Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/3/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:52:29.583Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/12/map-region", - "method": "GET" -} -[2026-01-27T03:52:29.584Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/12/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:52:29.585Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/5/map-region", - "method": "GET" -} -[2026-01-27T03:52:29.586Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/5/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:52:29.590Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/6/map-region", - "method": "GET" -} -[2026-01-27T03:52:29.595Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/6/map-region", - "statusCode": 404, - "duration": "6ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:52:29.700Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "5ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:52:29.842Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T03:52:38.601Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 304, - "duration": "4ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:52:45.194Z] [INFO] ℹ️ 카테고리 레이아웃 이미지 업로드 요청 - Context: { - "category_id": "1", - "path": "/uploads/workplace-layout-1769485965188-143426330.jpg" -} -[2026-01-27T03:52:45.212Z] [INFO] ℹ️ 레이아웃 이미지 업로드 성공 - Context: { - "category_id": "1" -} -[2026-01-27T03:52:45.213Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/workplaces/categories/1/layout-image", - "statusCode": 200, - "duration": "44ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:52:45.230Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "6ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:52:45.252Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 304, - "duration": "4ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:52:49.046Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 304, - "duration": "5ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:52:50.458Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "4ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:52:50.461Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces", - "statusCode": 304, - "duration": "6ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:52:50.491Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/10/map-region", - "method": "GET" -} -[2026-01-27T03:52:50.492Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/10/map-region", - "statusCode": 404, - "duration": "2ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:52:50.494Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/2/map-region", - "method": "GET" -} -[2026-01-27T03:52:50.495Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/2/map-region", - "statusCode": 404, - "duration": "2ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:52:50.499Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/1/map-region", - "method": "GET" -} -[2026-01-27T03:52:50.500Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/1/map-region", - "statusCode": 404, - "duration": "2ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:52:50.501Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/7/map-region", - "method": "GET" -} -[2026-01-27T03:52:50.502Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/7/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:52:50.503Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/11/map-region", - "method": "GET" -} -[2026-01-27T03:52:50.503Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/11/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:52:50.505Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/4/map-region", - "method": "GET" -} -[2026-01-27T03:52:50.506Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/4/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:52:50.507Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/9/map-region", - "method": "GET" -} -[2026-01-27T03:52:50.507Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/9/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:52:50.509Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/3/map-region", - "method": "GET" -} -[2026-01-27T03:52:50.510Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/3/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:52:50.512Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/12/map-region", - "method": "GET" -} -[2026-01-27T03:52:50.513Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/12/map-region", - "statusCode": 404, - "duration": "2ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:52:50.516Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/6/map-region", - "method": "GET" -} -[2026-01-27T03:52:50.517Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/6/map-region", - "statusCode": 404, - "duration": "3ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:52:50.520Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/8/map-region", - "method": "GET" -} -[2026-01-27T03:52:50.521Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/8/map-region", - "statusCode": 404, - "duration": "2ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:52:50.522Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/5/map-region", - "method": "GET" -} -[2026-01-27T03:52:50.524Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/5/map-region", - "statusCode": 404, - "duration": "3ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:52:51.455Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:52:51.624Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/2/map-region", - "method": "GET" -} -[2026-01-27T03:52:51.626Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/2/map-region", - "statusCode": 404, - "duration": "3ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:52:51.628Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/10/map-region", - "method": "GET" -} -[2026-01-27T03:52:51.629Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/10/map-region", - "statusCode": 404, - "duration": "2ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:52:51.630Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/9/map-region", - "method": "GET" -} -[2026-01-27T03:52:51.631Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/9/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:52:51.631Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/1/map-region", - "method": "GET" -} -[2026-01-27T03:52:51.632Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/1/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:52:51.634Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/11/map-region", - "method": "GET" -} -[2026-01-27T03:52:51.635Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/11/map-region", - "statusCode": 404, - "duration": "2ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:52:51.636Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/8/map-region", - "method": "GET" -} -[2026-01-27T03:52:51.637Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/8/map-region", - "statusCode": 404, - "duration": "2ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:52:51.638Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/4/map-region", - "method": "GET" -} -[2026-01-27T03:52:51.639Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/4/map-region", - "statusCode": 404, - "duration": "2ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:52:51.639Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/7/map-region", - "method": "GET" -} -[2026-01-27T03:52:51.640Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/7/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:52:51.642Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/3/map-region", - "method": "GET" -} -[2026-01-27T03:52:51.643Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/3/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:52:51.643Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/5/map-region", - "method": "GET" -} -[2026-01-27T03:52:51.644Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/5/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:52:51.645Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/6/map-region", - "method": "GET" -} -[2026-01-27T03:52:51.646Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/6/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:52:51.647Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/12/map-region", - "method": "GET" -} -[2026-01-27T03:52:51.647Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/12/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:52:51.653Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 304, - "duration": "3ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:52:59.933Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T03:53:05.998Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-27", - "requester": 1, - "isAdmin": false -} -[2026-01-27T03:53:06.000Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:53:06.003Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-27T03:53:06.004Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-27&view_all=true", - "statusCode": 200, - "duration": "6ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:53:06.021Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users/1/page-access", - "statusCode": 200, - "duration": "8ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:53:06.996Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:53:07.370Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:53:07.436Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects?is_active=1", - "statusCode": 200, - "duration": "7ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:53:07.446Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/safety-checks", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:53:07.452Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:53:07.460Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks/active/list", - "statusCode": 200, - "duration": "5ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:53:07.467Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?is_active=true", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:53:07.473Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/active/list", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:53:07.483Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-27", - "statusCode": 200, - "duration": "5ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:53:08.284Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:53:08.589Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-27", - "statusCode": 304, - "duration": "7ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:53:10.526Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-27", - "statusCode": 304, - "duration": "5ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:53:17.208Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 304, - "duration": "5ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:53:17.221Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "6ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:53:24.758Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 304, - "duration": "1ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:53:24.759Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-27", - "requester": 1, - "isAdmin": false -} -[2026-01-27T03:53:24.762Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-27T03:53:24.762Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-27&view_all=true", - "statusCode": 304, - "duration": "4ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:53:24.777Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/users/1/page-access", - "statusCode": 304, - "duration": "11ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:53:25.758Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:53:26.068Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 304, - "duration": "2ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:53:26.079Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 200, - "duration": "5ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:53:26.096Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 304, - "duration": "5ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:53:26.106Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:53:26.119Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:53:26.128Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "5ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:53:27.055Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:53:28.931Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "5ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:53:29.756Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 304, - "duration": "4ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:53:29.764Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 304, - "duration": "4ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:53:30.032Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T03:54:00.125Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T03:54:30.209Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T03:55:00.305Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T03:55:18.487Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "72ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:55:18.503Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 200, - "duration": "6ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:55:18.515Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "6ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:55:18.523Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:55:18.531Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 200, - "duration": "5ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:55:18.542Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "5ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:55:19.396Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:55:29.666Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "6ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:55:30.390Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T03:55:30.636Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "6ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:55:30.647Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "5ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:56:00.528Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T03:56:30.628Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T03:57:00.714Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T03:57:30.792Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T03:58:00.878Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T03:58:30.970Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T03:59:01.068Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T03:59:19.527Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "58ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:59:19.539Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 200, - "duration": "9ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:59:19.546Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:59:19.550Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:59:19.555Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:59:19.564Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "6ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:59:20.426Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:59:22.152Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:59:23.502Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "6ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:59:23.515Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "5ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T03:59:31.167Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T04:00:01.259Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T04:00:31.343Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T04:01:01.444Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T04:01:31.531Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T04:02:01.610Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T04:02:31.705Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T04:02:47.792Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "49ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:02:47.802Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 200, - "duration": "7ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:02:47.811Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "5ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:02:47.817Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:02:47.823Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:02:47.832Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "6ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:02:48.729Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:02:58.298Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=1", - "statusCode": 200, - "duration": "9ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:03:01.799Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T04:03:31.897Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T04:04:01.971Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T04:04:32.077Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T04:05:02.156Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T04:05:32.238Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T04:06:02.300Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T04:06:32.363Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T04:07:02.436Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T04:07:32.510Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T04:08:02.584Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T04:08:32.648Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T04:09:02.720Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T04:09:32.790Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T04:10:02.883Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T04:10:32.957Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T04:11:03.034Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T04:11:33.108Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T04:12:03.182Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T04:12:33.261Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T04:13:03.353Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T04:13:33.436Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T04:14:03.513Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T04:14:33.592Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T04:15:03.666Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T04:15:33.766Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T04:16:03.833Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T04:16:33.903Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T04:17:03.984Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T04:17:34.052Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T04:18:04.128Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T04:18:34.213Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T04:19:04.309Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T04:19:34.414Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T04:20:04.508Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T04:20:34.592Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T04:21:04.687Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T04:21:34.782Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T04:22:04.866Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T04:22:34.953Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T04:23:05.065Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T04:23:35.161Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T04:24:05.248Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T04:24:35.328Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T04:24:44.594Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "26ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:24:44.852Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 200, - "duration": "5ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:24:44.860Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "5ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:24:44.866Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:24:44.882Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:24:44.889Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:24:45.561Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:25:05.399Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T04:25:35.454Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T04:26:05.528Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T04:26:35.585Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T04:27:05.673Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T04:27:35.755Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T04:28:05.849Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T04:28:35.941Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T04:29:06.030Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T04:29:36.117Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T04:30:06.201Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T04:30:36.286Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T04:31:06.396Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T04:31:36.489Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T04:32:06.579Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T04:32:36.669Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T04:33:06.745Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T04:33:36.822Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T04:34:06.914Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T04:34:37.004Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T04:35:07.096Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T04:35:37.192Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T04:36:07.286Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T04:36:37.382Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T04:37:07.456Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T04:37:37.546Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T04:38:07.621Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T04:38:37.695Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T04:39:07.777Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T04:39:28.760Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/daily-work-reports/from-tbm", - "statusCode": 500, - "duration": "17ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:39:37.890Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T04:40:07.981Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T04:40:38.076Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T04:41:08.189Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T04:41:14.613Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/daily-work-reports/from-tbm", - "statusCode": 500, - "duration": "1ms", - "ip": "::1", - "user": "admin", - "userAgent": "curl/8.7.1" -} -[2026-01-27T04:41:15.597Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-27", - "requester": 1, - "isAdmin": false -} -[2026-01-27T04:41:15.617Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-27T04:41:15.619Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-27&view_all=true", - "statusCode": 200, - "duration": "22ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:41:15.627Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "31ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:41:15.658Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users/1/page-access", - "statusCode": 200, - "duration": "7ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:41:16.596Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:41:23.073Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "6ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:41:23.086Z] [INFO] ℹ️ 월별 캘린더 데이터 조회 요청 - Context: { - "year": 2026, - "month": 1 -} -[2026-01-27T04:41:23.093Z] [ERROR] ❌ 월별 캘린더 데이터 조회 실패 - Context: { - "year": 2026, - "month": 1, - "error": "Table 'hyungi.monthly_summary' doesn't exist" -} -[2026-01-27T04:41:23.093Z] [ERROR] ❌ 월별 캘린더 데이터 조회 중 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 월별 캘린더 데이터 조회 중 오류가 발생했습니다\n at /Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/controllers/monthlyStatusController.js:80:11\n at process.processTicksAndRejections (node:internal/process/task_queues:105:5)", - "url": "/api/monthly-status/calendar?year=2026&month=1", - "method": "GET", - "user": "anonymous" -} -[2026-01-27T04:41:23.094Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/monthly-status/calendar?year=2026&month=1", - "statusCode": 500, - "duration": "10ms", - "ip": "::1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:41:23.103Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2025-12-31", - "requester": 1, - "isAdmin": false -} -[2026-01-27T04:41:23.105Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-03", - "requester": 1, - "isAdmin": false -} -[2026-01-27T04:41:23.105Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-01", - "requester": 1, - "isAdmin": false -} -[2026-01-27T04:41:23.106Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-02", - "requester": 1, - "isAdmin": false -} -[2026-01-27T04:41:23.108Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-04", - "requester": 1, - "isAdmin": false -} -[2026-01-27T04:41:23.109Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-27T04:41:23.110Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-12-31&view_all=true", - "statusCode": 200, - "duration": "8ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:41:23.110Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-27T04:41:23.110Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-03&view_all=true", - "statusCode": 200, - "duration": "6ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:41:23.116Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-27T04:41:23.116Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-01&view_all=true", - "statusCode": 200, - "duration": "11ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:41:23.117Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-27T04:41:23.117Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-04&view_all=true", - "statusCode": 200, - "duration": "9ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:41:23.117Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-27T04:41:23.117Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-02&view_all=true", - "statusCode": 200, - "duration": "11ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:41:23.224Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-05", - "requester": 1, - "isAdmin": false -} -[2026-01-27T04:41:23.225Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-06", - "requester": 1, - "isAdmin": false -} -[2026-01-27T04:41:23.226Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-07", - "requester": 1, - "isAdmin": false -} -[2026-01-27T04:41:23.226Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-08", - "requester": 1, - "isAdmin": false -} -[2026-01-27T04:41:23.227Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-09", - "requester": 1, - "isAdmin": false -} -[2026-01-27T04:41:23.228Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-27T04:41:23.228Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-05&view_all=true", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:41:23.228Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-27T04:41:23.229Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-06&view_all=true", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:41:23.229Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-27T04:41:23.229Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-07&view_all=true", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:41:23.229Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-27T04:41:23.229Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-08&view_all=true", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:41:23.230Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-27T04:41:23.230Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-09&view_all=true", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:41:23.335Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-10", - "requester": 1, - "isAdmin": false -} -[2026-01-27T04:41:23.338Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-11", - "requester": 1, - "isAdmin": false -} -[2026-01-27T04:41:23.340Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-12", - "requester": 1, - "isAdmin": false -} -[2026-01-27T04:41:23.341Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-13", - "requester": 1, - "isAdmin": false -} -[2026-01-27T04:41:23.342Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-14", - "requester": 1, - "isAdmin": false -} -[2026-01-27T04:41:23.343Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-27T04:41:23.344Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-10&view_all=true", - "statusCode": 200, - "duration": "9ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:41:23.344Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-27T04:41:23.345Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-11&view_all=true", - "statusCode": 200, - "duration": "7ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:41:23.345Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-27T04:41:23.345Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-12&view_all=true", - "statusCode": 200, - "duration": "6ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:41:23.346Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-27T04:41:23.346Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-13&view_all=true", - "statusCode": 200, - "duration": "6ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:41:23.346Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-27T04:41:23.346Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-14&view_all=true", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:41:23.457Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-15", - "requester": 1, - "isAdmin": false -} -[2026-01-27T04:41:23.459Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-16", - "requester": 1, - "isAdmin": false -} -[2026-01-27T04:41:23.460Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-17", - "requester": 1, - "isAdmin": false -} -[2026-01-27T04:41:23.461Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-18", - "requester": 1, - "isAdmin": false -} -[2026-01-27T04:41:23.463Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-27T04:41:23.463Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-15&view_all=true", - "statusCode": 200, - "duration": "6ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:41:23.464Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-27T04:41:23.465Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-16&view_all=true", - "statusCode": 200, - "duration": "7ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:41:23.466Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-19", - "requester": 1, - "isAdmin": false -} -[2026-01-27T04:41:23.466Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-27T04:41:23.467Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-17&view_all=true", - "statusCode": 200, - "duration": "7ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:41:23.468Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 1 -} -[2026-01-27T04:41:23.469Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-18&view_all=true", - "statusCode": 200, - "duration": "8ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:41:23.469Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-27T04:41:23.470Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-19&view_all=true", - "statusCode": 200, - "duration": "5ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:41:23.585Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-20", - "requester": 1, - "isAdmin": false -} -[2026-01-27T04:41:23.588Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-21", - "requester": 1, - "isAdmin": false -} -[2026-01-27T04:41:23.591Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-22", - "requester": 1, - "isAdmin": false -} -[2026-01-27T04:41:23.593Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 1 -} -[2026-01-27T04:41:23.593Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-20&view_all=true", - "statusCode": 200, - "duration": "9ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:41:23.593Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-23", - "requester": 1, - "isAdmin": false -} -[2026-01-27T04:41:23.594Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-24", - "requester": 1, - "isAdmin": false -} -[2026-01-27T04:41:23.594Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-27T04:41:23.595Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-21&view_all=true", - "statusCode": 200, - "duration": "8ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:41:23.595Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-27T04:41:23.595Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-22&view_all=true", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:41:23.595Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-27T04:41:23.596Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-23&view_all=true", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:41:23.596Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-27T04:41:23.596Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-24&view_all=true", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:41:23.704Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-27", - "requester": 1, - "isAdmin": false -} -[2026-01-27T04:41:23.707Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-25", - "requester": 1, - "isAdmin": false -} -[2026-01-27T04:41:23.708Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-26", - "requester": 1, - "isAdmin": false -} -[2026-01-27T04:41:23.709Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-28", - "requester": 1, - "isAdmin": false -} -[2026-01-27T04:41:23.716Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-27T04:41:23.718Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-27&view_all=true", - "statusCode": 304, - "duration": "14ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:41:23.719Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-29", - "requester": 1, - "isAdmin": false -} -[2026-01-27T04:41:23.720Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-27T04:41:23.721Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-25&view_all=true", - "statusCode": 200, - "duration": "15ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:41:23.723Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-27T04:41:23.725Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-26&view_all=true", - "statusCode": 200, - "duration": "17ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:41:23.726Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-27T04:41:23.726Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-28&view_all=true", - "statusCode": 200, - "duration": "17ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:41:23.727Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-27T04:41:23.727Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-29&view_all=true", - "statusCode": 200, - "duration": "9ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:41:23.843Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-30", - "requester": 1, - "isAdmin": false -} -[2026-01-27T04:41:23.848Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-27T04:41:23.849Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-30&view_all=true", - "statusCode": 200, - "duration": "7ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:41:24.070Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:41:25.618Z] [INFO] ℹ️ 일별 작업자 상세 조회 요청 - Context: { - "date": "2026-01-27" -} -[2026-01-27T04:41:25.624Z] [INFO] ℹ️ 일별 작업자 상세 조회 성공 - Context: { - "date": "2026-01-27", - "workerCount": 11, - "totalHours": 0 -} -[2026-01-27T04:41:25.627Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/monthly-status/daily-details?date=2026-01-27", - "statusCode": 200, - "duration": "10ms", - "ip": "::1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:41:38.288Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T04:41:43.571Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2026-01-27T04:41:43.574Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-01-27T04:41:44.076Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-27T04:41:44.146Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-01-27T04:41:44.226Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2026-01-27T04:41:44.229Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-01-27T04:41:48.970Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T04:42:15.452Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/daily-work-reports/from-tbm", - "statusCode": 500, - "duration": "2ms", - "ip": "::1", - "user": "admin", - "userAgent": "curl/8.7.1" -} -[2026-01-27T04:42:19.069Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T04:42:49.191Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T04:43:19.274Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T04:43:26.987Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/daily-work-reports/from-tbm", - "statusCode": 500, - "duration": "2ms", - "ip": "::1", - "user": "admin", - "userAgent": "curl/8.7.1" -} -[2026-01-27T04:43:47.140Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/daily-work-reports/from-tbm", - "statusCode": 500, - "duration": "3ms", - "ip": "::1", - "user": "admin", - "userAgent": "curl/8.7.1" -} -[2026-01-27T04:43:49.376Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T04:44:19.468Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T04:44:40.106Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2026-01-27T04:44:40.109Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-01-27T04:44:40.553Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-27T04:44:40.608Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-01-27T04:44:40.678Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2026-01-27T04:44:40.683Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-01-27T04:44:45.467Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T04:44:51.501Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/daily-work-reports/from-tbm", - "statusCode": 500, - "duration": "2ms", - "ip": "::1", - "user": "admin", - "userAgent": "curl/8.7.1" -} -[2026-01-27T04:45:15.566Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T04:45:45.662Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T04:46:15.755Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T04:46:45.819Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T04:47:15.892Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T04:47:45.970Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T04:48:16.059Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T04:48:37.471Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/daily-work-reports/from-tbm", - "statusCode": 500, - "duration": "4ms", - "ip": "::1", - "user": "admin", - "userAgent": "curl/8.7.1" -} -[2026-01-27T04:48:46.161Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T04:49:16.239Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T04:49:46.358Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T04:50:16.491Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T04:50:46.589Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T04:50:59.348Z] [INFO] ℹ️ MariaDB 연결 성공 - Context: { - "connection": "db:3306", - "database": "hyungi", - "connectionLimit": 10 -} -[2026-01-27T04:51:16.690Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T04:51:46.768Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T04:52:15.653Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "17ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:52:15.658Z] [INFO] ℹ️ 월별 캘린더 데이터 조회 요청 - Context: { - "year": 2026, - "month": 1 -} -[2026-01-27T04:52:15.661Z] [ERROR] ❌ 월별 캘린더 데이터 조회 실패 - Context: { - "year": 2026, - "month": 1, - "error": "Table 'hyungi.monthly_summary' doesn't exist" -} -[2026-01-27T04:52:15.662Z] [ERROR] ❌ 월별 캘린더 데이터 조회 중 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 월별 캘린더 데이터 조회 중 오류가 발생했습니다\n at /Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/controllers/monthlyStatusController.js:80:11\n at process.processTicksAndRejections (node:internal/process/task_queues:105:5)", - "url": "/api/monthly-status/calendar?year=2026&month=1", - "method": "GET", - "user": "anonymous" -} -[2026-01-27T04:52:15.663Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/monthly-status/calendar?year=2026&month=1", - "statusCode": 500, - "duration": "6ms", - "ip": "::1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:52:15.684Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2025-12-31", - "requester": 1, - "isAdmin": false -} -[2026-01-27T04:52:15.685Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-01", - "requester": 1, - "isAdmin": false -} -[2026-01-27T04:52:15.686Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-02", - "requester": 1, - "isAdmin": false -} -[2026-01-27T04:52:15.686Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-03", - "requester": 1, - "isAdmin": false -} -[2026-01-27T04:52:15.686Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-27T04:52:15.686Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-12-31&view_all=true", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:52:15.687Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-04", - "requester": 1, - "isAdmin": false -} -[2026-01-27T04:52:15.687Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-27T04:52:15.687Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-01&view_all=true", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:52:15.688Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-27T04:52:15.688Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-02&view_all=true", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:52:15.688Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-27T04:52:15.688Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-03&view_all=true", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:52:15.689Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-27T04:52:15.689Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-04&view_all=true", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:52:15.794Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-05", - "requester": 1, - "isAdmin": false -} -[2026-01-27T04:52:15.795Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-06", - "requester": 1, - "isAdmin": false -} -[2026-01-27T04:52:15.797Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-27T04:52:15.797Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-05&view_all=true", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:52:15.798Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-07", - "requester": 1, - "isAdmin": false -} -[2026-01-27T04:52:15.799Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-08", - "requester": 1, - "isAdmin": false -} -[2026-01-27T04:52:15.800Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-09", - "requester": 1, - "isAdmin": false -} -[2026-01-27T04:52:15.800Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-27T04:52:15.801Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-07&view_all=true", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:52:15.801Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-27T04:52:15.802Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-06&view_all=true", - "statusCode": 200, - "duration": "7ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:52:15.802Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-27T04:52:15.803Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-08&view_all=true", - "statusCode": 200, - "duration": "5ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:52:15.803Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-27T04:52:15.804Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-09&view_all=true", - "statusCode": 200, - "duration": "5ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:52:15.908Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-10", - "requester": 1, - "isAdmin": false -} -[2026-01-27T04:52:15.909Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-11", - "requester": 1, - "isAdmin": false -} -[2026-01-27T04:52:15.909Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-12", - "requester": 1, - "isAdmin": false -} -[2026-01-27T04:52:15.910Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-13", - "requester": 1, - "isAdmin": false -} -[2026-01-27T04:52:15.910Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-14", - "requester": 1, - "isAdmin": false -} -[2026-01-27T04:52:15.913Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-27T04:52:15.914Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-10&view_all=true", - "statusCode": 200, - "duration": "7ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:52:15.914Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-27T04:52:15.915Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-11&view_all=true", - "statusCode": 200, - "duration": "6ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:52:15.915Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-27T04:52:15.915Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-12&view_all=true", - "statusCode": 200, - "duration": "6ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:52:15.916Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-27T04:52:15.916Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-13&view_all=true", - "statusCode": 200, - "duration": "6ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:52:15.916Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-27T04:52:15.916Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-14&view_all=true", - "statusCode": 200, - "duration": "6ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:52:16.021Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-15", - "requester": 1, - "isAdmin": false -} -[2026-01-27T04:52:16.021Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-16", - "requester": 1, - "isAdmin": false -} -[2026-01-27T04:52:16.023Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-27T04:52:16.023Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-15&view_all=true", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:52:16.023Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-27T04:52:16.023Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-16&view_all=true", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:52:16.023Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-17", - "requester": 1, - "isAdmin": false -} -[2026-01-27T04:52:16.024Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-18", - "requester": 1, - "isAdmin": false -} -[2026-01-27T04:52:16.024Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-19", - "requester": 1, - "isAdmin": false -} -[2026-01-27T04:52:16.024Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-27T04:52:16.025Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-17&view_all=true", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:52:16.025Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 1 -} -[2026-01-27T04:52:16.025Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-18&view_all=true", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:52:16.025Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-27T04:52:16.025Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-19&view_all=true", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:52:16.130Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-20", - "requester": 1, - "isAdmin": false -} -[2026-01-27T04:52:16.131Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-21", - "requester": 1, - "isAdmin": false -} -[2026-01-27T04:52:16.131Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-22", - "requester": 1, - "isAdmin": false -} -[2026-01-27T04:52:16.132Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-27T04:52:16.132Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-21&view_all=true", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:52:16.132Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 1 -} -[2026-01-27T04:52:16.132Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-20&view_all=true", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:52:16.133Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-23", - "requester": 1, - "isAdmin": false -} -[2026-01-27T04:52:16.133Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-24", - "requester": 1, - "isAdmin": false -} -[2026-01-27T04:52:16.133Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-27T04:52:16.133Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-22&view_all=true", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:52:16.134Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-27T04:52:16.134Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-23&view_all=true", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:52:16.134Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-27T04:52:16.134Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-24&view_all=true", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:52:16.240Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-25", - "requester": 1, - "isAdmin": false -} -[2026-01-27T04:52:16.240Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-26", - "requester": 1, - "isAdmin": false -} -[2026-01-27T04:52:16.240Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-27", - "requester": 1, - "isAdmin": false -} -[2026-01-27T04:52:16.240Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-28", - "requester": 1, - "isAdmin": false -} -[2026-01-27T04:52:16.241Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-29", - "requester": 1, - "isAdmin": false -} -[2026-01-27T04:52:16.241Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-27T04:52:16.241Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-25&view_all=true", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:52:16.241Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-27T04:52:16.241Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-27&view_all=true", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:52:16.241Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-27T04:52:16.241Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-26&view_all=true", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:52:16.242Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-27T04:52:16.242Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-28&view_all=true", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:52:16.242Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-27T04:52:16.242Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-29&view_all=true", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:52:16.346Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-30", - "requester": 1, - "isAdmin": false -} -[2026-01-27T04:52:16.349Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-27T04:52:16.349Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-30&view_all=true", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:52:16.632Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:52:16.855Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T04:52:17.015Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-27", - "requester": 1, - "isAdmin": false -} -[2026-01-27T04:52:17.018Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-27T04:52:17.018Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-27&view_all=true", - "statusCode": 304, - "duration": "4ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:52:17.019Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:52:17.037Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users/1/page-access", - "statusCode": 200, - "duration": "5ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:52:18.014Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:52:21.356Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "5ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:52:21.362Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:52:21.367Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:52:21.373Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:52:21.378Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:52:21.384Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:52:22.349Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:52:32.371Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/daily-work-reports/from-tbm", - "statusCode": 500, - "duration": "1ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:52:46.968Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T04:53:17.070Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T04:53:22.025Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2026-01-27T04:53:22.027Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-01-27T04:53:22.418Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-27T04:53:22.478Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-01-27T04:53:22.542Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2026-01-27T04:53:22.547Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-01-27T04:53:27.327Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T04:53:37.689Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/daily-work-reports/from-tbm", - "statusCode": 500, - "duration": "1ms", - "ip": "::1", - "user": "admin", - "userAgent": "curl/8.7.1" -} -[2026-01-27T04:53:54.464Z] [INFO] ℹ️ MariaDB 연결 성공 - Context: { - "connection": "db:3306", - "database": "hyungi", - "connectionLimit": 10 -} -[2026-01-27T04:53:57.415Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T04:54:27.506Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T04:54:48.689Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-27", - "requester": 1, - "isAdmin": false -} -[2026-01-27T04:54:48.698Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-27T04:54:48.699Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-27&view_all=true", - "statusCode": 304, - "duration": "10ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:54:48.700Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 304, - "duration": "14ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:54:48.720Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/users/1/page-access", - "statusCode": 304, - "duration": "4ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:54:50.066Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "6ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:54:50.123Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects?is_active=1", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:54:50.130Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/safety-checks", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:54:50.135Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 304, - "duration": "2ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:54:50.142Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks/active/list", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:54:50.148Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?is_active=true", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:54:50.152Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/active/list", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:54:50.158Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-27", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:54:50.918Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:54:57.590Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T04:55:10.484Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:55:10.498Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "5ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:55:17.351Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/tbm/sessions", - "statusCode": 201, - "duration": "6ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:55:17.359Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/tbm/sessions/2/team/batch", - "statusCode": 200, - "duration": "5ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:55:17.368Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-27", - "statusCode": 200, - "duration": "5ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:55:20.359Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/2", - "statusCode": 200, - "duration": "6ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:55:20.362Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/2/team", - "statusCode": 200, - "duration": "7ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:55:20.363Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/2/safety", - "statusCode": 200, - "duration": "7ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:55:25.872Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/2/safety", - "statusCode": 304, - "duration": "6ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:55:27.690Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T04:55:36.305Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-27", - "statusCode": 304, - "duration": "7ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:55:37.523Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-27", - "statusCode": 304, - "duration": "7ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:55:38.906Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 304, - "duration": "2ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:55:38.907Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-27", - "requester": 1, - "isAdmin": false -} -[2026-01-27T04:55:38.910Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-27T04:55:38.911Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-27&view_all=true", - "statusCode": 304, - "duration": "5ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:55:38.936Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/users/1/page-access", - "statusCode": 304, - "duration": "5ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:55:39.904Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:55:47.647Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 304, - "duration": "1ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:55:47.652Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 304, - "duration": "3ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:55:47.663Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 304, - "duration": "2ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:55:47.668Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 304, - "duration": "1ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:55:47.671Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 304, - "duration": "1ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:55:47.676Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:55:48.645Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:55:57.781Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T04:56:27.869Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T04:56:57.951Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T04:57:28.023Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T04:57:32.042Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "23ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:57:32.058Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:57:32.065Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:57:32.072Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:57:32.079Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:57:32.087Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "5ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:57:33.014Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:57:48.213Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/daily-work-reports/from-tbm", - "statusCode": 500, - "duration": "1ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:57:49.518Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/daily-work-reports/from-tbm", - "statusCode": 500, - "duration": "2ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:57:50.127Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/daily-work-reports/from-tbm", - "statusCode": 500, - "duration": "1ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:57:58.101Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T04:58:28.195Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T04:58:36.844Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/daily-work-reports/from-tbm", - "statusCode": 500, - "duration": "0ms", - "ip": "::1", - "user": "admin", - "userAgent": "curl/8.7.1" -} -[2026-01-27T04:58:58.284Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T04:59:28.373Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T04:59:50.225Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2026-01-27T04:59:50.226Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-01-27T04:59:57.899Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-27T04:59:57.956Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-01-27T04:59:58.025Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2026-01-27T04:59:58.028Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-01-27T05:00:02.831Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T05:00:13.383Z] [INFO] ℹ️ MariaDB 연결 성공 - Context: { - "connection": "db:3306", - "database": "hyungi", - "connectionLimit": 10 -} -[2026-01-27T05:00:13.398Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports/from-tbm", - "statusCode": 201, - "duration": "29ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "curl/8.7.1" -} -[2026-01-27T05:00:32.933Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T05:00:45.232Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:00:45.242Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:00:45.251Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:00:45.261Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:00:45.269Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:00:45.277Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:00:46.215Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:00:49.671Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-27", - "created_by_user_id": 1, - "requester": 1, - "isAdmin": false -} -[2026-01-27T05:00:49.675Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-27T05:00:49.678Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-27", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:00:52.601Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-26", - "created_by_user_id": 1, - "requester": 1, - "isAdmin": false -} -[2026-01-27T05:00:52.605Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 1 -} -[2026-01-27T05:00:52.607Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-26", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:00:59.628Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:01:03.026Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T05:01:11.850Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/daily-work-reports/from-tbm", - "statusCode": 500, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:01:12.947Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/daily-work-reports/from-tbm", - "statusCode": 500, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:01:15.214Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:01:15.221Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:01:15.226Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:01:15.258Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:01:15.265Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:01:15.270Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:01:16.208Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:01:24.564Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/daily-work-reports/from-tbm", - "statusCode": 500, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:01:33.105Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T05:01:33.480Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:01:33.504Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:01:33.509Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:01:33.515Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:01:33.520Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:01:33.527Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:01:34.476Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:01:41.243Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/daily-work-reports/from-tbm", - "statusCode": 500, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:02:03.172Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T05:02:33.239Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T05:03:03.330Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T05:03:33.478Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T05:03:40.024Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:03:40.034Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:03:40.044Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:03:40.051Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:03:40.061Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:03:40.088Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "20ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:03:41.018Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:03:50.194Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/daily-work-reports/from-tbm", - "statusCode": 500, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:04:03.588Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T05:04:33.674Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T05:04:35.619Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports/from-tbm", - "statusCode": 201, - "duration": "11ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "curl/8.7.1" -} -[2026-01-27T05:05:03.775Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T05:05:14.140Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:05:14.147Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:05:14.160Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:05:14.170Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:05:14.182Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:05:14.201Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "14ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:05:15.129Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:05:22.452Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/daily-work-reports/from-tbm", - "statusCode": 500, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:05:33.866Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T05:06:03.955Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T05:06:34.045Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T05:07:04.136Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T05:07:26.138Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "37ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:07:26.146Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:07:26.153Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:07:26.159Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:07:26.164Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:07:26.175Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:07:27.079Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:07:33.693Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/daily-work-reports/from-tbm", - "statusCode": 500, - "duration": "11ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:07:34.229Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T05:08:04.306Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T05:08:34.396Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T05:09:04.487Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T05:09:34.575Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T05:09:46.401Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "21ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:09:46.434Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 200, - "duration": "29ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:09:46.448Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:09:46.454Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:09:46.459Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:09:46.466Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:09:47.382Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:09:53.536Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports/from-tbm", - "statusCode": 201, - "duration": "15ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:10:04.675Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T05:10:34.772Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T05:11:04.859Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T05:11:22.793Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:11:22.810Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:11:22.816Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:11:22.822Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:11:22.828Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:11:22.834Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:11:23.780Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:11:26.251Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-27", - "created_by_user_id": 1, - "requester": 1, - "isAdmin": false -} -[2026-01-27T05:11:26.252Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 1 -} -[2026-01-27T05:11:26.253Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-27", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:11:31.255Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-26", - "created_by_user_id": 1, - "requester": 1, - "isAdmin": false -} -[2026-01-27T05:11:31.259Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 2 -} -[2026-01-27T05:11:31.262Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-26", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:11:34.951Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T05:11:38.026Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:11:47.030Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports/from-tbm", - "statusCode": 201, - "duration": "16ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:11:47.042Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:12:05.045Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T05:12:19.670Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:12:19.698Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:12:19.707Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:12:19.714Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 304, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:12:19.719Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:12:19.725Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:12:20.661Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:12:21.142Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-27", - "requester": 1, - "isAdmin": false -} -[2026-01-27T05:12:21.156Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 1 -} -[2026-01-27T05:12:21.158Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-27&view_all=true", - "statusCode": 200, - "duration": "19ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:12:21.162Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "31ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:12:21.189Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users/1/page-access", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:12:22.127Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:12:22.583Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:12:22.632Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:12:22.652Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:12:22.662Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:12:22.671Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:12:22.677Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:12:23.494Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-27", - "created_by_user_id": 1, - "requester": 1, - "isAdmin": false -} -[2026-01-27T05:12:23.498Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 1 -} -[2026-01-27T05:12:23.500Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-27", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:12:23.577Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:12:26.387Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-26", - "created_by_user_id": 1, - "requester": 1, - "isAdmin": false -} -[2026-01-27T05:12:26.389Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 3 -} -[2026-01-27T05:12:26.391Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-26", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:12:35.129Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T05:13:05.224Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T05:13:35.313Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T05:14:05.403Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T05:14:35.484Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T05:15:05.572Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T05:15:35.692Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T05:16:05.807Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T05:16:35.896Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T05:17:05.981Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T05:17:36.074Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T05:18:06.169Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T05:18:36.255Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T05:19:03.830Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 304, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:19:06.332Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T05:19:36.399Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T05:20:06.461Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T05:20:36.534Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T05:21:06.626Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T05:21:36.716Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T05:22:06.777Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T05:22:36.849Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T05:23:06.952Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T05:23:37.054Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T05:24:07.144Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T05:24:37.241Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T05:25:07.337Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T05:25:37.419Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T05:26:07.506Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T05:26:37.601Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T05:27:07.683Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T05:27:37.783Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T05:27:58.124Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-27", - "created_by_user_id": 1, - "requester": 1, - "isAdmin": false -} -[2026-01-27T05:27:58.128Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 1 -} -[2026-01-27T05:27:58.131Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-27", - "statusCode": 304, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:28:00.869Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-26", - "created_by_user_id": 1, - "requester": 1, - "isAdmin": false -} -[2026-01-27T05:28:00.872Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 3 -} -[2026-01-27T05:28:00.874Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-26", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:28:07.876Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T05:28:37.967Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T05:29:08.055Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T05:29:38.145Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T05:30:08.217Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T05:30:38.298Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T05:31:04.914Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 304, - "duration": "12ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:31:08.382Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T05:31:08.881Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "26ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:31:08.903Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:31:08.916Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:31:08.924Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:31:08.931Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:31:08.938Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:31:09.856Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:31:38.467Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T05:32:08.569Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T05:32:38.651Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T05:33:08.727Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T05:33:38.814Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T05:34:08.901Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T05:34:38.983Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T05:35:09.075Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T05:35:27.950Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:35:27.968Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 200, - "duration": "14ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:35:27.974Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:35:27.982Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:35:27.989Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:35:27.997Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:35:28.928Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:35:39.169Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T05:35:50.280Z] [INFO] ℹ️ 사용자 목록 조회 요청 - Context: { - "requestedBy": "admin" -} -[2026-01-27T05:35:50.284Z] [INFO] ℹ️ 사용자 목록 조회 성공 - Context: { - "count": 1 -} -[2026-01-27T05:35:50.286Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:35:51.271Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:35:57.886Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-27", - "requester": 1, - "isAdmin": false -} -[2026-01-27T05:35:57.890Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 1 -} -[2026-01-27T05:35:57.893Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-27&view_all=true", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:35:57.899Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "21ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:35:57.916Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users/1/page-access", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:35:58.854Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:36:05.276Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:36:06.259Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:36:07.056Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:36:08.053Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:36:09.269Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T05:36:26.482Z] [ERROR] ❌ 계정 생성 실패 - Context: { - "worker_id": 1, - "error": "knex is not a function" -} -[2026-01-27T05:36:26.483Z] [INFO] ℹ️ 작업자 수정 후 캐시 무효화 - Context: { - "worker_id": 1 -} -[2026-01-27T05:36:26.486Z] [INFO] ℹ️ 작업자 수정 성공 - Context: { - "worker_id": 1 -} -[2026-01-27T05:36:26.487Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "PUT", - "url": "/api/workers/1", - "statusCode": 200, - "duration": "21ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:36:26.500Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:36:31.623Z] [ERROR] ❌ 계정 생성 실패 - Context: { - "worker_id": 2, - "error": "knex is not a function" -} -[2026-01-27T05:36:31.624Z] [INFO] ℹ️ 작업자 수정 후 캐시 무효화 - Context: { - "worker_id": 2 -} -[2026-01-27T05:36:31.626Z] [INFO] ℹ️ 작업자 수정 성공 - Context: { - "worker_id": 2 -} -[2026-01-27T05:36:31.627Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "PUT", - "url": "/api/workers/2", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:36:31.642Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:36:34.146Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-27", - "requester": 1, - "isAdmin": false -} -[2026-01-27T05:36:34.150Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 1 -} -[2026-01-27T05:36:34.152Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-27&view_all=true", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:36:34.155Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "15ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:36:34.172Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/users/1/page-access", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:36:35.143Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:36:39.133Z] [INFO] ℹ️ 사용자 목록 조회 요청 - Context: { - "requestedBy": "admin" -} -[2026-01-27T05:36:39.135Z] [INFO] ℹ️ 사용자 목록 조회 성공 - Context: { - "count": 1 -} -[2026-01-27T05:36:39.137Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/users", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:36:39.342Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T05:36:40.131Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:36:43.885Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-27", - "requester": 1, - "isAdmin": false -} -[2026-01-27T05:36:43.889Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 1 -} -[2026-01-27T05:36:43.890Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-27&view_all=true", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:36:43.892Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:36:43.901Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/users/1/page-access", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:36:44.873Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:36:45.200Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 304, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:36:46.193Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:36:47.237Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:36:47.246Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:36:47.282Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/2/map-region", - "method": "GET" -} -[2026-01-27T05:36:47.283Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/2/map-region", - "statusCode": 404, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:36:47.287Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/7/map-region", - "method": "GET" -} -[2026-01-27T05:36:47.288Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/7/map-region", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:36:47.290Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/4/map-region", - "method": "GET" -} -[2026-01-27T05:36:47.291Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/4/map-region", - "statusCode": 404, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:36:47.292Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/11/map-region", - "method": "GET" -} -[2026-01-27T05:36:47.293Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/11/map-region", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:36:47.294Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/10/map-region", - "method": "GET" -} -[2026-01-27T05:36:47.295Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/10/map-region", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:36:47.301Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/9/map-region", - "method": "GET" -} -[2026-01-27T05:36:47.302Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/9/map-region", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:36:47.304Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/8/map-region", - "method": "GET" -} -[2026-01-27T05:36:47.305Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/8/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:36:47.307Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/1/map-region", - "method": "GET" -} -[2026-01-27T05:36:47.308Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/1/map-region", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:36:47.309Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/12/map-region", - "method": "GET" -} -[2026-01-27T05:36:47.310Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/12/map-region", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:36:47.311Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/6/map-region", - "method": "GET" -} -[2026-01-27T05:36:47.312Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/6/map-region", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:36:47.313Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/5/map-region", - "method": "GET" -} -[2026-01-27T05:36:47.314Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/5/map-region", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:36:47.315Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/3/map-region", - "method": "GET" -} -[2026-01-27T05:36:47.316Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/3/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:36:47.433Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:36:47.434Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:36:47.447Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/2/map-region", - "method": "GET" -} -[2026-01-27T05:36:47.448Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/2/map-region", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:36:47.449Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/10/map-region", - "method": "GET" -} -[2026-01-27T05:36:47.450Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/10/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:36:47.451Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/9/map-region", - "method": "GET" -} -[2026-01-27T05:36:47.452Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/9/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:36:47.453Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/1/map-region", - "method": "GET" -} -[2026-01-27T05:36:47.454Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/1/map-region", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:36:47.455Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/11/map-region", - "method": "GET" -} -[2026-01-27T05:36:47.455Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/11/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:36:47.457Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/8/map-region", - "method": "GET" -} -[2026-01-27T05:36:47.458Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/8/map-region", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:36:47.461Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/4/map-region", - "method": "GET" -} -[2026-01-27T05:36:47.461Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/4/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:36:47.463Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/3/map-region", - "method": "GET" -} -[2026-01-27T05:36:47.463Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/3/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:36:47.464Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/12/map-region", - "method": "GET" -} -[2026-01-27T05:36:47.465Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/12/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:36:47.466Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/6/map-region", - "method": "GET" -} -[2026-01-27T05:36:47.466Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/6/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:36:47.467Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/7/map-region", - "method": "GET" -} -[2026-01-27T05:36:47.467Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/7/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:36:47.468Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/5/map-region", - "method": "GET" -} -[2026-01-27T05:36:47.468Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/5/map-region", - "statusCode": 404, - "duration": "0ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:36:48.256Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:36:49.252Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:36:53.547Z] [ERROR] ❌ 계정 생성 실패 - Context: { - "worker_id": 1, - "error": "knex is not a function" -} -[2026-01-27T05:36:53.549Z] [INFO] ℹ️ 작업자 수정 후 캐시 무효화 - Context: { - "worker_id": 1 -} -[2026-01-27T05:36:53.551Z] [INFO] ℹ️ 작업자 수정 성공 - Context: { - "worker_id": 1 -} -[2026-01-27T05:36:53.553Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "PUT", - "url": "/api/workers/1", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:36:53.566Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:37:09.431Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T05:37:39.537Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T05:38:09.148Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2026-01-27T05:38:09.149Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-01-27T05:38:09.552Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-27T05:38:09.617Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-01-27T05:38:09.686Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2026-01-27T05:38:09.688Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-01-27T05:38:14.484Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T05:38:44.562Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T05:39:14.649Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T05:39:44.734Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T05:40:14.827Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T05:40:42.962Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "16ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:40:43.910Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:40:44.914Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T05:40:53.386Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-27", - "requester": 1, - "isAdmin": false -} -[2026-01-27T05:40:53.411Z] [INFO] ℹ️ MariaDB 연결 성공 - Context: { - "connection": "db:3306", - "database": "hyungi", - "connectionLimit": 10 -} -[2026-01-27T05:40:53.415Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 1 -} -[2026-01-27T05:40:53.416Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-27&view_all=true", - "statusCode": 200, - "duration": "33ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:40:53.420Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "39ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:40:53.430Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users/1/page-access", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:40:54.374Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:40:57.016Z] [INFO] ℹ️ 사용자 목록 조회 요청 - Context: { - "requestedBy": "admin" -} -[2026-01-27T05:40:57.021Z] [INFO] ℹ️ 사용자 목록 조회 성공 - Context: { - "count": 1 -} -[2026-01-27T05:40:57.023Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:40:58.010Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:41:03.981Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-27", - "requester": 1, - "isAdmin": false -} -[2026-01-27T05:41:03.985Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 1 -} -[2026-01-27T05:41:03.987Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-27&view_all=true", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:41:03.991Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "15ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:41:04.015Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/users/1/page-access", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:41:04.974Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:41:05.523Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 200, - "duration": "16ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:41:06.509Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:41:15.014Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T05:41:15.098Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:41:16.098Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:41:16.764Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:41:17.762Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:41:22.459Z] [ERROR] ❌ 계정 생성 실패 - Context: { - "worker_id": 1, - "error": "knex is not a function" -} -[2026-01-27T05:41:22.460Z] [INFO] ℹ️ 작업자 수정 후 캐시 무효화 - Context: { - "worker_id": 1 -} -[2026-01-27T05:41:22.462Z] [INFO] ℹ️ 작업자 수정 성공 - Context: { - "worker_id": 1 -} -[2026-01-27T05:41:22.463Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "PUT", - "url": "/api/workers/1", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:41:22.478Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:41:35.112Z] [INFO] ℹ️ 사용자 목록 조회 요청 - Context: { - "requestedBy": "admin" -} -[2026-01-27T05:41:35.116Z] [INFO] ℹ️ 사용자 목록 조회 성공 - Context: { - "count": 1 -} -[2026-01-27T05:41:35.117Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:41:36.092Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:41:45.097Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T05:42:06.988Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2026-01-27T05:42:06.991Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-01-27T05:42:07.437Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-27T05:42:07.502Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-01-27T05:42:07.565Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2026-01-27T05:42:07.568Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-01-27T05:42:12.399Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T05:42:42.490Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T05:43:12.569Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T05:43:42.663Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T05:44:12.751Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T05:44:42.836Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T05:45:12.919Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T05:45:43.008Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T05:46:13.093Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T05:46:43.176Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T05:47:13.256Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T05:47:28.603Z] [INFO] ℹ️ 사용자 목록 조회 요청 - Context: { - "requestedBy": "admin" -} -[2026-01-27T05:47:28.623Z] [INFO] ℹ️ MariaDB 연결 성공 - Context: { - "connection": "db:3306", - "database": "hyungi", - "connectionLimit": 10 -} -[2026-01-27T05:47:28.628Z] [INFO] ℹ️ 사용자 목록 조회 성공 - Context: { - "count": 1 -} -[2026-01-27T05:47:28.629Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users", - "statusCode": 200, - "duration": "35ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:47:29.568Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:47:39.784Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-27", - "requester": 1, - "isAdmin": false -} -[2026-01-27T05:47:39.795Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 1 -} -[2026-01-27T05:47:39.798Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-27&view_all=true", - "statusCode": 200, - "duration": "17ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:47:39.822Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "46ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:47:39.843Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users/1/page-access", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:47:40.747Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:47:42.113Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:47:43.094Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:47:43.361Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T05:47:44.306Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:47:45.297Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:48:12.778Z] [ERROR] ❌ 계정 생성 실패 - Context: { - "worker_id": 1, - "error": "knex is not a function" -} -[2026-01-27T05:48:12.779Z] [INFO] ℹ️ 작업자 수정 후 캐시 무효화 - Context: { - "worker_id": 1 -} -[2026-01-27T05:48:12.781Z] [INFO] ℹ️ 작업자 수정 성공 - Context: { - "worker_id": 1 -} -[2026-01-27T05:48:12.782Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "PUT", - "url": "/api/workers/1", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:48:12.791Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:48:13.457Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T05:48:35.988Z] [INFO] ℹ️ 사용자 목록 조회 요청 - Context: { - "requestedBy": "admin" -} -[2026-01-27T05:48:35.993Z] [INFO] ℹ️ 사용자 목록 조회 성공 - Context: { - "count": 1 -} -[2026-01-27T05:48:35.994Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/users", - "statusCode": 304, - "duration": "13ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:48:36.975Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:48:43.558Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T05:49:13.653Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T05:49:38.585Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2026-01-27T05:49:38.587Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-01-27T05:49:38.991Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-27T05:49:39.052Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-01-27T05:49:39.116Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2026-01-27T05:49:39.119Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-01-27T05:49:43.888Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T05:50:13.951Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T05:50:27.289Z] [INFO] ℹ️ 사용자 목록 조회 요청 - Context: { - "requestedBy": "admin" -} -[2026-01-27T05:50:27.319Z] [INFO] ℹ️ MariaDB 연결 성공 - Context: { - "connection": "db:3306", - "database": "hyungi", - "connectionLimit": 10 -} -[2026-01-27T05:50:27.324Z] [INFO] ℹ️ 사용자 목록 조회 성공 - Context: { - "count": 1 -} -[2026-01-27T05:50:27.324Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users", - "statusCode": 200, - "duration": "44ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:50:28.280Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:50:28.372Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-27", - "requester": 1, - "isAdmin": false -} -[2026-01-27T05:50:28.385Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 1 -} -[2026-01-27T05:50:28.388Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-27&view_all=true", - "statusCode": 200, - "duration": "20ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:50:28.398Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "35ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:50:28.419Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users/1/page-access", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:50:29.338Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:50:29.402Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:50:30.392Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:50:33.050Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:50:33.053Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces", - "statusCode": 200, - "duration": "16ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:50:33.079Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/2/map-region", - "method": "GET" -} -[2026-01-27T05:50:33.080Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/2/map-region", - "statusCode": 404, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:50:33.082Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/10/map-region", - "method": "GET" -} -[2026-01-27T05:50:33.083Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/10/map-region", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:50:33.083Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/9/map-region", - "method": "GET" -} -[2026-01-27T05:50:33.084Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/9/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:50:33.085Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/7/map-region", - "method": "GET" -} -[2026-01-27T05:50:33.085Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/7/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:50:33.087Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/4/map-region", - "method": "GET" -} -[2026-01-27T05:50:33.088Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/4/map-region", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:50:33.089Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/11/map-region", - "method": "GET" -} -[2026-01-27T05:50:33.090Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/11/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:50:33.092Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/3/map-region", - "method": "GET" -} -[2026-01-27T05:50:33.093Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/3/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:50:33.096Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/12/map-region", - "method": "GET" -} -[2026-01-27T05:50:33.097Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/12/map-region", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:50:33.099Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/1/map-region", - "method": "GET" -} -[2026-01-27T05:50:33.100Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/1/map-region", - "statusCode": 404, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:50:33.101Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/6/map-region", - "method": "GET" -} -[2026-01-27T05:50:33.102Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/6/map-region", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:50:33.106Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/8/map-region", - "method": "GET" -} -[2026-01-27T05:50:33.108Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/8/map-region", - "statusCode": 404, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:50:33.110Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/5/map-region", - "method": "GET" -} -[2026-01-27T05:50:33.112Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/5/map-region", - "statusCode": 404, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:50:34.005Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:50:34.187Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:50:35.174Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:50:41.374Z] [ERROR] ❌ 계정 생성 실패 - Context: { - "worker_id": 1, - "error": "knex is not a function" -} -[2026-01-27T05:50:41.375Z] [INFO] ℹ️ 작업자 수정 후 캐시 무효화 - Context: { - "worker_id": 1 -} -[2026-01-27T05:50:41.377Z] [INFO] ℹ️ 작업자 수정 성공 - Context: { - "worker_id": 1 -} -[2026-01-27T05:50:41.378Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "PUT", - "url": "/api/workers/1", - "statusCode": 200, - "duration": "14ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:50:41.392Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:50:44.038Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T05:50:45.352Z] [INFO] ℹ️ 사용자 목록 조회 요청 - Context: { - "requestedBy": "admin" -} -[2026-01-27T05:50:45.356Z] [INFO] ℹ️ 사용자 목록 조회 성공 - Context: { - "count": 1 -} -[2026-01-27T05:50:45.358Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/users", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:50:46.356Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:50:57.609Z] [ERROR] ❌ 계정 생성 실패 - Context: { - "worker_id": 1, - "error": "knex is not a function" -} -[2026-01-27T05:50:57.611Z] [INFO] ℹ️ 작업자 수정 후 캐시 무효화 - Context: { - "worker_id": 1 -} -[2026-01-27T05:50:57.613Z] [INFO] ℹ️ 작업자 수정 성공 - Context: { - "worker_id": 1 -} -[2026-01-27T05:50:57.614Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "PUT", - "url": "/api/workers/1", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:50:57.631Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:51:14.129Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T05:51:44.221Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T05:52:14.317Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T05:52:36.489Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2026-01-27T05:52:36.491Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-01-27T05:52:36.952Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-27T05:52:37.018Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-01-27T05:52:37.080Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2026-01-27T05:52:37.086Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-01-27T05:52:41.867Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T05:53:11.963Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T05:53:23.591Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:53:24.572Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:53:28.560Z] [INFO] ℹ️ MariaDB 연결 성공 - Context: { - "connection": "db:3306", - "database": "hyungi", - "connectionLimit": 10 -} -[2026-01-27T05:53:28.631Z] [INFO] ℹ️ 작업자 계정 생성 성공 - Context: { - "worker_id": 1, - "username": "gim.dusu" -} -[2026-01-27T05:53:28.632Z] [INFO] ℹ️ 작업자 수정 후 캐시 무효화 - Context: { - "worker_id": 1 -} -[2026-01-27T05:53:28.634Z] [INFO] ℹ️ 작업자 수정 성공 - Context: { - "worker_id": 1 -} -[2026-01-27T05:53:28.635Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "PUT", - "url": "/api/workers/1", - "statusCode": 200, - "duration": "93ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:53:28.670Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:53:32.766Z] [INFO] ℹ️ 사용자 목록 조회 요청 - Context: { - "requestedBy": "admin" -} -[2026-01-27T05:53:32.771Z] [INFO] ℹ️ 사용자 목록 조회 성공 - Context: { - "count": 2 -} -[2026-01-27T05:53:32.773Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:53:33.757Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:53:42.062Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T05:54:05.790Z] [INFO] ℹ️ 사용자 수정 요청 - Context: { - "userId": "1" -} -[2026-01-27T05:54:05.814Z] [ERROR] ❌ 사용자 수정 실패 - Context: { - "userId": "1", - "error": "Unknown column 'phone' in 'field list'" -} -[2026-01-27T05:54:05.816Z] [ERROR] ❌ 사용자 정보를 수정하는데 실패했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 사용자 정보를 수정하는데 실패했습니다\n at /usr/src/app/controllers/userController.js:328:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "url": "/api/users/1", - "method": "PUT", - "user": "admin" -} -[2026-01-27T05:54:05.818Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "PUT", - "url": "/api/users/1", - "statusCode": 500, - "duration": "33ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:54:12.150Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T05:54:42.245Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T05:55:12.334Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T05:55:42.435Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T05:56:12.535Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T05:56:42.628Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T05:57:12.724Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T05:57:42.814Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T05:58:12.915Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T05:58:43.047Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T05:59:13.142Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T05:59:43.231Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T06:00:13.305Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T06:00:43.389Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T06:01:13.477Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T06:01:43.567Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T06:02:13.648Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T06:02:43.739Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T06:03:13.848Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T06:03:43.953Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T06:03:49.783Z] [INFO] ℹ️ 사용자 목록 조회 요청 - Context: { - "requestedBy": "admin" -} -[2026-01-27T06:03:49.798Z] [INFO] ℹ️ 사용자 목록 조회 성공 - Context: { - "count": 2 -} -[2026-01-27T06:03:49.799Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users", - "statusCode": 200, - "duration": "22ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T06:03:50.784Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T06:03:53.012Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-27", - "requester": 1, - "isAdmin": false -} -[2026-01-27T06:03:53.036Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "37ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T06:03:53.043Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 1 -} -[2026-01-27T06:03:53.044Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-27&view_all=true", - "statusCode": 200, - "duration": "37ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T06:03:53.061Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users/1/page-access", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T06:03:54.000Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T06:04:14.055Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T06:04:44.136Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T06:05:14.212Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T06:05:44.286Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T06:06:14.377Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T06:06:44.463Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T06:07:14.564Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T06:07:44.653Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T06:08:14.740Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T06:08:44.832Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T06:09:14.923Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T06:09:45.029Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T06:10:15.124Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T06:10:45.217Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T06:10:55.199Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-27", - "requester": 1, - "isAdmin": false -} -[2026-01-27T06:10:55.202Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 1 -} -[2026-01-27T06:10:55.203Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-27&view_all=true", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T06:10:55.206Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "15ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T06:10:55.218Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users/1/page-access", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T06:10:56.180Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T06:10:58.264Z] [INFO] ℹ️ 사용자 목록 조회 요청 - Context: { - "requestedBy": "admin" -} -[2026-01-27T06:10:58.271Z] [INFO] ℹ️ 사용자 목록 조회 성공 - Context: { - "count": 2 -} -[2026-01-27T06:10:58.274Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T06:10:59.240Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T06:11:05.439Z] [INFO] ℹ️ 사용자 수정 요청 - Context: { - "userId": "1" -} -[2026-01-27T06:11:05.446Z] [ERROR] ❌ 사용자 수정 실패 - Context: { - "userId": "1", - "error": "Unknown column 'phone' in 'field list'" -} -[2026-01-27T06:11:05.448Z] [ERROR] ❌ 사용자 정보를 수정하는데 실패했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 사용자 정보를 수정하는데 실패했습니다\n at /usr/src/app/controllers/userController.js:328:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "url": "/api/users/1", - "method": "PUT", - "user": "admin" -} -[2026-01-27T06:11:05.450Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "PUT", - "url": "/api/users/1", - "statusCode": 500, - "duration": "14ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T06:11:15.309Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T06:11:45.405Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T06:12:15.504Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T06:12:35.470Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2026-01-27T06:12:35.472Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-01-27T06:12:35.971Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-27T06:12:36.037Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-01-27T06:12:36.107Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2026-01-27T06:12:36.118Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-01-27T06:12:40.810Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T06:13:10.905Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T06:13:41.007Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T06:14:11.091Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T06:14:41.182Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T06:15:11.263Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T06:15:41.374Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T06:16:11.468Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T06:16:41.577Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T06:17:11.758Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T06:17:27.862Z] [INFO] ℹ️ 사용자 목록 조회 요청 - Context: { - "requestedBy": "admin" -} -[2026-01-27T06:17:27.884Z] [INFO] ℹ️ MariaDB 연결 성공 - Context: { - "connection": "db:3306", - "database": "hyungi", - "connectionLimit": 10 -} -[2026-01-27T06:17:27.889Z] [INFO] ℹ️ 사용자 목록 조회 성공 - Context: { - "count": 2 -} -[2026-01-27T06:17:27.890Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users", - "statusCode": 200, - "duration": "37ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T06:17:28.846Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T06:17:33.281Z] [INFO] ℹ️ 사용자 수정 요청 - Context: { - "userId": "1", - "body": { - "name": "Administrator", - "username": "admin", - "role": "admin", - "email": "", - "phone": "" - } -} -[2026-01-27T06:17:33.288Z] [INFO] ℹ️ role 문자열로 역할 변경 - Context: { - "userId": "1", - "role": "admin", - "role_id": 2 -} -[2026-01-27T06:17:33.288Z] [INFO] ℹ️ 실행할 UPDATE 쿼리 - Context: { - "query": "UPDATE users SET username = ?, name = ?, email = ?, phone = ?, role_id = ?, updated_at = NOW() WHERE user_id = ?", - "values": [ - "admin", - "Administrator", - null, - null, - 2, - "1" - ] -} -[2026-01-27T06:17:33.290Z] [ERROR] ❌ 사용자 수정 실패 - Context: { - "userId": "1", - "error": "Unknown column 'phone' in 'field list'", - "stack": "Error: Unknown column 'phone' in 'field list'\n at PromisePool.execute (/usr/src/app/node_modules/mysql2/lib/promise/pool.js:54:22)\n at /usr/src/app/controllers/userController.js:332:14\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)" -} -[2026-01-27T06:17:33.292Z] [ERROR] ❌ 사용자 정보를 수정하는데 실패했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 사용자 정보를 수정하는데 실패했습니다\n at /usr/src/app/controllers/userController.js:351:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "url": "/api/users/1", - "method": "PUT", - "user": "admin" -} -[2026-01-27T06:17:33.293Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "PUT", - "url": "/api/users/1", - "statusCode": 500, - "duration": "17ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T06:17:41.897Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T06:18:10.691Z] [INFO] ℹ️ 사용자 목록 조회 요청 - Context: { - "requestedBy": "admin" -} -[2026-01-27T06:18:10.695Z] [INFO] ℹ️ 사용자 목록 조회 성공 - Context: { - "count": 2 -} -[2026-01-27T06:18:10.696Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T06:18:11.692Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T06:18:11.997Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T06:18:42.083Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T06:19:12.172Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T06:19:18.635Z] [INFO] ℹ️ 사용자 목록 조회 요청 - Context: { - "requestedBy": "admin" -} -[2026-01-27T06:19:18.641Z] [INFO] ℹ️ 사용자 목록 조회 성공 - Context: { - "count": 2 -} -[2026-01-27T06:19:18.642Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users", - "statusCode": 200, - "duration": "14ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T06:19:19.602Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T06:19:22.024Z] [INFO] ℹ️ 사용자 수정 요청 - Context: { - "userId": "1", - "body": { - "name": "Administrator", - "username": "admin", - "role": "admin", - "email": "", - "phone": "" - } -} -[2026-01-27T06:19:22.034Z] [INFO] ℹ️ role 문자열로 역할 변경 - Context: { - "userId": "1", - "role": "admin", - "role_id": 2 -} -[2026-01-27T06:19:22.034Z] [INFO] ℹ️ 실행할 UPDATE 쿼리 - Context: { - "query": "UPDATE users SET username = ?, name = ?, email = ?, phone = ?, role_id = ?, updated_at = NOW() WHERE user_id = ?", - "values": [ - "admin", - "Administrator", - null, - null, - 2, - "1" - ] -} -[2026-01-27T06:19:22.037Z] [ERROR] ❌ 사용자 수정 실패 - Context: { - "userId": "1", - "error": "Unknown column 'phone' in 'field list'", - "stack": "Error: Unknown column 'phone' in 'field list'\n at PromisePool.execute (/usr/src/app/node_modules/mysql2/lib/promise/pool.js:54:22)\n at /usr/src/app/controllers/userController.js:332:14\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)" -} -[2026-01-27T06:19:22.039Z] [ERROR] ❌ 사용자 정보를 수정하는데 실패했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 사용자 정보를 수정하는데 실패했습니다\n at /usr/src/app/controllers/userController.js:351:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "url": "/api/users/1", - "method": "PUT", - "user": "admin" -} -[2026-01-27T06:19:22.040Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "PUT", - "url": "/api/users/1", - "statusCode": 500, - "duration": "21ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T06:19:29.008Z] [INFO] ℹ️ 사용자 수정 요청 - Context: { - "userId": "27", - "body": { - "name": "김두수", - "username": "gim.dusu", - "role": "user", - "email": "", - "phone": "" - } -} -[2026-01-27T06:19:29.013Z] [INFO] ℹ️ role 문자열로 역할 변경 - Context: { - "userId": "27", - "role": "user", - "role_id": 4 -} -[2026-01-27T06:19:29.014Z] [INFO] ℹ️ 실행할 UPDATE 쿼리 - Context: { - "query": "UPDATE users SET username = ?, name = ?, email = ?, phone = ?, role_id = ?, updated_at = NOW() WHERE user_id = ?", - "values": [ - "gim.dusu", - "김두수", - null, - null, - 4, - "27" - ] -} -[2026-01-27T06:19:29.015Z] [ERROR] ❌ 사용자 수정 실패 - Context: { - "userId": "27", - "error": "Unknown column 'phone' in 'field list'", - "stack": "Error: Unknown column 'phone' in 'field list'\n at PromisePool.execute (/usr/src/app/node_modules/mysql2/lib/promise/pool.js:54:22)\n at /usr/src/app/controllers/userController.js:332:14\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)" -} -[2026-01-27T06:19:29.016Z] [ERROR] ❌ 사용자 정보를 수정하는데 실패했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 사용자 정보를 수정하는데 실패했습니다\n at /usr/src/app/controllers/userController.js:351:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "url": "/api/users/27", - "method": "PUT", - "user": "admin" -} -[2026-01-27T06:19:29.017Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "PUT", - "url": "/api/users/27", - "statusCode": 500, - "duration": "13ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T06:19:40.725Z] [INFO] ℹ️ 사용자 목록 조회 요청 - Context: { - "requestedBy": "admin" -} -[2026-01-27T06:19:40.727Z] [INFO] ℹ️ 사용자 목록 조회 성공 - Context: { - "count": 2 -} -[2026-01-27T06:19:40.729Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T06:19:41.722Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T06:19:42.276Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T06:19:44.427Z] [INFO] ℹ️ 사용자 수정 요청 - Context: { - "userId": "1", - "body": { - "name": "Administrator", - "username": "admin", - "role": "admin", - "email": "", - "phone": "" - } -} -[2026-01-27T06:19:44.430Z] [INFO] ℹ️ role 문자열로 역할 변경 - Context: { - "userId": "1", - "role": "admin", - "role_id": 2 -} -[2026-01-27T06:19:44.430Z] [INFO] ℹ️ 실행할 UPDATE 쿼리 - Context: { - "query": "UPDATE users SET username = ?, name = ?, email = ?, phone = ?, role_id = ?, updated_at = NOW() WHERE user_id = ?", - "values": [ - "admin", - "Administrator", - null, - null, - 2, - "1" - ] -} -[2026-01-27T06:19:44.431Z] [ERROR] ❌ 사용자 수정 실패 - Context: { - "userId": "1", - "error": "Unknown column 'phone' in 'field list'", - "stack": "Error: Unknown column 'phone' in 'field list'\n at PromisePool.execute (/usr/src/app/node_modules/mysql2/lib/promise/pool.js:54:22)\n at /usr/src/app/controllers/userController.js:332:14\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)" -} -[2026-01-27T06:19:44.431Z] [ERROR] ❌ 사용자 정보를 수정하는데 실패했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 사용자 정보를 수정하는데 실패했습니다\n at /usr/src/app/controllers/userController.js:351:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "url": "/api/users/1", - "method": "PUT", - "user": "admin" -} -[2026-01-27T06:19:44.432Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "PUT", - "url": "/api/users/1", - "statusCode": 500, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T06:20:12.365Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T06:20:42.455Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T06:21:12.553Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T06:21:42.646Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T06:22:12.737Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T06:22:33.119Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2026-01-27T06:22:33.121Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-01-27T06:22:33.538Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-27T06:22:33.596Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-01-27T06:22:33.660Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2026-01-27T06:22:33.662Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-01-27T06:22:38.456Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T06:22:40.536Z] [INFO] ℹ️ MariaDB 연결 성공 - Context: { - "connection": "db:3306", - "database": "hyungi", - "connectionLimit": 10 -} -[2026-01-27T06:22:40.621Z] [WARN] ⚠️ 아이디 또는 비밀번호가 올바르지 않습니다. - Context: { - "code": "AUTHENTICATION_ERROR", - "url": "/api/auth/login", - "method": "POST", - "user": "anonymous" -} -[2026-01-27T06:22:40.622Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 401, - "duration": "96ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-01-27T06:23:00.986Z] [WARN] ⚠️ 아이디 또는 비밀번호가 올바르지 않습니다. - Context: { - "code": "AUTHENTICATION_ERROR", - "url": "/api/auth/login", - "method": "POST", - "user": "anonymous" -} -[2026-01-27T06:23:00.988Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 401, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-01-27T06:23:08.536Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T06:23:17.180Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 200, - "duration": "88ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-01-27T06:23:38.609Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T06:24:08.690Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T06:24:38.769Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T06:25:08.870Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T06:25:38.959Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T06:26:09.039Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T06:26:39.124Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T06:27:09.190Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T06:27:39.271Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T06:28:09.352Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T06:28:39.434Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T06:29:09.526Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T06:29:39.607Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T06:30:09.698Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T06:30:39.789Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T06:31:09.869Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T06:31:29.709Z] [INFO] ℹ️ 사용자 수정 요청 - Context: { - "userId": "1", - "body": { - "role": "admin" - } -} -[2026-01-27T06:31:29.727Z] [INFO] ℹ️ role 문자열로 역할 변경 - Context: { - "userId": "1", - "role": "admin", - "role_id": 2 -} -[2026-01-27T06:31:29.727Z] [INFO] ℹ️ 실행할 UPDATE 쿼리 - Context: { - "query": "UPDATE users SET role_id = ?, updated_at = NOW() WHERE user_id = ?", - "values": [ - 2, - "1" - ] -} -[2026-01-27T06:31:29.729Z] [INFO] ℹ️ 사용자 수정 성공 - Context: { - "userId": "1", - "username": "admin", - "updatedFields": [ - "role" - ], - "updatedBy": "admin" -} -[2026-01-27T06:31:29.730Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "PUT", - "url": "/api/users/1", - "statusCode": 200, - "duration": "29ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "curl/8.7.1" -} -[2026-01-27T06:31:39.949Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T06:32:10.046Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T06:32:36.407Z] [INFO] ℹ️ 사용자 목록 조회 요청 - Context: { - "requestedBy": "admin" -} -[2026-01-27T06:32:36.417Z] [INFO] ℹ️ 사용자 목록 조회 성공 - Context: { - "count": 2 -} -[2026-01-27T06:32:36.422Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users", - "statusCode": 200, - "duration": "25ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T06:32:37.360Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T06:32:40.147Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T06:32:44.250Z] [INFO] ℹ️ 사용자 수정 요청 - Context: { - "userId": "1", - "body": { - "name": "Administrator", - "username": "admin", - "role": "admin", - "email": "", - "phone": "" - } -} -[2026-01-27T06:32:44.256Z] [INFO] ℹ️ role 문자열로 역할 변경 - Context: { - "userId": "1", - "role": "admin", - "role_id": 2 -} -[2026-01-27T06:32:44.257Z] [INFO] ℹ️ 실행할 UPDATE 쿼리 - Context: { - "query": "UPDATE users SET username = ?, name = ?, email = ?, phone = ?, role_id = ?, updated_at = NOW() WHERE user_id = ?", - "values": [ - "admin", - "Administrator", - null, - null, - 2, - "1" - ] -} -[2026-01-27T06:32:44.259Z] [ERROR] ❌ 사용자 수정 실패 - Context: { - "userId": "1", - "error": "Unknown column 'phone' in 'field list'", - "stack": "Error: Unknown column 'phone' in 'field list'\n at PromisePool.execute (/usr/src/app/node_modules/mysql2/lib/promise/pool.js:54:22)\n at /usr/src/app/controllers/userController.js:332:14\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)" -} -[2026-01-27T06:32:44.261Z] [ERROR] ❌ 사용자 정보를 수정하는데 실패했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 사용자 정보를 수정하는데 실패했습니다\n at /usr/src/app/controllers/userController.js:351:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "url": "/api/users/1", - "method": "PUT", - "user": "admin" -} -[2026-01-27T06:32:44.263Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "PUT", - "url": "/api/users/1", - "statusCode": 500, - "duration": "16ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T06:33:10.225Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T06:33:40.291Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T06:34:10.374Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T06:34:40.479Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T06:35:10.566Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T06:35:40.650Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T06:36:10.738Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T06:36:40.834Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T06:37:10.921Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T06:37:41.012Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T06:38:11.092Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T06:38:41.188Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T06:39:11.278Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T06:39:41.372Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T06:40:11.481Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T06:40:41.550Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T06:40:42.476Z] [INFO] ℹ️ 사용자 목록 조회 요청 - Context: { - "requestedBy": "admin" -} -[2026-01-27T06:40:42.488Z] [INFO] ℹ️ 사용자 목록 조회 성공 - Context: { - "count": 2 -} -[2026-01-27T06:40:42.494Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users", - "statusCode": 200, - "duration": "21ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T06:40:43.481Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T06:40:46.735Z] [INFO] ℹ️ 사용자 수정 요청 - Context: { - "userId": "1", - "body": { - "name": "Administrator", - "username": "admin", - "role": "admin", - "email": "", - "phone": "" - } -} -[2026-01-27T06:40:46.742Z] [INFO] ℹ️ role 문자열로 역할 변경 - Context: { - "userId": "1", - "role": "admin", - "role_id": 2 -} -[2026-01-27T06:40:46.744Z] [INFO] ℹ️ 실행할 UPDATE 쿼리 - Context: { - "query": "UPDATE users SET username = ?, name = ?, email = ?, phone = ?, role_id = ?, updated_at = NOW() WHERE user_id = ?", - "values": [ - "admin", - "Administrator", - null, - null, - 2, - "1" - ] -} -[2026-01-27T06:40:46.749Z] [ERROR] ❌ 사용자 수정 실패 - Context: { - "userId": "1", - "error": "Unknown column 'phone' in 'field list'", - "stack": "Error: Unknown column 'phone' in 'field list'\n at PromisePool.execute (/usr/src/app/node_modules/mysql2/lib/promise/pool.js:54:22)\n at /usr/src/app/controllers/userController.js:332:14\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)" -} -[2026-01-27T06:40:46.752Z] [ERROR] ❌ 사용자 정보를 수정하는데 실패했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 사용자 정보를 수정하는데 실패했습니다\n at /usr/src/app/controllers/userController.js:351:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "url": "/api/users/1", - "method": "PUT", - "user": "admin" -} -[2026-01-27T06:40:46.753Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "PUT", - "url": "/api/users/1", - "statusCode": 500, - "duration": "25ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T06:41:03.558Z] [INFO] ℹ️ 사용자 수정 요청 - Context: { - "userId": "27", - "body": { - "name": "김두수", - "username": "gim.dusu", - "role": "user", - "email": "", - "phone": "00000000000" - } -} -[2026-01-27T06:41:03.562Z] [INFO] ℹ️ role 문자열로 역할 변경 - Context: { - "userId": "27", - "role": "user", - "role_id": 4 -} -[2026-01-27T06:41:03.562Z] [INFO] ℹ️ 실행할 UPDATE 쿼리 - Context: { - "query": "UPDATE users SET username = ?, name = ?, email = ?, phone = ?, role_id = ?, updated_at = NOW() WHERE user_id = ?", - "values": [ - "gim.dusu", - "김두수", - null, - "00000000000", - 4, - "27" - ] -} -[2026-01-27T06:41:03.563Z] [ERROR] ❌ 사용자 수정 실패 - Context: { - "userId": "27", - "error": "Unknown column 'phone' in 'field list'", - "stack": "Error: Unknown column 'phone' in 'field list'\n at PromisePool.execute (/usr/src/app/node_modules/mysql2/lib/promise/pool.js:54:22)\n at /usr/src/app/controllers/userController.js:332:14\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)" -} -[2026-01-27T06:41:03.565Z] [ERROR] ❌ 사용자 정보를 수정하는데 실패했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 사용자 정보를 수정하는데 실패했습니다\n at /usr/src/app/controllers/userController.js:351:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "url": "/api/users/27", - "method": "PUT", - "user": "admin" -} -[2026-01-27T06:41:03.566Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "PUT", - "url": "/api/users/27", - "statusCode": 500, - "duration": "12ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T06:41:11.641Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T06:41:41.739Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T06:42:11.843Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T06:42:41.932Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T06:43:12.021Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T06:43:42.106Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T06:44:12.198Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T06:44:31.611Z] [INFO] ℹ️ 사용자 목록 조회 요청 - Context: { - "requestedBy": "admin" -} -[2026-01-27T06:44:31.618Z] [INFO] ℹ️ 사용자 목록 조회 성공 - Context: { - "count": 2 -} -[2026-01-27T06:44:31.620Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T06:44:32.601Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T06:44:42.011Z] [INFO] ℹ️ 사용자 수정 요청 - Context: { - "userId": "27", - "body": { - "name": "김두수", - "username": "gim.dusu", - "role": "user", - "email": "", - "phone": "000-0000-0000" - } -} -[2026-01-27T06:44:42.017Z] [INFO] ℹ️ role 문자열로 역할 변경 - Context: { - "userId": "27", - "role": "user", - "role_id": 4 -} -[2026-01-27T06:44:42.017Z] [INFO] ℹ️ 실행할 UPDATE 쿼리 - Context: { - "query": "UPDATE users SET username = ?, name = ?, email = ?, phone = ?, role_id = ?, updated_at = NOW() WHERE user_id = ?", - "values": [ - "gim.dusu", - "김두수", - null, - "000-0000-0000", - 4, - "27" - ] -} -[2026-01-27T06:44:42.019Z] [ERROR] ❌ 사용자 수정 실패 - Context: { - "userId": "27", - "error": "Unknown column 'phone' in 'field list'", - "stack": "Error: Unknown column 'phone' in 'field list'\n at PromisePool.execute (/usr/src/app/node_modules/mysql2/lib/promise/pool.js:54:22)\n at /usr/src/app/controllers/userController.js:332:14\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)" -} -[2026-01-27T06:44:42.019Z] [ERROR] ❌ 사용자 정보를 수정하는데 실패했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 사용자 정보를 수정하는데 실패했습니다\n at /usr/src/app/controllers/userController.js:351:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "url": "/api/users/27", - "method": "PUT", - "user": "admin" -} -[2026-01-27T06:44:42.020Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "PUT", - "url": "/api/users/27", - "statusCode": 500, - "duration": "11ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T06:44:42.288Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T06:45:12.371Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T06:45:16.044Z] [INFO] ℹ️ 사용자 수정 요청 - Context: { - "userId": "27", - "body": { - "name": "김두수", - "username": "gim.dusu", - "role": "admin", - "email": "", - "phone": "" - } -} -[2026-01-27T06:45:16.050Z] [INFO] ℹ️ role 문자열로 역할 변경 - Context: { - "userId": "27", - "role": "admin", - "role_id": 2 -} -[2026-01-27T06:45:16.051Z] [INFO] ℹ️ 실행할 UPDATE 쿼리 - Context: { - "query": "UPDATE users SET username = ?, name = ?, email = ?, phone = ?, role_id = ?, updated_at = NOW() WHERE user_id = ?", - "values": [ - "gim.dusu", - "김두수", - null, - null, - 2, - "27" - ] -} -[2026-01-27T06:45:16.052Z] [ERROR] ❌ 사용자 수정 실패 - Context: { - "userId": "27", - "error": "Unknown column 'phone' in 'field list'", - "stack": "Error: Unknown column 'phone' in 'field list'\n at PromisePool.execute (/usr/src/app/node_modules/mysql2/lib/promise/pool.js:54:22)\n at /usr/src/app/controllers/userController.js:332:14\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)" -} -[2026-01-27T06:45:16.053Z] [ERROR] ❌ 사용자 정보를 수정하는데 실패했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 사용자 정보를 수정하는데 실패했습니다\n at /usr/src/app/controllers/userController.js:351:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "url": "/api/users/27", - "method": "PUT", - "user": "admin" -} -[2026-01-27T06:45:16.054Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "PUT", - "url": "/api/users/27", - "statusCode": 500, - "duration": "15ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T06:45:34.456Z] [WARN] ⚠️ 인증 실패: Bearer 토큰 누락 - Context: { - "path": "/", - "method": "PUT", - "ip": "::ffff:192.168.65.1" -} -[2026-01-27T06:45:34.457Z] [WARN] ⚠️ Bearer 토큰이 필요합니다 - Context: { - "code": "AUTHENTICATION_ERROR", - "url": "/api/users/27", - "method": "PUT", - "user": "anonymous" -} -[2026-01-27T06:45:34.459Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "PUT", - "url": "/api/users/27", - "statusCode": 401, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-01-27T06:45:42.071Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 200, - "duration": "94ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-01-27T06:45:42.460Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T06:46:12.549Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T06:46:42.635Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T06:47:12.717Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T06:47:42.807Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T06:48:12.892Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T06:48:27.649Z] [INFO] ℹ️ 사용자 수정 요청 - Context: { - "userId": "27", - "body": { - "phone": "01012345678" - } -} -[2026-01-27T06:48:27.652Z] [INFO] ℹ️ 실행할 UPDATE 쿼리 - Context: { - "query": "UPDATE users SET phone = ?, updated_at = NOW() WHERE user_id = ?", - "values": [ - "01012345678", - "27" - ] -} -[2026-01-27T06:48:27.655Z] [ERROR] ❌ 사용자 수정 실패 - Context: { - "userId": "27", - "error": "Unknown column 'phone' in 'field list'", - "stack": "Error: Unknown column 'phone' in 'field list'\n at PromisePool.execute (/usr/src/app/node_modules/mysql2/lib/promise/pool.js:54:22)\n at /usr/src/app/controllers/userController.js:332:14\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)" -} -[2026-01-27T06:48:27.656Z] [ERROR] ❌ 사용자 정보를 수정하는데 실패했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 사용자 정보를 수정하는데 실패했습니다\n at /usr/src/app/controllers/userController.js:351:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "url": "/api/users/27", - "method": "PUT", - "user": "admin" -} -[2026-01-27T06:48:27.662Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "PUT", - "url": "/api/users/27", - "statusCode": 500, - "duration": "15ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "curl/8.7.1" -} -[2026-01-27T06:48:42.991Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T06:49:13.089Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T06:49:43.180Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T06:50:13.278Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T06:50:43.366Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T06:51:13.452Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T06:51:43.542Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T06:52:13.644Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T06:52:43.734Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T06:53:13.827Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T06:53:43.919Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T06:54:14.009Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T06:54:44.102Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T06:55:14.203Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T06:55:44.293Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T06:56:14.385Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T06:56:44.492Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T06:57:14.576Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T06:57:44.662Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T06:58:14.748Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T06:58:44.844Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T06:59:14.943Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T06:59:45.028Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T07:00:15.097Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T07:00:45.152Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T07:01:15.218Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T07:01:45.292Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T07:02:15.373Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T07:02:45.456Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T07:03:15.546Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T07:03:45.643Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T07:04:15.744Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T07:04:45.834Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T07:05:15.924Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T07:05:46.013Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T07:06:16.112Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T07:06:46.199Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T07:07:16.280Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T07:07:46.370Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T07:08:16.448Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T07:08:46.538Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T07:09:16.628Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T07:09:46.719Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T07:10:16.803Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T07:10:46.888Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T07:11:16.973Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T07:11:47.067Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T07:12:17.158Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T07:12:47.255Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T07:13:17.346Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T07:13:47.432Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T07:14:17.530Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T07:14:47.617Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T07:15:17.707Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T07:15:47.794Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T07:16:17.882Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T07:16:47.962Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T07:17:18.060Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T07:17:48.141Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T07:18:18.220Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T07:18:48.309Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T07:19:18.393Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T07:19:48.458Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T07:20:18.514Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T07:20:48.576Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T07:21:18.653Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T07:21:48.727Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T07:22:18.818Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T07:22:48.914Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T07:23:19.006Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T07:23:49.099Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T07:24:19.191Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T07:24:49.275Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T07:25:19.369Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T07:25:49.451Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T07:26:19.544Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T07:26:49.631Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T07:27:19.718Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T07:27:49.797Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T07:28:19.880Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T07:28:49.948Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T07:29:20.033Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T07:29:50.128Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T07:30:20.216Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T07:30:50.304Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T07:31:20.389Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T07:31:50.468Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T07:32:20.565Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T07:32:50.652Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T07:33:20.742Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T07:33:50.833Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T07:34:20.916Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T07:34:50.983Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T07:35:21.054Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T07:35:51.149Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T07:36:21.239Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T07:36:51.334Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T07:37:21.438Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T07:37:51.519Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T07:38:21.609Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T07:38:51.698Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T07:39:21.789Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T07:39:51.870Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T07:40:21.970Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T07:40:52.060Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T07:41:22.163Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T07:41:52.245Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T07:42:22.334Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T07:42:52.440Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T07:43:22.533Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T07:43:52.625Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T07:44:22.716Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T07:44:52.805Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T07:45:22.899Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T07:45:52.997Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T07:46:23.078Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T07:46:53.165Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T07:47:23.250Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T07:47:53.352Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T07:48:23.438Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T07:48:53.531Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T07:49:23.630Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T07:49:53.719Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T07:50:23.798Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T07:50:53.881Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T07:51:23.970Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T07:51:54.061Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T07:52:24.151Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T07:52:54.235Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T07:53:24.339Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T07:53:54.435Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T07:54:24.535Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T07:54:54.622Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T07:55:24.724Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T07:55:54.809Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T07:56:24.889Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T07:56:54.974Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T07:57:25.064Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T07:57:55.168Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T07:58:25.259Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T07:58:55.342Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T07:59:25.440Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T07:59:55.528Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T08:00:25.620Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T08:00:55.714Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T08:01:25.801Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T08:01:55.892Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T08:02:25.980Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T08:02:56.073Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T08:03:26.170Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T08:03:56.275Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T08:04:26.370Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T08:04:56.467Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T08:05:26.563Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T08:05:56.656Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T08:06:26.726Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T08:06:56.791Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T08:07:26.869Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T08:07:56.950Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T08:08:27.034Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T08:08:57.128Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T08:09:27.222Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T08:09:57.305Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T08:10:27.396Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T08:10:57.494Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T08:11:27.587Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T08:11:57.675Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T08:12:27.767Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T08:12:57.857Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T08:13:27.942Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T08:13:58.008Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T08:14:28.109Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T08:14:58.199Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T08:15:28.294Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T08:15:58.386Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T08:16:28.476Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T08:16:58.565Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T08:17:28.652Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T08:17:58.749Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T08:18:28.845Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T08:18:58.923Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T08:19:29.009Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T08:19:59.093Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T08:20:29.170Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T08:20:59.250Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T08:21:29.342Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T08:21:59.429Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T08:22:29.520Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T08:22:59.614Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T08:23:29.708Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T08:23:59.785Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T08:24:29.882Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T08:24:59.971Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T08:25:30.036Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T08:26:00.113Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T08:26:30.185Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T08:27:00.268Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T08:27:30.348Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T08:28:00.446Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T08:28:30.538Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T08:29:00.620Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T08:29:30.713Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T08:30:00.806Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T08:30:30.889Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T08:31:00.979Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T08:31:31.073Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T08:32:01.153Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T08:32:31.246Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T08:33:01.333Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T08:33:31.434Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T08:34:01.512Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T08:34:31.591Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T08:35:01.696Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T08:35:31.781Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T08:36:01.873Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T08:36:31.962Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T08:37:02.052Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T08:37:32.127Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T08:38:02.213Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T08:38:32.288Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T08:39:02.373Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T08:39:32.449Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T08:40:02.515Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T08:40:32.582Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T08:41:02.658Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T08:41:32.742Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T08:42:02.835Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T08:42:32.917Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T08:43:03.002Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T08:43:33.090Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T08:44:03.174Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T08:44:33.260Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T08:45:03.349Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T08:45:33.448Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T08:46:03.549Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T08:46:33.639Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T08:47:03.721Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T08:47:33.814Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T08:48:03.914Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T08:48:34.001Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T08:49:04.093Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T08:49:34.188Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T08:50:04.276Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T08:50:34.353Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T08:51:04.439Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T08:51:34.538Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T08:52:04.631Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T08:52:34.733Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T08:53:04.845Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T08:53:34.936Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T08:54:05.025Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T08:54:35.105Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T08:55:05.199Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T08:55:35.292Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T08:56:05.389Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T08:56:35.481Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T08:57:05.572Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T08:57:35.660Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T08:58:05.745Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T08:58:35.831Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T08:59:05.917Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T08:59:36.024Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T09:00:06.111Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T09:00:36.206Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T09:01:06.310Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T09:01:36.399Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T09:02:06.500Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T09:02:36.596Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T09:03:06.684Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T09:03:36.782Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T09:04:06.881Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T09:04:36.978Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T09:05:07.062Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T09:05:37.159Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T09:06:07.252Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T09:06:37.340Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T09:07:07.429Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T09:07:37.523Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T09:08:07.615Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T09:08:37.707Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T09:09:07.805Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T09:09:37.904Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T09:10:08.001Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T09:10:38.089Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T09:11:08.177Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T09:11:38.247Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T09:12:08.301Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T09:12:38.376Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T09:13:08.461Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T09:13:38.568Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T09:14:08.668Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T09:14:38.767Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T09:15:08.856Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T09:15:38.942Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T09:16:09.050Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T09:16:39.141Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T09:17:09.237Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T09:17:39.334Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T09:18:09.422Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T09:18:39.514Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T09:19:09.607Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T09:19:39.707Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T09:20:09.791Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T09:20:39.886Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T09:21:09.979Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T09:21:40.074Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T09:22:10.155Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T09:22:40.236Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T09:23:10.335Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T09:23:40.425Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T09:24:10.504Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T09:24:40.582Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T09:25:10.657Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T09:25:40.741Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T09:26:10.828Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T09:26:40.905Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T09:27:10.990Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T09:27:41.048Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T09:28:11.135Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T09:28:41.223Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T09:29:11.311Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T09:29:41.400Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T09:30:11.454Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T09:30:41.519Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T09:31:11.591Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T09:31:41.677Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T09:32:11.781Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T09:32:41.859Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T09:33:11.952Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T09:33:42.036Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T09:34:12.135Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T09:34:42.227Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T09:35:12.295Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T09:35:42.390Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T09:36:12.442Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T09:36:42.526Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T09:37:12.593Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T09:37:42.692Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T09:38:12.768Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T09:38:42.850Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T09:39:12.943Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T09:39:43.028Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T09:40:13.120Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T09:40:43.209Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T09:41:13.294Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T09:41:43.399Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T09:42:13.487Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T09:42:43.581Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T09:43:13.646Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T09:43:43.733Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T09:44:13.816Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T09:44:43.898Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T09:45:13.982Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T09:45:44.047Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T09:46:14.121Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T09:46:44.212Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T09:47:14.300Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T09:47:44.382Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T09:48:14.463Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T09:48:44.564Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T09:49:14.655Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T09:49:44.763Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T09:50:14.866Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T09:50:44.955Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T09:51:15.035Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T09:51:45.123Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T09:52:15.214Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T09:52:45.294Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T09:53:15.387Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T09:53:45.484Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T09:54:15.579Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T09:54:45.668Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T09:55:15.759Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T09:55:45.846Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T09:56:15.930Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T09:56:46.013Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T09:57:16.106Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T09:57:46.192Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T09:58:16.284Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T09:58:46.379Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T09:59:16.467Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T09:59:46.553Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T10:00:16.639Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T10:00:46.724Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T10:01:16.806Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T10:01:46.899Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T10:02:16.990Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T10:02:47.074Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T10:03:17.171Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T10:03:47.263Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T10:04:17.347Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T10:04:47.445Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T10:05:17.535Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T10:05:47.626Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T10:06:17.707Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T10:06:47.785Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T10:07:17.866Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T10:07:47.966Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T10:08:18.066Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T10:08:48.162Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T10:09:18.246Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T10:09:48.324Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T10:10:18.419Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T10:10:48.515Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T10:11:18.612Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T10:11:48.702Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T10:12:18.789Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T10:12:48.888Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T10:13:18.976Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T10:13:49.065Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T10:14:19.157Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T10:14:49.245Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T10:15:19.336Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T10:15:49.423Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T10:16:19.511Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T10:16:49.603Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T10:17:19.697Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T10:17:49.775Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T10:18:19.826Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T10:18:49.894Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T10:19:19.974Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T10:19:50.086Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T10:20:20.191Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T10:20:50.279Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T10:21:20.368Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T10:21:50.464Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T10:22:20.569Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T10:22:50.657Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T10:23:20.751Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T10:23:50.842Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T10:24:20.940Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T10:24:51.012Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T10:25:21.110Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T10:25:51.206Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T10:26:21.292Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T10:26:51.388Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T10:27:21.482Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T10:27:51.569Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T10:28:21.659Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T10:28:51.747Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T10:29:21.829Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T10:29:51.918Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T10:30:22.010Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T10:30:52.096Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T10:31:22.182Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T10:31:52.273Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T10:32:22.368Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T10:32:52.462Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T10:33:22.548Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T10:33:52.635Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T10:34:22.722Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T10:34:52.802Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T10:35:22.888Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T10:35:52.974Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T10:36:23.054Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T10:36:53.115Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T10:37:23.175Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T10:37:53.249Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T10:38:23.320Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T10:38:53.410Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T10:39:23.522Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T10:39:53.612Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T10:40:23.697Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T10:40:53.786Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T10:41:23.878Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T10:41:53.960Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T10:42:24.057Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T10:42:54.151Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T10:43:24.239Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T10:43:54.315Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T10:44:24.403Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T10:44:54.494Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T10:45:24.575Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T10:45:54.662Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T10:46:24.757Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T10:46:54.846Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T10:47:24.944Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T10:47:55.036Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T10:48:25.103Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T10:48:55.210Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T10:49:25.287Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T10:49:55.372Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T10:50:25.452Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T10:50:55.510Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T10:51:25.587Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T10:51:55.675Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T10:52:25.770Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T10:52:55.861Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T10:53:25.958Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T10:53:56.063Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T10:54:26.154Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T10:54:56.241Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T10:55:26.332Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T10:55:56.425Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T10:56:26.514Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T10:56:56.594Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T10:57:26.678Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T10:57:56.772Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T10:58:26.862Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T10:58:56.952Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T10:59:27.039Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T10:59:57.130Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T11:00:27.220Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T11:00:57.309Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T11:01:27.416Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T11:01:57.500Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T11:02:27.593Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T11:02:57.687Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T11:03:27.784Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T11:03:57.883Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T11:04:27.964Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T11:04:58.053Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T11:05:28.163Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T11:05:58.252Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T11:06:28.349Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T11:06:58.433Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T11:07:28.526Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T11:07:58.614Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T11:08:28.700Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T11:08:58.792Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T11:09:28.884Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T11:09:58.963Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T11:10:29.057Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T11:10:59.136Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T11:11:29.234Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T11:11:59.319Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T11:12:29.410Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T11:12:59.501Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T11:13:29.585Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T11:13:59.679Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T11:14:29.768Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T11:14:59.875Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T11:15:29.967Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T11:16:00.054Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T11:16:30.141Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T11:17:00.241Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T11:17:30.343Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T11:18:00.437Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T11:18:30.529Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T11:19:00.618Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T11:19:30.707Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T11:20:00.794Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T11:20:30.889Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T11:21:00.970Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T11:21:31.049Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T11:22:01.137Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T11:22:31.236Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T11:23:01.308Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T11:23:31.371Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T11:24:01.453Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T11:24:31.542Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T11:25:01.631Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T11:25:31.717Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T11:26:01.816Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T11:26:31.912Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T11:27:02.001Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T11:27:32.095Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T11:28:02.186Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T11:28:32.282Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T11:29:02.365Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T11:29:32.456Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T11:30:02.563Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T11:30:32.650Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T11:31:02.740Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T11:31:32.845Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T11:32:02.925Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T11:32:33.019Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T11:33:03.115Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T11:33:33.200Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T11:34:03.280Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T11:34:33.361Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T11:35:03.436Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T11:35:33.525Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T11:36:03.613Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T11:36:33.713Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T11:37:03.796Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T11:37:33.876Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T11:38:03.968Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T11:38:34.066Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T11:39:04.150Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T11:39:34.237Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T11:40:04.327Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T11:40:34.414Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T11:41:04.508Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T11:41:34.597Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T11:42:04.649Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T11:42:34.711Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T11:43:04.777Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T11:43:34.856Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T11:44:04.941Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T11:44:35.025Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T11:45:05.127Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T11:45:35.220Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T11:46:05.306Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T11:46:35.394Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T11:47:05.490Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T11:47:35.577Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T11:48:05.658Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T11:48:35.741Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T11:49:05.827Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T11:49:35.930Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T11:50:06.032Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T11:50:36.110Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T11:51:06.181Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T11:51:36.264Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T11:52:06.361Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T11:52:36.461Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T11:53:06.553Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T11:53:36.642Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T11:54:06.736Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T11:54:36.808Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T11:55:06.896Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T11:55:36.974Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T11:56:07.050Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T11:56:37.126Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T11:57:07.206Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T11:57:37.283Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T11:58:07.363Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T11:58:37.452Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T11:59:07.537Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T11:59:37.629Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T12:00:07.720Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T12:00:37.805Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T12:01:07.891Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T12:01:37.985Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T12:02:08.076Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T12:02:38.162Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T12:03:08.252Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T12:03:38.330Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T12:04:08.421Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T12:04:38.514Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T12:05:08.603Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T12:05:38.684Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T12:06:08.775Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T12:06:38.866Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T12:07:08.955Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T12:07:39.045Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T12:08:09.134Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T12:08:39.221Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T12:09:09.311Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T12:09:39.414Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T12:10:09.505Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T12:10:39.590Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T12:11:09.684Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T12:11:39.774Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T12:12:09.874Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T12:12:39.959Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T12:13:10.044Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T12:13:40.125Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T12:14:10.212Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T12:14:40.323Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T12:15:10.428Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T12:15:40.530Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T12:16:10.622Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T12:16:40.705Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T12:17:10.792Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T12:17:40.886Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T12:18:10.969Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T12:18:41.056Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T12:19:11.144Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T12:19:41.226Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T12:20:11.316Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T12:20:41.398Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T12:21:11.476Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T12:21:41.575Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T12:22:11.665Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T12:22:41.724Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T12:23:11.808Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T12:23:41.895Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T12:24:11.983Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T12:24:42.077Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T12:25:12.160Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T12:25:42.262Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T12:26:12.356Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T12:26:42.445Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T12:27:12.529Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T12:27:42.619Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T12:28:12.695Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T12:28:42.784Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T12:29:12.876Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T12:29:42.945Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T12:30:13.009Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T12:30:43.085Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T12:31:13.168Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T12:31:43.261Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T12:32:13.351Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T12:32:43.442Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T12:33:13.531Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T12:33:43.625Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T12:34:13.711Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T12:34:43.795Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T12:35:13.885Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T12:35:43.977Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T12:36:14.082Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T12:36:44.162Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T12:37:14.261Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T12:37:44.342Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T12:38:14.434Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T12:38:44.529Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T12:39:14.621Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T12:39:44.722Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T12:40:14.806Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T12:40:44.897Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T12:41:15.001Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T12:41:45.095Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T12:42:15.176Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T12:42:45.265Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T12:43:15.341Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T12:43:45.421Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T12:44:15.510Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T12:44:45.589Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T12:45:15.680Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T12:45:45.770Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T12:46:15.849Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T12:46:45.937Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T12:47:16.016Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T12:47:46.100Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T12:48:16.178Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T12:48:46.244Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T12:49:16.296Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T12:49:46.356Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T12:50:16.430Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T12:50:46.506Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T12:51:16.595Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T12:51:46.694Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T12:52:16.788Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T12:52:46.875Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T12:53:16.969Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T12:53:47.058Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T12:54:17.165Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T12:54:47.258Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T12:55:17.351Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T12:55:47.435Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T12:56:17.528Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T12:56:47.627Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T12:57:17.710Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T12:57:47.800Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T12:58:17.887Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T12:58:47.987Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T12:59:18.072Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T12:59:48.165Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T13:00:18.246Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T13:00:48.333Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T13:01:18.420Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T13:01:48.486Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T13:02:18.563Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T13:02:48.628Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T13:03:18.703Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T13:03:48.773Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T13:04:18.866Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T13:04:48.948Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T13:05:19.041Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T13:05:49.127Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T13:06:19.216Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T13:06:49.312Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T13:07:19.400Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T13:07:49.481Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T13:08:19.574Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T13:08:49.667Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T13:09:19.756Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T13:09:49.844Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T13:10:19.930Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T13:10:50.027Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T13:11:20.105Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T13:11:50.199Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T13:12:20.292Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T13:12:50.383Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T13:13:20.470Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T13:13:50.568Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T13:14:20.662Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T13:14:50.745Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T13:15:20.826Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T13:15:50.915Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T13:16:21.004Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T13:16:51.093Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T13:17:21.187Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T13:17:51.273Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T13:18:21.360Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T13:18:51.442Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T13:19:21.528Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T13:19:51.623Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T13:20:21.724Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T13:20:51.810Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T13:21:21.895Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T13:21:51.974Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T13:22:22.062Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T13:22:52.152Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T13:23:22.239Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T13:23:52.317Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T13:24:22.402Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T13:24:52.475Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T13:25:22.559Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T13:25:52.637Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T13:26:22.723Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T13:26:52.811Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T13:27:22.902Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T13:27:52.993Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T13:28:23.092Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T13:28:53.182Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T13:29:23.271Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T13:29:53.363Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T13:30:23.459Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T13:30:53.559Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T13:31:23.640Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T13:31:53.733Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T13:32:23.832Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T13:32:53.922Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T13:33:24.016Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T13:33:54.111Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T13:34:24.201Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T13:34:54.291Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T13:35:24.369Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T13:35:54.428Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T13:36:24.504Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T13:36:54.585Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T13:37:24.685Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T13:37:54.781Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T13:38:24.894Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T13:38:54.977Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T13:39:25.067Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T13:39:55.146Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T13:40:25.234Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T13:40:55.335Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T13:41:25.427Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T13:41:55.516Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T13:42:25.588Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T13:42:55.659Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T13:43:25.750Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T13:43:55.829Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T13:44:25.926Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T13:44:56.017Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T13:45:26.108Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T13:45:56.205Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T13:46:26.310Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T13:46:56.389Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T13:47:26.498Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T13:47:56.581Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T13:48:26.671Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T13:48:56.763Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T13:49:26.831Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T13:49:56.915Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T13:50:26.995Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T13:50:57.089Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T13:51:27.179Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T13:51:57.267Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T13:52:27.355Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T13:52:57.441Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T13:53:27.532Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T13:53:57.621Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T13:54:27.717Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T13:54:57.794Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T13:55:27.840Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T13:55:57.894Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T13:56:27.959Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T13:56:58.024Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T13:57:28.097Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T13:57:58.191Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T13:58:28.275Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T13:58:58.357Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T13:59:28.457Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T13:59:58.543Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T14:00:28.637Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T14:00:58.742Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T14:01:28.830Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T14:01:58.916Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T14:02:29.010Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T14:02:59.108Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T14:03:29.202Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T14:03:59.282Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T14:04:29.374Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T14:04:59.455Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T14:05:29.567Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T14:05:59.647Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T14:06:29.735Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T14:06:59.799Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T14:07:29.886Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T14:07:59.965Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T14:08:30.045Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T14:09:00.141Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T14:09:30.214Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T14:10:00.292Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T14:10:30.384Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T14:11:00.484Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T14:11:30.573Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T14:12:00.656Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T14:12:30.710Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T14:13:00.763Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T14:13:30.815Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T14:14:00.869Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T14:14:30.922Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T14:15:00.976Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T14:15:31.025Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T14:16:01.073Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T14:16:31.128Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T14:17:01.180Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T14:17:31.234Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T14:18:01.287Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T14:18:31.338Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T14:19:01.404Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T14:19:31.457Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T14:20:01.507Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T14:20:31.562Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T14:21:01.612Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T14:21:31.663Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T14:22:01.712Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T14:22:31.769Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T14:23:01.822Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T14:23:31.877Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T14:24:01.932Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T14:24:31.982Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T14:25:02.042Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T14:25:32.103Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T14:26:02.159Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T14:26:32.209Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T14:27:02.265Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T14:27:32.316Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T14:28:02.366Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T14:28:32.424Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T14:29:02.478Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T14:29:32.534Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T14:30:02.591Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T14:30:32.644Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T14:31:02.695Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T14:31:32.745Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T14:32:02.793Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T14:32:32.845Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T14:33:02.895Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T14:33:32.946Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T14:34:02.998Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T14:34:33.055Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T14:35:03.101Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T14:35:33.156Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T14:36:03.206Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T14:36:33.257Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T14:37:03.306Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T14:37:33.362Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T14:38:03.412Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T14:38:33.462Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T14:39:03.516Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T14:39:33.568Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T14:40:03.618Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T14:40:33.675Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T14:41:03.732Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T14:41:33.787Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T14:42:03.850Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T14:42:33.898Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T14:43:03.945Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T14:43:33.997Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T14:44:04.048Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T14:44:34.103Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T14:45:04.154Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T14:45:34.212Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T14:46:04.265Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T14:46:34.312Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T14:47:04.364Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T14:47:34.413Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T14:48:04.467Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T14:48:34.518Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T14:49:04.569Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T14:49:34.622Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T14:50:04.680Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T14:50:34.731Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T14:51:04.777Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T14:51:34.834Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T14:52:04.897Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T14:52:34.957Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T14:53:05.010Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T14:53:35.061Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T14:54:05.112Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T14:54:35.160Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T14:55:05.211Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T14:55:35.259Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T14:56:05.319Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T14:56:35.383Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T14:57:05.436Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T14:57:35.484Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T14:58:05.535Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T14:58:35.588Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T14:59:05.655Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T14:59:35.709Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T15:00:05.782Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T15:00:35.830Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T15:01:05.880Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T15:01:35.934Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T15:02:05.984Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T15:02:36.034Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T15:03:06.086Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T15:03:36.141Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T15:04:06.194Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T15:04:36.250Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T15:05:06.301Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T15:05:36.352Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T15:06:06.404Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T15:06:36.458Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T15:07:06.497Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T15:07:36.533Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T15:08:06.574Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T15:08:36.618Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T15:09:06.667Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T15:09:36.741Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T15:10:06.797Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T15:10:36.852Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T15:11:06.916Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T15:11:36.980Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T15:12:07.030Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T15:12:37.076Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T15:13:07.126Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T15:13:37.176Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T15:14:07.240Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T15:14:37.292Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T15:15:07.345Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T15:15:37.396Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T15:16:07.453Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T15:16:37.512Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T15:17:07.567Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T15:17:37.620Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T15:18:07.670Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T15:18:37.727Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T15:19:07.775Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T15:19:37.824Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T15:20:07.896Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T15:20:37.953Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T15:21:08.007Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T15:21:38.061Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T15:22:08.111Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T15:22:38.161Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T15:23:08.215Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T15:23:38.267Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T15:24:08.319Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T15:24:38.374Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T15:25:08.434Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T15:25:38.487Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T15:26:08.546Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T15:26:38.604Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T15:27:08.654Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T15:27:38.707Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T15:28:08.758Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T15:28:38.806Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T15:29:08.858Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T15:29:38.909Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T15:30:08.969Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T15:30:39.019Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T15:31:09.069Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T15:31:39.114Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T15:32:09.167Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T15:32:39.235Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T15:33:09.299Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T15:33:39.360Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T15:34:09.436Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T15:34:39.491Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T15:35:09.543Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T15:35:39.593Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T15:36:09.644Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T15:36:39.695Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T15:37:09.747Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T15:37:39.799Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T15:38:09.849Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T15:38:39.899Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T15:39:09.949Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T15:39:40.002Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T15:40:10.067Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T15:40:40.127Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T15:41:10.184Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T15:41:40.232Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T15:42:10.274Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T15:42:40.313Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T15:43:10.354Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T15:43:40.398Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T15:44:10.439Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T15:44:40.487Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T15:45:10.534Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T15:45:40.588Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T15:46:10.642Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T15:46:40.693Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T15:47:10.756Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T15:47:40.806Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T15:48:10.857Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T15:48:40.911Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T15:49:10.966Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T15:49:41.021Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T15:50:11.072Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T15:50:41.120Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T15:51:11.177Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T15:51:41.238Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T15:52:11.293Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T15:52:41.351Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T15:53:11.405Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T15:53:41.460Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T15:54:11.509Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T15:54:41.567Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T15:55:11.624Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T15:55:41.676Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T15:56:11.727Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T15:56:41.778Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T15:57:11.827Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T15:57:41.875Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T15:58:11.928Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T15:58:42.006Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T15:59:12.077Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T15:59:42.127Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T16:00:12.176Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T16:00:42.236Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T16:01:12.298Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T16:01:42.344Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T16:02:12.392Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T16:02:42.450Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T16:03:12.500Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T16:03:42.536Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T16:04:12.581Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T16:04:42.617Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T16:05:12.675Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T16:05:42.726Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T16:06:12.778Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T16:06:42.840Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T16:07:12.886Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T16:07:42.939Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T16:08:12.992Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T16:08:43.043Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T16:09:13.094Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T16:09:43.149Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T16:10:13.207Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T16:10:43.260Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T16:11:13.305Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T16:11:43.357Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T16:12:13.406Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T16:12:43.466Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T16:13:13.519Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T16:13:43.580Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T16:14:13.630Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T16:14:43.681Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T16:15:13.732Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T16:15:43.784Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T16:16:13.833Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T16:16:43.885Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T16:17:13.935Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T16:17:43.992Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T16:18:14.054Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T16:18:44.102Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T16:19:14.153Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T16:19:44.202Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T16:20:14.253Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T16:20:44.303Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T16:21:14.353Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T16:21:44.404Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T16:22:14.454Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T16:22:44.505Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T16:23:14.563Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T16:23:44.612Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T16:24:14.662Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T16:24:44.717Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T16:25:14.768Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T16:25:44.818Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T16:26:14.868Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T16:26:44.918Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T16:27:14.967Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T16:27:45.017Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T16:28:15.066Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T16:28:45.129Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T16:29:15.179Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T16:29:45.232Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T16:30:15.280Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T16:30:45.330Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T16:31:15.386Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T16:31:45.445Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T16:32:15.495Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T16:32:45.543Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T16:33:15.596Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T16:33:45.655Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T16:34:15.711Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T16:34:45.762Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T16:35:15.814Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T16:35:45.866Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T16:36:15.918Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T16:36:45.969Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T16:37:16.022Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T16:37:46.072Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T16:38:16.122Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T16:38:46.174Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T16:39:16.232Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T16:39:46.283Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T16:40:16.335Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T16:40:46.384Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T16:41:16.435Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T16:41:46.485Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T16:42:16.542Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T16:42:46.593Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T16:43:16.647Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T16:43:46.697Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T16:44:16.751Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T16:44:46.803Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T16:45:16.861Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T16:45:46.915Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T16:46:16.988Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T16:46:47.045Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T16:47:17.098Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T16:47:47.151Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T16:48:17.216Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T16:48:47.267Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T16:49:17.316Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T16:49:47.373Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T16:50:17.425Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T16:50:47.478Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T16:51:17.526Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T16:51:47.588Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T16:52:17.648Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T16:52:47.697Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T16:53:17.756Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T16:53:47.810Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T16:54:17.863Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T16:54:47.915Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T16:55:17.965Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T16:55:48.013Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T16:56:18.073Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T16:56:48.125Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T16:57:18.187Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T16:57:48.240Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T16:58:18.290Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T16:58:48.343Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T16:59:18.399Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T16:59:48.471Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T17:00:18.527Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T17:00:48.591Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T17:01:18.646Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T17:01:48.700Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T17:02:18.746Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T17:02:48.794Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T17:03:18.870Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T17:03:48.934Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T17:04:18.986Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T17:04:49.055Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T17:05:19.110Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T17:05:49.167Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T17:06:19.221Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T17:06:49.278Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T17:07:19.322Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T17:07:49.363Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T17:08:19.401Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T17:08:49.451Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T17:09:19.498Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T17:09:49.547Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T17:10:19.595Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T17:10:49.652Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T17:11:19.726Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T17:11:49.789Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T17:12:19.846Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T17:12:49.915Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T17:13:19.966Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T17:13:50.023Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T17:14:20.072Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T17:14:50.137Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T17:15:20.188Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T17:15:50.264Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T17:16:20.325Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T17:16:50.375Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T17:17:20.437Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T17:17:50.490Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T17:18:20.544Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T17:18:50.591Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T17:19:20.650Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T17:19:50.723Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T17:20:20.780Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T17:20:50.831Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T17:21:20.884Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T17:21:50.949Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T17:22:20.998Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T17:22:51.046Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T17:23:21.102Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T17:23:51.158Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T17:24:21.217Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T17:24:51.269Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T17:25:21.317Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T17:25:51.380Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T17:26:21.432Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T17:26:51.481Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T17:27:21.541Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T17:27:51.612Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T17:28:21.666Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T17:28:51.720Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T17:29:21.789Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T17:29:51.860Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T17:30:21.909Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T17:30:51.957Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T17:31:22.010Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T17:31:52.068Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T17:32:22.122Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T17:32:52.173Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T17:33:22.219Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T17:33:52.271Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T17:34:22.321Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T17:34:52.386Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T17:35:22.439Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T17:35:52.491Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T17:36:22.581Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T17:36:52.631Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T17:37:22.681Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T17:37:52.730Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T17:38:22.784Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T17:38:52.847Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T17:39:22.895Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T17:39:52.931Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T17:40:22.971Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T17:40:53.009Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T17:41:23.051Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T17:41:53.121Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T17:42:23.196Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T17:42:53.257Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T17:43:23.326Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T17:43:53.394Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T17:44:23.458Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T17:44:53.522Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T17:45:23.597Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T17:45:53.676Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T17:46:23.763Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T17:46:53.838Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T17:47:23.928Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T17:47:54.014Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T17:48:24.114Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T17:48:54.182Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T17:49:24.254Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T17:49:54.309Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T17:50:24.389Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T17:50:54.450Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T17:51:24.531Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T17:51:54.619Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T17:52:24.712Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T17:52:54.812Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T17:53:24.885Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T17:53:54.967Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T17:54:25.041Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T17:54:55.118Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T17:55:25.195Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T17:55:55.259Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T17:56:25.328Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T17:56:55.407Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T17:57:25.500Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T17:57:55.593Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T17:58:25.681Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T17:58:55.771Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T17:59:25.852Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T17:59:55.944Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T18:00:26.032Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T18:00:56.123Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T18:01:26.211Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T18:01:56.307Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T18:02:26.386Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T18:02:56.468Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T18:03:26.569Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T18:03:56.656Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T18:04:26.747Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T18:04:56.841Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T18:05:26.924Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T18:05:57.018Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T18:06:27.102Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T18:06:57.192Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T18:07:27.281Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T18:07:57.366Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T18:08:27.467Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T18:08:57.559Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T18:09:27.652Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T18:09:57.748Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T18:10:27.845Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T18:10:57.921Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T18:11:28.016Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T18:11:58.104Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T18:12:28.207Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T18:12:58.294Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T18:13:28.374Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T18:13:58.461Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T18:14:28.567Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T18:14:58.654Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T18:15:28.737Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T18:15:58.817Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T18:16:28.908Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T18:16:59.002Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T18:17:29.084Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T18:17:59.166Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T18:18:29.249Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T18:18:59.337Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T18:19:29.442Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T18:19:59.534Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T18:20:29.629Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T18:20:59.720Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T18:21:29.810Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T18:21:59.906Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T18:22:30.000Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T18:23:00.088Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T18:23:30.177Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T18:24:00.272Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T18:24:30.368Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T18:25:00.464Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T18:25:30.561Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T18:26:00.651Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T18:26:30.748Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T18:27:00.836Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T18:27:30.922Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T18:28:01.006Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T18:28:31.065Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T18:29:01.127Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T18:29:31.206Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T18:30:01.291Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T18:30:31.390Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T18:31:01.474Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T18:31:31.569Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T18:32:01.661Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T18:32:31.761Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T18:33:01.830Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T18:33:31.920Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T18:34:02.017Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T18:34:32.118Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T18:35:02.201Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T18:35:32.285Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T18:36:02.384Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T18:36:32.474Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T18:37:02.566Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T18:37:32.655Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T18:38:02.748Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T18:38:32.850Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T18:39:02.945Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T18:39:33.034Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T18:40:03.132Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T18:40:33.220Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T18:41:03.296Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T18:41:33.376Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T18:42:03.463Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T18:42:33.565Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T18:43:03.656Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T18:43:33.744Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T18:44:03.826Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T18:44:33.920Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T18:45:04.012Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T18:45:34.108Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T18:46:04.202Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T18:46:34.288Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T18:47:04.385Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T18:47:34.449Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T18:48:04.501Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T18:48:34.569Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T18:49:04.639Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T18:49:34.713Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T18:50:04.810Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T18:50:34.908Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T18:51:05.001Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T18:51:35.081Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T18:52:05.171Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T18:52:35.255Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T18:53:05.342Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T18:53:35.423Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T18:54:05.519Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T18:54:35.618Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T18:55:05.709Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T18:55:35.782Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T18:56:05.862Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T18:56:35.959Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T18:57:06.069Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T18:57:36.154Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T18:58:06.242Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T18:58:36.330Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T18:59:06.381Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T18:59:36.467Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T19:00:06.542Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T19:00:36.622Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T19:01:06.708Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T19:01:36.787Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T19:02:06.885Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T19:02:36.962Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T19:03:07.047Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T19:03:37.133Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T19:04:07.222Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T19:04:37.308Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T19:05:07.398Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T19:05:37.483Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T19:06:07.564Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T19:06:37.646Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T19:07:07.734Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T19:07:37.822Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T19:08:07.912Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T19:08:38.005Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T19:09:08.091Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T19:09:38.173Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T19:10:08.251Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T19:10:38.332Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T19:11:08.419Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T19:11:38.511Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T19:12:08.593Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T19:12:38.678Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T19:13:08.761Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T19:13:38.857Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T19:14:08.936Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T19:14:39.029Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T19:15:09.117Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T19:15:39.215Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T19:16:09.300Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T19:16:39.392Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T19:17:09.478Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T19:17:39.560Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T19:18:09.648Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T19:18:39.746Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T19:19:09.841Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T19:19:39.933Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T19:20:10.012Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T19:20:40.095Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T19:21:10.188Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T19:21:40.289Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T19:22:10.370Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T19:22:40.450Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T19:23:10.538Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T19:23:40.629Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T19:24:10.701Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T19:24:40.790Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T19:25:10.872Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T19:25:40.962Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T19:26:11.051Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T19:26:41.143Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T19:27:11.238Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T19:27:41.341Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T19:28:11.424Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T19:28:41.515Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T19:29:11.607Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T19:29:41.696Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T19:30:11.784Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T19:30:41.880Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T19:31:11.968Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T19:31:42.059Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T19:32:12.149Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T19:32:42.233Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T19:33:12.319Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T19:33:42.410Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T19:34:12.506Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T19:34:42.587Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T19:35:12.644Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T19:35:42.698Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T19:36:12.754Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T19:36:42.823Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T19:37:12.923Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T19:37:43.029Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T19:38:13.123Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T19:38:43.208Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T19:39:13.303Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T19:39:43.355Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T19:40:13.439Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T19:40:43.505Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T19:41:13.592Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T19:41:43.679Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T19:42:13.759Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T19:42:43.835Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T19:43:13.914Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T19:43:44.019Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T19:44:14.124Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T19:44:44.210Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T19:45:14.292Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T19:45:44.379Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T19:46:14.469Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T19:46:44.568Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T19:47:14.648Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T19:47:44.734Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T19:48:14.827Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T19:48:44.917Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T19:49:15.002Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T19:49:45.078Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T19:50:15.183Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T19:50:45.264Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T19:51:15.372Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T19:51:45.477Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T19:52:15.565Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T19:52:45.667Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T19:53:15.755Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T19:53:45.851Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T19:54:15.935Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T19:54:46.010Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T19:55:16.063Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T19:55:46.123Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T19:56:16.188Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T19:56:46.267Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T19:57:16.359Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T19:57:46.457Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T19:58:16.544Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T19:58:46.631Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T19:59:16.721Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T19:59:46.803Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T20:00:16.888Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T20:00:46.978Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T20:01:17.071Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T20:01:47.160Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T20:02:17.259Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T20:02:47.329Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T20:03:17.411Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T20:03:47.506Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T20:04:17.602Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T20:04:47.700Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T20:05:17.792Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T20:05:47.880Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T20:06:17.960Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T20:06:48.046Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T20:07:18.122Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T20:07:48.193Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T20:08:18.273Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T20:08:48.331Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T20:09:18.416Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T20:09:48.512Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T20:10:18.598Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T20:10:48.689Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T20:11:18.787Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T20:11:48.875Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T20:12:18.976Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T20:12:49.060Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T20:13:19.147Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T20:13:49.227Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T20:14:19.316Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T20:14:49.400Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T20:15:19.488Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T20:15:49.571Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T20:16:19.672Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T20:16:49.762Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T20:17:19.851Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T20:17:49.942Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T20:18:20.043Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T20:18:50.132Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T20:19:20.218Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T20:19:50.303Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T20:20:20.402Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T20:20:50.490Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T20:21:20.583Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T20:21:50.659Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T20:22:20.763Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T20:22:50.852Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T20:23:20.933Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T20:23:51.013Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T20:24:21.103Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T20:24:51.196Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T20:25:21.279Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T20:25:51.360Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T20:26:21.445Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T20:26:51.538Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T20:27:21.631Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T20:27:51.719Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T20:28:21.806Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T20:28:51.887Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T20:29:21.964Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T20:29:52.046Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T20:30:22.124Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T20:30:52.213Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T20:31:22.308Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T20:31:52.392Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T20:32:22.483Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T20:32:52.572Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T20:33:22.657Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T20:33:52.743Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T20:34:22.828Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T20:34:52.907Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T20:35:22.987Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T20:35:53.073Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T20:36:23.164Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T20:36:53.266Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T20:37:23.341Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T20:37:53.421Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T20:38:23.511Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T20:38:53.601Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T20:39:23.681Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T20:39:53.769Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T20:40:23.864Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T20:40:53.949Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T20:41:24.041Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T20:41:54.106Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T20:42:24.155Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T20:42:54.240Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T20:43:24.316Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T20:43:54.400Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T20:44:24.492Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T20:44:54.577Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T20:45:24.670Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T20:45:54.758Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T20:46:24.848Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T20:46:54.945Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T20:47:25.035Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T20:47:55.127Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T20:48:25.228Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T20:48:55.301Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T20:49:25.363Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T20:49:55.446Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T20:50:25.534Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T20:50:55.619Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T20:51:25.702Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T20:51:55.803Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T20:52:25.903Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T20:52:55.987Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T20:53:26.076Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T20:53:56.172Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T20:54:26.266Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T20:54:56.362Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T20:55:26.456Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T20:55:56.560Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T20:56:26.641Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T20:56:56.743Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T20:57:26.831Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T20:57:56.930Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T20:58:27.033Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T20:58:57.126Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T20:59:27.212Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T20:59:57.304Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T21:00:27.392Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T21:00:57.456Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T21:01:27.514Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T21:01:57.569Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T21:02:27.644Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T21:02:57.734Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T21:03:27.840Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T21:03:57.934Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T21:04:28.033Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T21:04:58.130Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T21:05:28.219Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T21:05:58.311Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T21:06:28.392Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T21:06:58.489Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T21:07:28.579Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T21:07:58.672Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T21:08:28.756Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T21:08:58.839Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T21:09:28.923Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T21:09:59.013Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T21:10:29.096Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T21:10:59.191Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T21:11:29.284Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T21:11:59.375Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T21:12:29.461Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T21:12:59.534Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T21:13:29.625Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T21:13:59.697Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T21:14:29.775Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T21:14:59.853Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T21:15:29.945Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T21:16:00.042Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T21:16:30.124Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T21:17:00.212Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T21:17:30.299Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T21:18:00.393Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T21:18:30.485Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T21:19:00.573Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T21:19:30.666Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T21:20:00.746Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T21:20:30.822Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T21:21:00.904Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T21:21:31.015Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T21:22:01.100Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T21:22:31.188Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T21:23:01.280Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T21:23:31.361Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T21:24:01.445Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T21:24:31.527Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T21:25:01.610Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T21:25:31.702Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T21:26:01.799Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T21:26:31.888Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T21:27:01.974Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T21:27:32.064Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T21:28:02.145Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T21:28:32.227Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T21:29:02.318Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T21:29:32.414Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T21:30:02.510Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T21:30:32.604Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T21:31:02.697Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T21:31:32.784Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T21:32:02.880Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T21:32:32.974Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T21:33:03.059Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T21:33:33.159Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T21:34:03.247Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T21:34:33.343Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T21:35:03.432Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T21:35:33.519Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T21:36:03.609Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T21:36:33.716Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T21:37:03.800Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T21:37:33.906Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T21:38:03.991Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T21:38:34.084Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T21:39:04.174Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T21:39:34.267Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T21:40:04.359Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T21:40:34.461Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T21:41:04.557Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T21:41:34.640Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T21:42:04.756Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T21:42:34.873Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T21:43:04.982Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T21:43:35.146Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T21:44:05.261Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T21:44:35.384Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T21:45:05.471Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T21:45:35.527Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T21:46:05.606Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T21:46:35.692Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T21:47:05.770Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T21:47:35.864Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T21:48:05.962Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T21:48:36.052Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T21:49:06.137Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T21:49:36.221Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T21:50:06.315Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T21:50:36.416Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T21:51:06.506Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T21:51:36.598Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T21:52:06.671Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T21:52:36.777Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T21:53:06.852Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T21:53:36.934Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T21:54:07.038Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T21:54:37.128Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T21:55:07.222Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T21:55:37.312Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T21:56:07.400Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T21:56:37.496Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T21:57:07.599Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T21:57:37.696Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T21:58:07.761Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T21:58:37.855Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T21:59:07.943Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T21:59:38.041Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T22:00:08.143Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T22:00:38.241Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T22:01:08.340Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T22:01:38.427Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T22:02:08.516Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T22:02:38.609Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T22:03:08.688Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T22:03:38.742Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T22:04:08.808Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T22:04:38.867Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T22:05:08.946Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T22:05:39.039Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T22:06:09.122Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T22:06:39.215Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T22:07:09.304Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T22:07:39.395Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T22:08:09.491Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T22:08:39.572Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T22:09:09.653Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T22:09:39.740Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T22:10:09.835Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T22:10:39.918Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T22:11:10.014Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T22:11:40.095Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T22:12:10.185Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T22:12:40.282Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T22:13:10.372Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T22:13:40.464Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T22:14:10.550Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T22:14:40.620Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T22:15:10.717Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T22:15:40.805Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T22:16:10.879Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T22:16:40.970Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T22:17:11.059Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T22:17:41.137Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T22:18:11.223Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T22:18:41.314Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T22:19:11.401Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T22:19:41.490Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T22:20:11.576Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T22:20:41.657Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T22:21:11.740Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T22:21:41.852Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T22:22:11.934Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T22:22:42.019Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T22:23:12.102Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T22:23:42.200Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T22:24:12.302Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T22:24:42.404Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T22:25:12.485Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T22:25:42.583Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T22:26:12.669Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T22:26:42.758Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T22:27:12.852Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T22:27:27.725Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T22:27:30.716Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 200, - "duration": "95ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T22:27:31.373Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-27", - "requester": 1, - "isAdmin": false -} -[2026-01-27T22:27:31.384Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 1 -} -[2026-01-27T22:27:31.384Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-27&view_all=true", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T22:27:31.391Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "31ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T22:27:31.419Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users/1/page-access", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T22:27:32.333Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T22:27:37.329Z] [INFO] ℹ️ 사용자 목록 조회 요청 - Context: { - "requestedBy": "admin" -} -[2026-01-27T22:27:37.334Z] [INFO] ℹ️ 사용자 목록 조회 성공 - Context: { - "count": 2 -} -[2026-01-27T22:27:37.336Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T22:27:38.324Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T22:27:42.954Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T22:28:13.040Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T22:28:43.137Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T22:28:53.121Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2026-01-27T22:28:53.122Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-01-27T22:28:53.561Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-27T22:28:53.627Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-01-27T22:28:53.693Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2026-01-27T22:28:53.699Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-01-27T22:28:58.481Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T22:29:28.576Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T22:29:58.672Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T22:30:04.650Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-27", - "requester": 1, - "isAdmin": false -} -[2026-01-27T22:30:04.703Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "62ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T22:30:04.706Z] [INFO] ℹ️ MariaDB 연결 성공 - Context: { - "connection": "db:3306", - "database": "hyungi", - "connectionLimit": 10 -} -[2026-01-27T22:30:04.710Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 1 -} -[2026-01-27T22:30:04.711Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-27&view_all=true", - "statusCode": 200, - "duration": "62ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T22:30:04.722Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users/1/page-access", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T22:30:05.631Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T22:30:22.449Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2026-01-27T22:30:22.452Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-01-27T22:30:55.392Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-27T22:30:55.477Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-01-27T22:30:55.560Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2026-01-27T22:30:55.565Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-01-27T22:31:00.237Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T22:31:30.316Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T22:32:00.401Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T22:32:23.523Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-01-27T22:32:28.739Z] [INFO] ℹ️ MariaDB 연결 성공 - Context: { - "connection": "db:3306", - "database": "hyungi", - "connectionLimit": 10 -} -[2026-01-27T22:32:28.827Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 200, - "duration": "113ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-01-27T22:32:29.228Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-27", - "requester": 1, - "isAdmin": false -} -[2026-01-27T22:32:29.239Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 1 -} -[2026-01-27T22:32:29.241Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-27&view_all=true", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-01-27T22:32:29.246Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "22ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-01-27T22:32:29.281Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users/1/page-access", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-01-27T22:32:30.213Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-01-27T22:32:30.490Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T22:33:00.590Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T22:33:03.638Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-01-27T22:33:04.618Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-01-27T22:33:07.426Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "26ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-01-27T22:33:08.397Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-01-27T22:33:17.119Z] [WARN] ⚠️ 인증 실패: Bearer 토큰 누락 - Context: { - "path": "/", - "method": "GET", - "ip": "::ffff:192.168.65.1" -} -[2026-01-27T22:33:17.123Z] [WARN] ⚠️ Bearer 토큰이 필요합니다 - Context: { - "code": "AUTHENTICATION_ERROR", - "url": "/api/users/1/page-access", - "method": "GET", - "user": "anonymous" -} -[2026-01-27T22:33:17.126Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/users/1/page-access", - "statusCode": 401, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-01-27T22:33:30.719Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T22:34:00.811Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T22:34:16.079Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "25ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-01-27T22:34:16.139Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces", - "statusCode": 200, - "duration": "77ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-01-27T22:34:16.225Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/4/map-region", - "method": "GET" -} -[2026-01-27T22:34:16.228Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/4/map-region", - "statusCode": 404, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-01-27T22:34:16.230Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/2/map-region", - "method": "GET" -} -[2026-01-27T22:34:16.230Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/2/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-01-27T22:34:16.233Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/10/map-region", - "method": "GET" -} -[2026-01-27T22:34:16.235Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/10/map-region", - "statusCode": 404, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-01-27T22:34:16.237Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/9/map-region", - "method": "GET" -} -[2026-01-27T22:34:16.238Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/9/map-region", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-01-27T22:34:16.241Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/7/map-region", - "method": "GET" -} -[2026-01-27T22:34:16.242Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/7/map-region", - "statusCode": 404, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-01-27T22:34:16.245Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/1/map-region", - "method": "GET" -} -[2026-01-27T22:34:16.246Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/1/map-region", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-01-27T22:34:16.248Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/12/map-region", - "method": "GET" -} -[2026-01-27T22:34:16.250Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/12/map-region", - "statusCode": 404, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-01-27T22:34:16.253Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/8/map-region", - "method": "GET" -} -[2026-01-27T22:34:16.254Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/8/map-region", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-01-27T22:34:16.257Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/11/map-region", - "method": "GET" -} -[2026-01-27T22:34:16.260Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/11/map-region", - "statusCode": 404, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-01-27T22:34:16.262Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/3/map-region", - "method": "GET" -} -[2026-01-27T22:34:16.263Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/3/map-region", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-01-27T22:34:16.266Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/6/map-region", - "method": "GET" -} -[2026-01-27T22:34:16.268Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/6/map-region", - "statusCode": 404, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-01-27T22:34:16.270Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/5/map-region", - "method": "GET" -} -[2026-01-27T22:34:16.271Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/5/map-region", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-01-27T22:34:17.050Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-01-27T22:34:17.267Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/2/map-region", - "method": "GET" -} -[2026-01-27T22:34:17.270Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/2/map-region", - "statusCode": 404, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-01-27T22:34:17.275Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/10/map-region", - "method": "GET" -} -[2026-01-27T22:34:17.279Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/10/map-region", - "statusCode": 404, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-01-27T22:34:17.281Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/9/map-region", - "method": "GET" -} -[2026-01-27T22:34:17.282Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/9/map-region", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-01-27T22:34:17.284Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/1/map-region", - "method": "GET" -} -[2026-01-27T22:34:17.285Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/1/map-region", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-01-27T22:34:17.287Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/11/map-region", - "method": "GET" -} -[2026-01-27T22:34:17.288Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/11/map-region", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-01-27T22:34:17.290Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/8/map-region", - "method": "GET" -} -[2026-01-27T22:34:17.291Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/8/map-region", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-01-27T22:34:17.296Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/6/map-region", - "method": "GET" -} -[2026-01-27T22:34:17.297Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/6/map-region", - "statusCode": 404, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-01-27T22:34:17.300Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/5/map-region", - "method": "GET" -} -[2026-01-27T22:34:17.301Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/5/map-region", - "statusCode": 404, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-01-27T22:34:17.303Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/7/map-region", - "method": "GET" -} -[2026-01-27T22:34:17.304Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/7/map-region", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-01-27T22:34:17.305Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/4/map-region", - "method": "GET" -} -[2026-01-27T22:34:17.306Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/4/map-region", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-01-27T22:34:17.308Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/3/map-region", - "method": "GET" -} -[2026-01-27T22:34:17.309Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/3/map-region", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-01-27T22:34:17.311Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/12/map-region", - "method": "GET" -} -[2026-01-27T22:34:17.313Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/12/map-region", - "statusCode": 404, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-01-27T22:34:17.315Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/uploads/workplace-layout-1769485965188-143426330.jpg", - "method": "GET" -} -[2026-01-27T22:34:23.189Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/uploads/workplace-layout-1769485965188-143426330.jpg", - "method": "GET" -} -[2026-01-27T22:34:23.203Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-01-27T22:34:30.926Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T22:35:01.026Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T22:35:31.087Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T22:36:01.156Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T22:36:31.233Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T22:37:01.296Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T22:37:31.374Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T22:38:01.479Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T22:38:31.560Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T22:39:01.658Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T22:39:18.398Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/uploads/workplace-layout-1769485965188-143426330.jpg", - "method": "GET" -} -[2026-01-27T22:39:22.401Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-27", - "requester": 1, - "isAdmin": false -} -[2026-01-27T22:39:22.444Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 1 -} -[2026-01-27T22:39:22.447Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-27&view_all=true", - "statusCode": 304, - "duration": "52ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-01-27T22:39:22.461Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "49ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-01-27T22:39:22.472Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/users/1/page-access", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-01-27T22:39:23.379Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-01-27T22:39:31.182Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-27", - "requester": 1, - "isAdmin": false -} -[2026-01-27T22:39:31.192Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 1 -} -[2026-01-27T22:39:31.194Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-27&view_all=true", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T22:39:31.196Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "17ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T22:39:31.771Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T22:39:32.168Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T22:39:34.661Z] [INFO] ℹ️ 사용자 목록 조회 요청 - Context: { - "requestedBy": "admin" -} -[2026-01-27T22:39:34.668Z] [INFO] ℹ️ 사용자 목록 조회 성공 - Context: { - "count": 2 -} -[2026-01-27T22:39:34.670Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T22:39:35.661Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T22:40:01.243Z] [WARN] ⚠️ 아이디 또는 비밀번호가 올바르지 않습니다. - Context: { - "code": "AUTHENTICATION_ERROR", - "url": "/api/auth/login", - "method": "POST", - "user": "anonymous" -} -[2026-01-27T22:40:01.244Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 401, - "duration": "78ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-01-27T22:40:01.877Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T22:40:06.879Z] [WARN] ⚠️ 아이디 또는 비밀번호가 올바르지 않습니다. - Context: { - "code": "AUTHENTICATION_ERROR", - "url": "/api/auth/login", - "method": "POST", - "user": "anonymous" -} -[2026-01-27T22:40:06.881Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 401, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-01-27T22:40:32.001Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T22:41:02.124Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T22:41:32.215Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T22:42:02.308Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T22:42:32.410Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T22:43:02.493Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T22:43:32.579Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T22:44:02.659Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T22:44:32.795Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T22:44:33.983Z] [INFO] ℹ️ 사용자 목록 조회 요청 - Context: { - "requestedBy": "admin" -} -[2026-01-27T22:44:34.004Z] [INFO] ℹ️ 사용자 목록 조회 성공 - Context: { - "count": 2 -} -[2026-01-27T22:44:34.006Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users", - "statusCode": 200, - "duration": "28ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T22:44:34.972Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T22:44:37.754Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-27", - "requester": 1, - "isAdmin": false -} -[2026-01-27T22:44:37.759Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 1 -} -[2026-01-27T22:44:37.761Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-27&view_all=true", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T22:44:37.772Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "28ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T22:44:38.728Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T22:44:42.637Z] [INFO] ℹ️ 사용자 목록 조회 요청 - Context: { - "requestedBy": "admin" -} -[2026-01-27T22:44:42.640Z] [INFO] ℹ️ 사용자 목록 조회 성공 - Context: { - "count": 2 -} -[2026-01-27T22:44:42.641Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/users", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T22:44:43.639Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T22:45:02.876Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T22:45:32.966Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T22:46:03.064Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T22:46:33.149Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T22:47:03.236Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T22:47:33.325Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T22:48:03.453Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "5ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T22:48:33.549Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T22:49:03.639Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T22:49:33.734Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T22:50:03.812Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T22:50:33.894Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T22:51:03.979Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T22:51:34.073Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T22:52:04.156Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T22:52:34.245Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T22:53:01.086Z] [INFO] ℹ️ 사용자 목록 조회 요청 - Context: { - "requestedBy": "admin" -} -[2026-01-27T22:53:01.091Z] [INFO] ℹ️ 사용자 목록 조회 성공 - Context: { - "count": 2 -} -[2026-01-27T22:53:01.092Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T22:53:02.083Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T22:53:04.338Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T22:53:06.227Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/pages", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T22:53:06.248Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users/27/page-access", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T22:53:11.297Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/users/27/page-access", - "method": "PUT" -} -[2026-01-27T22:53:11.299Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "PUT", - "url": "/api/users/27/page-access", - "statusCode": 404, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T22:53:34.432Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T22:54:03.042Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2026-01-27T22:54:03.045Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-01-27T22:54:03.473Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-27T22:54:03.539Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-01-27T22:54:03.609Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2026-01-27T22:54:03.612Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-01-27T22:54:08.386Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T22:54:38.473Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T22:54:42.352Z] [INFO] ℹ️ 사용자 목록 조회 요청 - Context: { - "requestedBy": "admin" -} -[2026-01-27T22:54:42.367Z] [INFO] ℹ️ MariaDB 연결 성공 - Context: { - "connection": "db:3306", - "database": "hyungi", - "connectionLimit": 10 -} -[2026-01-27T22:54:42.371Z] [INFO] ℹ️ 사용자 목록 조회 성공 - Context: { - "count": 2 -} -[2026-01-27T22:54:42.372Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users", - "statusCode": 200, - "duration": "28ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T22:54:43.255Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T22:54:43.968Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/pages", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T22:54:43.975Z] [INFO] ℹ️ 사용자 페이지 권한 조회 요청 - Context: { - "userId": "27" -} -[2026-01-27T22:54:43.976Z] [ERROR] ❌ 사용자 페이지 권한 조회 실패 - Context: { - "userId": "27", - "error": "Unknown column 'p.is_active' in 'where clause'" -} -[2026-01-27T22:54:43.977Z] [ERROR] ❌ 페이지 권한을 조회하는데 실패했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 페이지 권한을 조회하는데 실패했습니다\n at /usr/src/app/controllers/userController.js:527:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "url": "/api/users/27/page-access", - "method": "GET", - "user": "admin" -} -[2026-01-27T22:54:43.977Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/users/27/page-access", - "statusCode": 500, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T22:54:46.632Z] [INFO] ℹ️ 사용자 페이지 권한 업데이트 요청 - Context: { - "userId": "27", - "pageCount": 11, - "updatedBy": "admin" -} -[2026-01-27T22:54:46.641Z] [INFO] ℹ️ 사용자 페이지 권한 업데이트 성공 - Context: { - "userId": "27", - "pageCount": 11, - "updatedBy": "admin" -} -[2026-01-27T22:54:46.643Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "PUT", - "url": "/api/users/27/page-access", - "statusCode": 200, - "duration": "14ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T22:55:08.593Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T22:55:38.688Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T22:55:47.912Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-27", - "requester": 1, - "isAdmin": false -} -[2026-01-27T22:55:47.923Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 1 -} -[2026-01-27T22:55:47.924Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-27&view_all=true", - "statusCode": 200, - "duration": "14ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T22:55:47.926Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "23ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T22:55:48.892Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T22:55:57.362Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T22:55:58.309Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T22:56:01.597Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T22:56:01.606Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T22:56:01.667Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/2/map-region", - "method": "GET" -} -[2026-01-27T22:56:01.667Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/2/map-region", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T22:56:01.669Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/7/map-region", - "method": "GET" -} -[2026-01-27T22:56:01.670Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/7/map-region", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T22:56:01.672Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/4/map-region", - "method": "GET" -} -[2026-01-27T22:56:01.674Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/4/map-region", - "statusCode": 404, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T22:56:01.676Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/9/map-region", - "method": "GET" -} -[2026-01-27T22:56:01.677Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/9/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T22:56:01.680Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/10/map-region", - "method": "GET" -} -[2026-01-27T22:56:01.681Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/10/map-region", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T22:56:01.683Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/8/map-region", - "method": "GET" -} -[2026-01-27T22:56:01.684Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/8/map-region", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T22:56:01.685Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/3/map-region", - "method": "GET" -} -[2026-01-27T22:56:01.687Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/3/map-region", - "statusCode": 404, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T22:56:01.690Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/1/map-region", - "method": "GET" -} -[2026-01-27T22:56:01.690Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/1/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T22:56:01.692Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/11/map-region", - "method": "GET" -} -[2026-01-27T22:56:01.692Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/11/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T22:56:01.694Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/5/map-region", - "method": "GET" -} -[2026-01-27T22:56:01.694Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/5/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T22:56:01.695Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/12/map-region", - "method": "GET" -} -[2026-01-27T22:56:01.696Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/12/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T22:56:01.697Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplaces/6/map-region", - "method": "GET" -} -[2026-01-27T22:56:01.697Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/6/map-region", - "statusCode": 404, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T22:56:02.564Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T22:56:08.777Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T22:56:38.873Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T22:57:08.963Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T22:57:39.049Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T22:58:09.140Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T22:58:39.236Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T22:59:09.326Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T22:59:39.410Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T23:00:09.507Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T23:00:39.592Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T23:01:09.690Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T23:01:39.782Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T23:02:09.866Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T23:02:39.953Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T23:03:10.045Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T23:03:40.138Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T23:04:10.236Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T23:04:40.323Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T23:05:10.409Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T23:05:40.489Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T23:06:10.553Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T23:06:40.634Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T23:07:10.716Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T23:07:40.783Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T23:08:10.871Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T23:08:40.955Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T23:09:11.054Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T23:09:41.158Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T23:10:11.241Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T23:10:41.327Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T23:11:11.421Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T23:11:41.506Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T23:12:11.601Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T23:12:41.689Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T23:13:11.772Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T23:13:41.855Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T23:14:11.946Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T23:14:42.051Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T23:15:12.148Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T23:15:42.240Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T23:16:12.342Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T23:16:42.429Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T23:17:12.513Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T23:17:42.603Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T23:18:12.688Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T23:18:42.782Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T23:19:12.877Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T23:19:42.975Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T23:20:13.086Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T23:20:43.164Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T23:21:13.261Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T23:21:43.360Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T23:22:13.454Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T23:22:43.545Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T23:23:13.647Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T23:23:43.737Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T23:24:13.823Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T23:24:15.678Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2026-01-27T23:24:15.680Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-01-27T23:24:16.095Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-27T23:24:16.157Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-01-27T23:24:16.222Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2026-01-27T23:24:16.225Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-01-27T23:24:20.998Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T23:24:51.090Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T23:25:21.178Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T23:25:46.115Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2026-01-27T23:25:46.117Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-01-27T23:25:46.492Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-27T23:25:46.553Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-01-27T23:25:46.615Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2026-01-27T23:25:46.618Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-01-27T23:25:51.430Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T23:26:21.518Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T23:26:51.605Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T23:27:21.693Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T23:27:51.795Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T23:28:21.876Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T23:28:51.960Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T23:29:22.064Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T23:29:52.155Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T23:30:22.254Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T23:30:52.344Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T23:31:22.451Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T23:31:52.544Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T23:32:22.633Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T23:32:52.716Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T23:33:22.810Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T23:33:52.895Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T23:34:22.976Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T23:34:53.075Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T23:35:23.188Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T23:35:53.282Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T23:36:23.370Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T23:36:53.468Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T23:37:23.555Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T23:37:53.647Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T23:38:23.738Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T23:38:53.831Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T23:39:23.917Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T23:39:54.025Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T23:40:24.121Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T23:40:54.253Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T23:41:24.349Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T23:41:54.458Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T23:42:24.554Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T23:42:54.648Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T23:43:24.774Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T23:43:54.858Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T23:44:24.986Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T23:44:55.079Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T23:45:25.163Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T23:45:55.251Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T23:46:25.348Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T23:46:55.459Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T23:47:25.552Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T23:47:55.643Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T23:48:25.725Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T23:48:55.817Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T23:49:25.983Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "6ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T23:49:56.073Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T23:50:26.158Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T23:50:56.251Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T23:51:26.355Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T23:51:56.441Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T23:52:24.143Z] [INFO] ℹ️ MariaDB 연결 성공 - Context: { - "connection": "db:3306", - "database": "hyungi", - "connectionLimit": 10 -} -[2026-01-27T23:52:24.149Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "61ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T23:52:24.150Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces", - "statusCode": 200, - "duration": "50ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T23:52:24.236Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/2", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T23:52:24.238Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/10", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T23:52:24.242Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/9", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T23:52:24.243Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/1", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T23:52:24.244Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/11", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T23:52:24.245Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/8", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T23:52:24.245Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/7", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T23:52:24.246Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/4", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T23:52:24.250Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/3", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T23:52:24.251Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/12", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T23:52:24.252Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/6", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T23:52:24.252Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/uploads/workplace-layout-1769485965188-143426330.jpg", - "method": "GET" -} -[2026-01-27T23:52:24.253Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/5", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T23:52:24.255Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/uploads/workplace-layout-1769485965188-143426330.jpg", - "method": "GET" -} -[2026-01-27T23:52:25.086Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T23:52:26.546Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T23:52:53.811Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/2", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T23:52:53.823Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/10", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T23:52:53.825Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/9", - "statusCode": 304, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T23:52:53.827Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/1", - "statusCode": 304, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T23:52:53.829Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/11", - "statusCode": 304, - "duration": "11ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T23:52:53.831Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/7", - "statusCode": 304, - "duration": "12ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T23:52:53.832Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/8", - "statusCode": 304, - "duration": "12ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T23:52:53.843Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/4", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T23:52:53.844Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/3", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T23:52:53.845Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/12", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T23:52:53.846Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/6", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T23:52:53.848Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/5", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T23:52:53.848Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/uploads/workplace-layout-1769485965188-143426330.jpg", - "method": "GET" -} -[2026-01-27T23:52:56.613Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/uploads/workplace-layout-1769485965188-143426330.jpg", - "method": "GET" -} -[2026-01-27T23:52:56.621Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T23:52:56.647Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T23:53:26.729Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T23:53:56.837Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T23:54:26.908Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T23:54:57.015Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T23:55:27.087Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T23:55:57.183Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T23:56:27.273Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T23:56:57.372Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T23:57:27.467Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T23:57:57.562Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T23:58:27.683Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T23:58:57.777Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T23:59:27.953Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-27T23:59:58.059Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T00:00:28.250Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T00:00:47.411Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2026-01-28T00:00:47.414Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-01-28T00:00:47.977Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-28T00:00:48.075Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-01-28T00:00:48.148Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2026-01-28T00:00:48.151Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-01-28T00:00:52.813Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T00:01:22.993Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T00:01:53.085Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T00:02:23.187Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T00:02:53.310Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T00:03:23.387Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T00:03:50.149Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2026-01-28T00:03:50.151Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-01-28T00:03:50.588Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-28T00:03:51.017Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-28T00:03:51.514Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-28T00:03:52.238Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-28T00:03:53.365Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-28T00:03:55.317Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-28T00:03:58.816Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-28T00:04:05.543Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-28T00:04:18.672Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-28T00:04:44.714Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-28T00:04:44.784Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-01-28T00:04:44.867Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2026-01-28T00:04:44.873Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-01-28T00:04:49.592Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T00:05:19.673Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T00:05:49.769Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T00:06:19.909Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T00:06:50.000Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T00:07:06.548Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/uploads/workplace-layout-1769485965188-143426330.jpg", - "method": "GET" -} -[2026-01-28T00:07:14.924Z] [INFO] ℹ️ MariaDB 연결 성공 - Context: { - "connection": "db:3306", - "database": "hyungi", - "connectionLimit": 10 -} -[2026-01-28T00:07:14.932Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "31ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T00:07:14.936Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces", - "statusCode": 200, - "duration": "26ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T00:07:15.023Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/2", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T00:07:15.024Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/10", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T00:07:15.028Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/9", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T00:07:15.030Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/1", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T00:07:15.031Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/4", - "statusCode": 200, - "duration": "15ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T00:07:15.033Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/3", - "statusCode": 200, - "duration": "16ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T00:07:15.034Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/7", - "statusCode": 200, - "duration": "15ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T00:07:15.035Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/11", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T00:07:15.039Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/8", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T00:07:15.041Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/6", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T00:07:15.042Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/5", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T00:07:15.043Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/12", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T00:07:15.044Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/uploads/workplace-layout-1769485965188-143426330.jpg", - "method": "GET" -} -[2026-01-28T00:07:15.898Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T00:07:16.388Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/10", - "statusCode": 304, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T00:07:16.392Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/2", - "statusCode": 304, - "duration": "12ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T00:07:16.394Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/9", - "statusCode": 304, - "duration": "12ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T00:07:16.395Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/1", - "statusCode": 304, - "duration": "12ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T00:07:16.396Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/11", - "statusCode": 304, - "duration": "12ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T00:07:16.399Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/8", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T00:07:16.402Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/7", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T00:07:16.406Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/3", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T00:07:16.407Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/4", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T00:07:16.408Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/6", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T00:07:16.409Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/12", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T00:07:16.410Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/5", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T00:07:16.411Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/uploads/workplace-layout-1769485965188-143426330.jpg", - "method": "GET" -} -[2026-01-28T00:07:16.416Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/uploads/workplace-layout-1769485965188-143426330.jpg", - "method": "GET" -} -[2026-01-28T00:07:17.896Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/uploads/workplace-layout-1769485965188-143426330.jpg", - "method": "GET" -} -[2026-01-28T00:07:17.909Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T00:07:20.100Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T00:07:50.195Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T00:08:20.297Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T00:08:50.390Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T00:09:01.261Z] [WARN] ⚠️ 인증 실패: Bearer 토큰 누락 - Context: { - "path": "/", - "method": "POST", - "ip": "::ffff:192.168.65.1" -} -[2026-01-28T00:09:01.263Z] [WARN] ⚠️ Bearer 토큰이 필요합니다 - Context: { - "code": "AUTHENTICATION_ERROR", - "url": "/api/pages", - "method": "POST", - "user": "anonymous" -} -[2026-01-28T00:09:01.265Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "POST", - "url": "/api/pages", - "statusCode": 401, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-01-28T00:09:06.071Z] [WARN] ⚠️ 아이디 또는 비밀번호가 올바르지 않습니다. - Context: { - "code": "AUTHENTICATION_ERROR", - "url": "/api/auth/login", - "method": "POST", - "user": "anonymous" -} -[2026-01-28T00:09:06.072Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 401, - "duration": "100ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-01-28T00:09:20.476Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T00:09:50.588Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T00:10:20.669Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T00:10:50.781Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T00:11:20.887Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T00:11:50.986Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T00:12:21.077Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T00:12:51.213Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T00:13:21.312Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T00:13:51.407Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T00:14:21.513Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T00:14:51.600Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T00:15:21.697Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T00:15:51.808Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T00:16:21.903Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T00:16:52.010Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T00:17:22.100Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T00:17:52.196Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T00:18:11.324Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/uploads/workplace-layout-1769485965188-143426330.jpg", - "method": "GET" -} -[2026-01-28T00:18:14.711Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T00:18:14.714Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T00:18:14.850Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/2", - "statusCode": 200, - "duration": "34ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T00:18:14.854Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/7", - "statusCode": 200, - "duration": "28ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T00:18:14.858Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/4", - "statusCode": 200, - "duration": "30ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T00:18:14.862Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/9", - "statusCode": 200, - "duration": "30ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T00:18:14.876Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/8", - "statusCode": 200, - "duration": "40ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T00:18:14.895Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/1", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T00:18:14.901Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/11", - "statusCode": 200, - "duration": "15ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T00:18:14.904Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/12", - "statusCode": 200, - "duration": "16ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T00:18:14.906Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/6", - "statusCode": 200, - "duration": "16ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T00:18:14.908Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/5", - "statusCode": 200, - "duration": "15ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T00:18:14.912Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/10", - "statusCode": 200, - "duration": "72ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T00:18:14.914Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/3", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T00:18:14.965Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/uploads/workplace-layout-1769485965188-143426330.jpg", - "method": "GET" -} -[2026-01-28T00:18:15.700Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T00:18:21.730Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/2", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T00:18:21.743Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/9", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T00:18:21.745Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/10", - "statusCode": 304, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T00:18:21.746Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/1", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T00:18:21.747Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/11", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T00:18:21.748Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/8", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T00:18:21.749Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/7", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T00:18:21.757Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/4", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T00:18:21.759Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/3", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T00:18:21.760Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/12", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T00:18:21.761Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/6", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T00:18:21.762Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/5", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T00:18:21.762Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/uploads/workplace-layout-1769485965188-143426330.jpg", - "method": "GET" -} -[2026-01-28T00:18:22.295Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T00:18:23.371Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/uploads/workplace-layout-1769485965188-143426330.jpg", - "method": "GET" -} -[2026-01-28T00:18:23.383Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T00:18:52.431Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T00:19:22.554Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T00:19:52.646Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T00:20:22.734Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T00:20:52.825Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T00:21:14.442Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 304, - "duration": "19ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T00:21:22.916Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T00:21:53.001Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T00:22:23.071Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T00:22:53.151Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T00:23:15.641Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-28", - "requester": 1, - "isAdmin": false -} -[2026-01-28T00:23:15.645Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-28T00:23:15.646Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-28&view_all=true", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T00:23:15.655Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "27ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T00:23:16.581Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T00:23:17.156Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "15ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T00:23:17.327Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects?is_active=1", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T00:23:17.374Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/safety-checks", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T00:23:17.382Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T00:23:17.388Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks/active/list", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T00:23:17.394Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?is_active=true", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T00:23:17.398Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/active/list", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T00:23:17.405Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-28", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T00:23:18.135Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T00:23:23.255Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T00:23:45.794Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T00:23:45.809Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T00:23:53.351Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T00:23:56.208Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/tbm/sessions", - "statusCode": 201, - "duration": "11ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T00:23:56.221Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/tbm/sessions/7/team/batch", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T00:23:56.230Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-28", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T00:23:59.484Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/7/safety", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T00:24:08.895Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-28", - "requester": 1, - "isAdmin": false -} -[2026-01-28T00:24:08.899Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-28T00:24:08.901Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-28&view_all=true", - "statusCode": 304, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T00:24:08.903Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T00:24:09.886Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T00:24:11.039Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T00:24:11.979Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T00:24:13.266Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T00:24:13.319Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T00:24:14.266Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T00:24:23.438Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T00:24:39.102Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T00:24:39.105Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T00:24:39.106Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T00:24:40.081Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T00:24:53.530Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T00:24:54.836Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T00:24:54.842Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T00:24:54.894Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/10", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T00:24:54.896Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/9", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T00:24:54.905Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/1", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T00:24:54.906Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/2", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T00:24:54.907Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/11", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T00:24:54.909Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/8", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T00:24:54.911Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/7", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T00:24:54.913Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/4", - "statusCode": 304, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T00:24:54.925Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/3", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T00:24:54.927Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/5", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T00:24:54.929Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/6", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T00:24:54.932Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/12", - "statusCode": 304, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T00:24:55.833Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T00:24:58.249Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/2", - "statusCode": 304, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T00:24:58.252Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/10", - "statusCode": 304, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T00:24:58.257Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/9", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T00:24:58.260Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/1", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T00:24:58.261Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/11", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T00:24:58.262Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/8", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T00:24:58.263Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/7", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T00:24:58.266Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/4", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T00:24:58.270Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/3", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T00:24:58.272Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/12", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T00:24:58.272Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/6", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T00:24:58.273Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/5", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T00:24:58.274Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T00:25:23.626Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T00:25:53.729Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T00:26:23.816Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T00:26:53.914Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T00:27:23.996Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T00:27:54.088Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T00:28:24.177Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T00:28:54.274Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T00:29:24.367Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T00:29:54.472Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T00:30:24.566Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T00:30:54.661Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T00:31:24.749Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T00:31:54.829Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T00:32:24.910Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T00:32:55.005Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T00:33:25.085Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T00:33:55.170Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T00:34:25.259Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T00:34:55.362Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T00:35:25.453Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T00:35:55.546Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T00:36:25.628Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T00:36:55.709Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T00:37:25.796Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T00:37:55.887Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T00:38:25.978Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T00:38:56.081Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T00:39:26.179Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T00:39:56.281Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T00:40:26.386Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T00:40:56.483Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T00:41:26.578Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T00:41:56.669Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T00:42:26.753Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T00:42:56.858Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T00:43:26.954Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T00:43:57.043Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T00:44:27.132Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T00:44:57.215Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T00:45:27.300Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T00:45:57.394Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T00:46:27.478Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T00:46:57.561Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T00:47:27.641Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T00:47:57.734Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T00:48:27.819Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T00:48:57.911Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T00:49:27.995Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T00:49:58.081Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T00:50:28.171Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T00:50:58.263Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T00:51:28.364Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T00:51:58.453Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T00:52:28.554Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T00:52:58.655Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T00:53:28.750Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T00:53:58.842Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T00:54:28.929Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T00:54:59.021Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T00:55:29.118Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T00:55:59.215Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T00:56:29.307Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T00:56:59.401Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T00:57:29.492Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T00:57:59.583Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T00:58:29.680Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T00:58:59.768Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T00:59:29.863Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T00:59:59.952Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T01:00:30.039Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T01:01:00.128Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T01:01:30.213Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T01:02:00.304Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T01:02:30.398Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T01:03:00.482Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T01:03:30.575Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T01:04:00.668Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T01:04:30.758Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T01:05:00.866Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T01:05:30.966Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T01:06:01.064Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T01:06:31.161Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T01:07:01.245Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T01:07:31.338Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T01:08:01.418Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T01:08:31.499Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T01:09:01.595Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T01:09:31.683Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T01:10:01.780Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T01:10:31.875Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T01:11:01.965Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T01:11:32.051Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T01:12:02.134Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T01:12:32.222Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T01:13:02.317Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T01:13:32.416Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T01:14:02.506Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T01:14:32.598Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T01:15:02.695Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T01:15:32.784Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T01:16:02.879Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T01:16:32.977Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T01:17:03.061Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T01:17:33.166Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T01:18:03.246Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T01:18:33.344Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T01:19:03.445Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T01:19:33.544Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T01:20:03.635Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T01:20:33.736Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T01:21:03.827Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T01:21:33.916Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T01:22:04.002Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T01:22:34.090Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T01:23:04.179Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T01:23:34.268Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T01:24:04.368Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T01:24:34.458Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T01:25:04.540Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T01:25:34.642Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T01:26:04.729Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T01:26:34.830Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T01:27:04.922Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T01:27:35.015Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T01:28:05.104Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T01:28:35.201Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T01:29:05.286Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T01:29:35.368Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T01:30:05.456Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T01:30:35.540Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T01:31:05.629Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T01:31:35.722Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T01:32:05.807Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T01:32:35.903Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T01:33:05.991Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T01:33:36.081Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T01:34:06.171Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T01:34:36.258Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T01:35:06.349Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T01:35:36.437Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T01:36:06.522Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T01:36:36.578Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T01:37:06.661Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T01:37:36.736Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T01:38:06.823Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T01:38:36.904Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T01:39:06.984Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T01:39:37.079Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T01:40:07.173Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T01:40:37.255Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T01:41:07.338Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T01:41:37.416Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T01:42:07.504Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T01:42:37.592Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T01:43:07.672Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T01:43:37.765Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T01:44:07.863Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T01:44:37.968Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T01:45:08.066Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T01:45:38.147Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T01:46:08.225Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T01:46:38.305Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T01:47:08.387Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T01:47:38.485Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T01:48:08.575Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T01:48:38.673Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T01:49:08.767Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T01:49:38.859Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T01:50:08.957Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T01:50:39.055Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T01:51:09.172Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T01:51:39.301Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T01:52:09.381Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T01:52:39.511Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T01:53:09.655Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "6ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T01:53:39.719Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T01:54:09.808Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T01:54:39.899Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T01:55:09.998Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T01:55:40.068Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T01:56:10.157Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T01:56:40.240Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T01:57:10.324Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T01:57:40.409Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T01:58:10.499Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T01:58:40.592Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T01:59:10.696Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T01:59:40.798Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T02:00:10.894Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T02:00:40.991Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T02:01:11.081Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T02:01:41.174Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T02:02:11.261Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T02:02:41.349Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T02:03:11.442Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T02:03:41.539Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T02:04:11.619Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T02:04:41.707Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T02:05:11.787Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T02:05:41.882Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T02:06:11.960Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T02:06:42.051Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T02:07:12.132Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T02:07:42.237Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T02:08:12.340Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T02:08:42.433Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T02:09:12.517Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T02:09:42.610Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T02:10:12.702Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T02:10:42.798Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T02:11:12.878Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T02:11:42.973Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T02:12:13.063Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T02:12:43.162Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T02:13:13.245Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T02:13:43.331Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T02:14:13.425Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T02:14:43.507Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T02:15:13.597Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T02:15:43.681Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T02:16:13.783Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T02:16:43.881Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T02:17:13.981Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T02:17:44.092Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T02:18:14.177Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T02:18:44.269Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T02:19:14.357Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T02:19:44.439Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T02:20:14.537Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T02:20:44.616Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T02:21:14.711Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T02:21:44.807Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T02:22:14.902Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T02:22:44.978Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T02:23:15.071Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T02:23:45.158Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T02:24:15.258Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T02:24:45.367Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T02:25:15.462Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T02:25:45.557Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T02:26:15.647Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T02:26:45.733Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T02:27:15.828Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T02:27:45.917Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T02:28:16.025Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T02:28:46.106Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T02:29:16.206Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T02:29:46.296Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T02:30:16.387Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T02:30:46.469Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T02:31:16.553Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T02:31:46.648Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T02:32:16.738Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T02:32:46.828Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T02:33:16.919Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T02:33:47.013Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T02:34:17.098Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T02:34:47.186Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T02:35:17.272Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T02:35:47.369Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T02:36:17.458Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T02:36:47.550Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T02:37:17.634Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T02:37:47.725Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T02:38:17.817Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T02:38:47.903Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T02:39:17.982Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T02:39:48.072Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T02:40:18.162Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T02:40:48.254Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T02:41:18.347Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T02:41:48.436Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T02:42:18.514Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T02:42:48.607Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T02:43:18.693Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T02:43:48.772Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T02:44:18.868Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T02:44:48.965Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T02:45:19.048Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T02:45:49.149Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T02:46:19.243Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T02:46:49.347Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T02:47:19.447Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T02:47:49.559Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T02:48:19.647Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T02:48:49.735Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T02:49:19.825Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T02:49:49.917Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T02:50:20.010Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T02:50:50.112Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T02:51:20.212Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T02:51:50.297Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T02:52:20.392Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T02:52:50.486Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T02:53:20.574Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T02:53:50.674Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T02:54:20.763Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T02:54:50.853Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T02:55:20.949Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T02:55:51.044Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T02:56:21.125Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T02:56:51.213Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T02:57:21.311Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T02:57:51.408Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T02:58:21.506Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T02:58:51.597Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T02:59:21.698Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T02:59:51.787Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T03:00:21.868Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T03:00:51.957Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T03:01:22.045Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T03:01:52.135Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T03:02:22.219Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T03:02:52.318Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T03:03:22.400Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T03:03:52.493Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T03:04:22.580Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T03:04:52.676Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T03:05:22.761Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T03:05:52.867Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T03:06:22.964Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T03:06:53.054Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T03:07:23.147Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T03:07:53.232Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T03:08:23.323Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T03:08:53.412Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T03:09:23.503Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T03:09:53.610Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T03:10:23.698Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T03:10:53.782Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T03:11:23.875Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T03:11:53.960Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T03:12:24.053Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T03:12:54.138Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T03:13:24.223Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T03:13:54.320Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T03:14:24.410Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T03:14:54.498Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T03:15:24.585Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T03:15:54.691Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T03:16:24.779Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T03:16:54.862Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T03:17:24.968Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T03:17:55.060Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T03:18:25.161Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T03:18:55.245Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T03:19:25.345Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T03:19:55.434Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T03:20:25.528Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T03:20:55.614Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T03:21:25.703Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T03:21:55.785Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T03:22:25.869Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T03:22:55.957Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T03:23:26.049Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T03:23:56.144Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T03:24:26.236Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T03:24:56.331Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T03:25:26.418Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T03:25:56.507Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T03:26:26.603Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T03:26:56.694Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T03:27:26.800Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T03:27:56.887Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T03:28:26.990Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T03:28:57.083Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T03:29:27.171Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T03:29:57.261Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T03:30:27.349Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T03:30:57.438Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T03:31:27.538Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T03:31:57.626Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T03:32:27.706Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T03:32:57.796Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T03:33:27.886Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T03:33:57.972Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T03:34:28.058Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T03:34:58.145Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T03:35:28.245Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T03:35:58.335Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T03:36:28.428Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T03:36:58.520Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T03:37:28.605Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T03:37:58.698Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T03:38:28.792Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T03:38:58.896Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T03:39:28.978Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T03:39:59.072Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T03:40:29.174Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T03:40:59.256Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T03:41:29.338Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T03:41:59.438Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T03:42:29.520Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T03:42:59.626Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T03:43:29.706Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T03:43:59.790Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T03:44:29.888Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T03:44:59.996Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T03:45:30.087Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T03:46:00.184Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T03:46:30.262Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T03:47:00.353Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T03:47:30.438Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T03:48:00.532Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T03:48:30.613Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T03:49:00.705Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T03:49:30.795Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T03:50:00.879Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T03:50:30.979Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T03:51:01.058Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T03:51:31.154Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T03:52:01.233Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T03:52:31.314Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T03:53:01.388Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T03:53:31.480Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T03:54:01.561Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T03:54:31.647Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T03:55:01.735Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T03:55:31.818Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T03:56:01.944Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T03:56:32.039Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T03:57:02.128Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T03:57:32.220Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T03:58:02.310Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T03:58:32.403Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T03:59:02.495Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T03:59:32.577Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T04:00:02.665Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T04:00:32.776Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T04:01:02.865Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T04:01:32.953Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T04:02:03.037Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T04:02:33.122Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T04:03:03.201Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T04:03:33.282Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T04:04:03.356Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T04:04:33.446Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T04:05:03.533Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T04:05:33.691Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "7ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T04:06:03.790Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T04:06:33.855Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T04:07:03.934Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T04:07:34.019Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T04:08:04.113Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T04:08:34.198Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T04:09:04.283Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T04:09:34.377Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T04:10:04.500Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T04:10:23.444Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-28", - "requester": 1, - "isAdmin": false -} -[2026-01-28T04:10:23.450Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-28T04:10:23.451Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-28&view_all=true", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T04:10:23.454Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "21ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T04:10:24.417Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T04:10:34.603Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T04:11:04.858Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T04:11:34.956Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T04:12:01.323Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-28", - "requester": 1, - "isAdmin": false -} -[2026-01-28T04:12:01.350Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "23ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T04:12:01.375Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-28T04:12:01.377Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-28&view_all=true", - "statusCode": 200, - "duration": "65ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T04:12:02.291Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T04:12:02.751Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T04:12:03.697Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T04:12:05.062Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T04:12:35.196Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T04:13:05.292Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T04:13:35.390Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T04:14:05.481Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T04:14:35.579Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T04:15:05.681Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T04:15:35.783Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T04:16:02.218Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T04:16:03.208Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T04:16:05.893Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T04:16:07.602Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T04:16:19.747Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2026-01-28T04:16:19.751Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-01-28T04:16:20.289Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-28T04:16:20.361Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-01-28T04:16:20.433Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2026-01-28T04:16:20.439Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-01-28T04:16:25.165Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T04:16:35.750Z] [WARN] ⚠️ 인증 실패: Authorization 헤더 없음 - Context: { - "path": "/", - "method": "GET", - "ip": "::ffff:192.168.65.1" -} -[2026-01-28T04:16:35.752Z] [WARN] ⚠️ Authorization 헤더가 필요합니다 - Context: { - "code": "AUTHENTICATION_ERROR", - "url": "/api/equipments", - "method": "GET", - "user": "anonymous" -} -[2026-01-28T04:16:35.754Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/equipments", - "statusCode": 401, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-01-28T04:16:46.598Z] [INFO] ℹ️ MariaDB 연결 성공 - Context: { - "connection": "db:3306", - "database": "hyungi", - "connectionLimit": 10 -} -[2026-01-28T04:16:46.676Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 200, - "duration": "91ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-01-28T04:16:55.252Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T04:17:25.342Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T04:17:55.431Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T04:18:25.518Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T04:18:46.646Z] [WARN] ⚠️ 인증 실패: Bearer 토큰 누락 - Context: { - "path": "/", - "method": "GET", - "ip": "::ffff:192.168.65.1" -} -[2026-01-28T04:18:46.654Z] [WARN] ⚠️ Bearer 토큰이 필요합니다 - Context: { - "code": "AUTHENTICATION_ERROR", - "url": "/api/equipments", - "method": "GET", - "user": "anonymous" -} -[2026-01-28T04:18:46.658Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/equipments", - "statusCode": 401, - "duration": "13ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-01-28T04:18:55.633Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T04:19:25.727Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T04:19:55.827Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T04:20:25.928Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T04:20:56.011Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T04:21:26.101Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T04:21:56.190Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T04:22:26.275Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T04:22:56.369Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T04:23:26.458Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T04:23:56.559Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T04:24:26.651Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T04:24:56.741Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T04:25:26.836Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T04:25:56.936Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T04:26:08.181Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T04:26:27.044Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T04:26:54.918Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2026-01-28T04:26:54.920Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-01-28T04:26:55.296Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-28T04:26:55.354Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-01-28T04:26:55.416Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2026-01-28T04:26:55.418Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-01-28T04:27:00.217Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T04:27:05.103Z] [WARN] ⚠️ 인증 실패: Authorization 헤더 없음 - Context: { - "path": "/", - "method": "GET", - "ip": "::ffff:192.168.65.1" -} -[2026-01-28T04:27:05.106Z] [WARN] ⚠️ Authorization 헤더가 필요합니다 - Context: { - "code": "AUTHENTICATION_ERROR", - "url": "/api/equipments", - "method": "GET", - "user": "anonymous" -} -[2026-01-28T04:27:05.108Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/equipments", - "statusCode": 401, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-01-28T04:27:30.300Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T04:28:00.391Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T04:28:30.480Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T04:28:42.662Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T04:29:00.595Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T04:29:30.691Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T04:30:00.788Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T04:30:30.882Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T04:31:00.981Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T04:31:31.070Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T04:32:01.161Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T04:32:31.253Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T04:33:01.345Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T04:33:31.427Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T04:34:01.509Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T04:34:31.601Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T04:35:01.693Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T04:35:24.498Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T04:35:31.803Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T04:36:01.924Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T04:36:32.011Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T04:37:02.117Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T04:37:07.305Z] [INFO] ℹ️ MariaDB 연결 성공 - Context: { - "connection": "db:3306", - "database": "hyungi", - "connectionLimit": 10 -} -[2026-01-28T04:37:07.309Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "49ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T04:37:07.313Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces", - "statusCode": 200, - "duration": "30ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T04:37:07.370Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/2", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T04:37:07.372Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/10", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T04:37:07.377Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/9", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T04:37:07.378Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/1", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T04:37:07.381Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/7", - "statusCode": 200, - "duration": "17ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T04:37:07.384Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/8", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T04:37:07.385Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/4", - "statusCode": 200, - "duration": "19ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T04:37:07.386Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/12", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T04:37:07.389Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/3", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T04:37:07.391Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/11", - "statusCode": 200, - "duration": "17ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T04:37:07.392Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/6", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T04:37:07.394Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/5", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T04:37:08.256Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T04:37:11.969Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T04:37:32.222Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T04:37:47.872Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/api/equipments", - "method": "GET" -} -[2026-01-28T04:37:47.873Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/api/equipments", - "statusCode": 404, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T04:37:47.875Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/api/workplaces", - "method": "GET" -} -[2026-01-28T04:37:47.876Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/api/workplaces", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T04:37:47.877Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/api/equipments/types", - "method": "GET" -} -[2026-01-28T04:37:47.878Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/api/equipments/types", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T04:37:51.278Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T04:38:02.339Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T04:38:09.981Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "curl/8.7.1" -} -[2026-01-28T04:38:32.450Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T04:38:45.278Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/api/equipments", - "method": "GET" -} -[2026-01-28T04:38:45.279Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/api/equipments", - "statusCode": 404, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T04:38:45.283Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/api/equipments/types", - "method": "GET" -} -[2026-01-28T04:38:45.284Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/api/equipments/types", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T04:38:45.286Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/api/workplaces", - "method": "GET" -} -[2026-01-28T04:38:45.286Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/api/workplaces", - "statusCode": 404, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T04:38:48.236Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T04:39:02.569Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T04:39:32.667Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T04:40:02.769Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T04:40:32.859Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T04:41:02.943Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T04:41:33.027Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T04:42:03.118Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T04:42:33.265Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "8ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T04:42:35.807Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T04:42:35.808Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/types", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T04:42:35.810Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T04:42:36.688Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T04:43:03.358Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T04:43:33.443Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T04:44:03.547Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T04:44:33.637Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T04:45:03.737Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T04:45:33.839Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T04:46:03.936Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T04:46:34.028Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T04:47:04.112Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T04:47:34.199Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T04:48:04.303Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T04:48:34.392Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T04:49:04.486Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T04:49:22.655Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "38ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T04:49:22.713Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T04:49:23.582Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T04:49:24.773Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T04:49:25.735Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T04:49:30.385Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/equipments/types", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T04:49:30.398Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces", - "statusCode": 304, - "duration": "11ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T04:49:30.402Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/equipments", - "statusCode": 304, - "duration": "12ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T04:49:31.320Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T04:49:34.596Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T04:50:04.694Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T04:50:34.787Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T04:51:04.869Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T04:51:34.968Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T04:52:05.072Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T04:52:35.173Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T04:53:05.269Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T04:53:35.360Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T04:54:05.484Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T04:54:35.590Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T04:55:05.657Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T04:55:35.741Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T04:56:05.833Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T04:56:35.922Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T04:57:06.021Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T04:57:36.110Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T04:58:06.201Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T04:58:36.285Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T04:59:06.385Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T04:59:36.471Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T05:00:06.544Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T05:00:36.649Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T05:01:06.732Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T05:01:36.814Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T05:02:06.918Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T05:02:37.014Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T05:03:07.101Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T05:03:37.186Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T05:04:07.269Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T05:04:37.359Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T05:05:07.455Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T05:05:37.543Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T05:06:07.632Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T05:06:37.716Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T05:07:07.805Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T05:07:37.896Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T05:08:07.982Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T05:08:38.078Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T05:09:08.164Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T05:09:38.247Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T05:10:08.340Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T05:10:38.419Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T05:11:08.507Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T05:11:38.592Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T05:12:08.671Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T05:12:38.770Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T05:13:08.897Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "5ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T05:13:38.990Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T05:14:09.088Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T05:14:39.172Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T05:15:09.262Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T05:15:39.348Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T05:16:09.435Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T05:16:39.528Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T05:17:09.615Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T05:17:39.706Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T05:18:09.821Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T05:18:39.911Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T05:19:10.470Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T05:19:36.143Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/equipments", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T05:19:36.145Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces", - "statusCode": 304, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T05:19:36.146Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/equipments/types", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T05:19:36.966Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T05:19:37.903Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces", - "statusCode": 304, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T05:19:37.908Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T05:19:37.954Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/2", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T05:19:37.955Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/10", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T05:19:37.959Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/4", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T05:19:37.961Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/3", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T05:19:37.962Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/7", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T05:19:37.964Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/9", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T05:19:37.965Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/8", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T05:19:37.968Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/1", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T05:19:37.971Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/11", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T05:19:37.971Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/12", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T05:19:37.972Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/6", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T05:19:37.972Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/5", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T05:19:38.885Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T05:19:39.481Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/equipments", - "statusCode": 304, - "duration": "15ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T05:19:39.487Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces", - "statusCode": 304, - "duration": "15ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T05:19:39.488Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/equipments/types", - "statusCode": 304, - "duration": "14ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T05:19:40.415Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T05:19:40.578Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T05:20:10.678Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T05:20:40.763Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T05:20:42.108Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments", - "statusCode": 200, - "duration": "20ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T05:20:42.116Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/types", - "statusCode": 200, - "duration": "15ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T05:20:42.119Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces", - "statusCode": 200, - "duration": "24ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T05:20:42.995Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T05:20:46.451Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-28", - "requester": 1, - "isAdmin": false -} -[2026-01-28T05:20:46.454Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-28T05:20:46.455Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-28&view_all=true", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T05:20:46.463Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "24ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T05:20:47.407Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T05:21:10.869Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T05:21:40.957Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T05:22:11.051Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T05:22:41.139Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T05:23:11.228Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T05:23:41.349Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T05:24:11.455Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T05:24:41.553Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T05:25:11.663Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T05:25:41.772Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T05:26:11.871Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T05:26:41.994Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T05:27:12.098Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T05:27:42.206Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T05:28:12.301Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T05:28:42.396Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T05:29:12.487Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T05:29:42.610Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T05:30:12.683Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T05:30:42.820Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T05:31:12.885Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T05:31:42.957Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T05:32:13.023Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T05:32:43.098Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T05:33:13.176Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T05:33:43.286Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T05:34:13.379Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T05:34:43.470Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T05:35:13.575Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T05:35:43.645Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T05:36:13.717Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T05:36:43.782Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T05:37:13.857Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T05:37:43.922Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T05:38:14.025Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T05:38:44.209Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T05:39:14.304Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T05:39:44.380Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T05:40:14.455Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T05:40:44.533Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T05:41:14.606Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T05:41:44.715Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T05:42:14.788Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T05:42:44.862Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T05:43:14.968Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T05:43:45.072Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T05:44:15.147Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T05:44:45.219Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T05:45:15.290Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T05:45:45.360Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T05:46:15.434Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T05:46:45.501Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T05:47:15.581Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T05:47:45.659Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T05:48:15.740Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T05:48:45.822Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T05:49:15.946Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T05:49:46.054Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T05:50:16.152Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T05:50:46.254Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T05:51:16.380Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T05:51:46.468Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T05:52:16.557Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T05:52:46.648Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T05:53:16.749Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T05:53:46.846Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T05:54:16.924Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T05:54:47.036Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T05:55:17.131Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T05:55:47.237Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T05:56:17.340Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T05:56:47.451Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T05:56:54.727Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2026-01-28T05:56:54.729Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-01-28T05:56:55.237Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-28T05:56:55.793Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-28T05:56:56.401Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-28T05:56:57.221Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-28T05:56:58.444Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-28T05:57:00.490Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-28T05:57:04.057Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-28T05:57:10.905Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-28T05:57:24.060Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-28T05:57:50.020Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-28T05:58:41.625Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-28T05:59:42.062Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-28T06:00:42.575Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-28T06:01:42.961Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-28T06:02:43.335Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-28T06:03:43.729Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-28T06:04:44.207Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-28T06:05:44.713Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-28T06:06:45.163Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-28T06:06:45.236Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-01-28T06:06:45.339Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2026-01-28T06:06:45.342Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-01-28T06:06:50.022Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T06:06:51.143Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2026-01-28T06:06:51.144Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-01-28T06:06:51.592Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-28T06:06:51.657Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-01-28T06:06:51.735Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2026-01-28T06:06:51.738Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-01-28T06:06:56.509Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T06:07:26.604Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T06:07:56.714Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T06:08:26.817Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T06:08:56.914Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T06:09:27.002Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T06:09:57.100Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T06:10:27.196Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T06:10:57.308Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T06:11:27.416Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T06:11:57.521Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T06:12:27.622Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T06:12:57.715Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T06:13:27.795Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T06:13:57.914Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T06:14:28.019Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T06:14:58.114Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T06:15:28.216Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T06:15:58.307Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T06:16:28.401Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T06:16:58.509Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T06:17:28.600Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T06:17:58.707Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T06:18:28.822Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T06:18:58.963Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "10ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T06:19:29.065Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T06:19:59.154Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T06:20:29.239Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T06:20:37.298Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-28", - "requester": 1, - "isAdmin": false -} -[2026-01-28T06:20:37.329Z] [INFO] ℹ️ MariaDB 연결 성공 - Context: { - "connection": "db:3306", - "database": "hyungi", - "connectionLimit": 10 -} -[2026-01-28T06:20:37.333Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-28T06:20:37.334Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-28&view_all=true", - "statusCode": 200, - "duration": "37ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T06:20:37.339Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "57ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T06:20:38.276Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T06:20:59.318Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T06:21:29.397Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T06:21:59.483Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T06:22:20.102Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-28", - "requester": 1, - "isAdmin": false -} -[2026-01-28T06:22:20.107Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-28T06:22:20.108Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-28&view_all=true", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T06:22:20.110Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "19ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T06:22:21.054Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T06:22:29.563Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T06:22:59.663Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T06:23:29.773Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T06:23:59.898Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T06:24:30.019Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T06:25:00.097Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T06:25:30.174Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T06:26:00.274Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T06:26:30.354Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T06:27:00.433Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T06:27:30.528Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T06:28:00.619Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T06:28:30.708Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T06:29:00.806Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T06:29:30.908Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T06:30:01.013Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T06:30:20.441Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-28", - "requester": 1, - "isAdmin": false -} -[2026-01-28T06:30:20.453Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-28T06:30:20.455Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-28&view_all=true", - "statusCode": 200, - "duration": "18ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T06:30:20.461Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "43ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T06:30:21.387Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T06:30:24.146Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-28", - "requester": 1, - "isAdmin": false -} -[2026-01-28T06:30:24.150Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T06:30:24.151Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-28T06:30:24.152Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-28&view_all=true", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T06:30:31.125Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T06:30:36.429Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 304, - "duration": "25ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T06:30:36.435Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-28", - "requester": 1, - "isAdmin": false -} -[2026-01-28T06:30:36.450Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-28T06:30:36.457Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-28&view_all=true", - "statusCode": 304, - "duration": "25ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T06:30:38.457Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-28", - "requester": 1, - "isAdmin": false -} -[2026-01-28T06:30:38.471Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 304, - "duration": "23ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T06:30:38.477Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-28T06:30:38.481Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-28&view_all=true", - "statusCode": 304, - "duration": "26ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T06:30:40.331Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-28", - "requester": 1, - "isAdmin": false -} -[2026-01-28T06:30:40.339Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-28T06:30:40.340Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-28&view_all=true", - "statusCode": 304, - "duration": "11ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T06:30:40.344Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 304, - "duration": "19ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T06:30:41.624Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 200, - "duration": "18ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T06:30:42.601Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T06:30:43.019Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-28", - "requester": 1, - "isAdmin": false -} -[2026-01-28T06:30:43.033Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 304, - "duration": "22ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T06:30:43.035Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-28T06:30:43.037Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-28&view_all=true", - "statusCode": 304, - "duration": "21ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T06:30:44.009Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T06:31:01.212Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T06:31:31.296Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T06:32:01.388Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T06:32:31.487Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T06:33:01.603Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T06:33:31.698Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T06:34:01.791Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T06:34:31.900Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T06:35:02.000Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T06:35:32.095Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T06:36:02.184Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T06:36:32.288Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T06:37:02.379Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T06:37:32.453Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T06:37:47.045Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-28", - "requester": 1, - "isAdmin": false -} -[2026-01-28T06:37:47.060Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-28T06:37:47.063Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-28&view_all=true", - "statusCode": 200, - "duration": "24ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T06:37:47.073Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "24ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T06:37:48.009Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T06:37:48.869Z] [INFO] ℹ️ 휴가 유형 목록 조회 요청 -[2026-01-28T06:37:48.873Z] [ERROR] ❌ 휴가 유형 목록 조회 실패 - Context: { - "error": "Unknown column 'hours_deduction' in 'field list'" -} -[2026-01-28T06:37:48.876Z] [ERROR] ❌ 휴가 유형 목록 조회 중 데이터베이스 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 휴가 유형 목록 조회 중 데이터베이스 오류가 발생했습니다\n at Object.getVacationTypesService (/usr/src/app/services/attendanceService.js:201:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:116:16", - "url": "/api/attendance/vacation-types", - "method": "GET", - "user": "admin" -} -[2026-01-28T06:37:48.877Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/attendance/vacation-types", - "statusCode": 500, - "duration": "12ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T06:37:48.879Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "18ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T06:37:48.881Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/attendance/records?date=2026-01-28", - "method": "GET" -} -[2026-01-28T06:37:48.882Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/attendance/records?date=2026-01-28", - "statusCode": 404, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T06:37:49.754Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T06:38:02.522Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T06:38:32.616Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T06:39:02.713Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T06:39:32.799Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T06:40:02.891Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T06:40:32.958Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T06:41:03.039Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T06:41:33.136Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T06:42:03.234Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T06:42:33.317Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T06:43:03.413Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T06:43:33.513Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T06:44:03.607Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T06:44:33.698Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T06:45:03.807Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T06:45:33.898Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T06:46:03.977Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T06:46:34.078Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T06:47:04.162Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T06:47:34.251Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T06:48:04.361Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T06:48:34.447Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T06:48:47.137Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "39ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T06:48:47.146Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/attendance/records?date=2026-01-28", - "method": "GET" -} -[2026-01-28T06:48:47.148Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/attendance/records?date=2026-01-28", - "statusCode": 404, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T06:48:47.929Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T06:49:04.549Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T06:49:34.645Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T06:50:04.728Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T06:50:34.820Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T06:51:04.907Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T06:51:34.996Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T06:52:05.099Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T06:52:35.203Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T06:53:05.296Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T06:53:35.384Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T06:54:05.471Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T06:54:26.472Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "20ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T06:54:26.497Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/attendance/records?date=2026-01-28", - "method": "GET" -} -[2026-01-28T06:54:26.498Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/attendance/records?date=2026-01-28", - "statusCode": 404, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T06:54:27.379Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T06:54:35.584Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T06:55:05.667Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T06:55:35.783Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T06:56:05.878Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T06:56:35.984Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "6ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T06:57:06.069Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T06:57:36.160Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T06:57:58.767Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T06:57:58.779Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/attendance/records?date=2026-01-28", - "method": "GET" -} -[2026-01-28T06:57:58.780Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/attendance/records?date=2026-01-28", - "statusCode": 404, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T06:57:59.655Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T06:58:06.258Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T06:58:36.359Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T06:59:06.446Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T07:15:52.474Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T08:51:26.353Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T09:00:39.969Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T10:17:02.399Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T11:02:17.563Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T12:19:05.460Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T13:38:44.210Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T14:36:56.866Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T15:01:25.656Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T15:11:37.599Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T16:15:37.888Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T17:22:54.955Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T17:23:35.301Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T17:27:10.304Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T18:27:29.165Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T18:59:35.064Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T20:38:23.553Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T21:30:09.691Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T21:30:39.782Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T21:31:09.845Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T21:31:39.932Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T21:32:10.020Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T21:32:40.098Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T21:33:10.180Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T21:33:40.281Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T21:34:10.379Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T21:34:40.463Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T21:35:10.538Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T21:35:40.630Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T21:36:10.719Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T21:36:40.801Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T21:37:10.902Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T21:37:40.992Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T21:38:11.076Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T21:38:41.173Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T21:39:11.279Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T21:39:41.380Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T21:40:11.476Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T21:40:41.567Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T21:41:11.682Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T21:41:41.773Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T21:42:11.855Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T21:42:41.950Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T21:43:12.040Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T21:43:42.134Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T21:44:12.232Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T21:44:42.319Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T21:45:12.410Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T21:45:42.495Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T21:46:12.615Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T21:46:42.709Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T21:47:12.811Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T21:47:42.895Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T21:48:12.989Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T21:48:43.082Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T21:49:13.167Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T21:49:43.258Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T21:50:13.353Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T21:50:43.447Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T21:51:13.553Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T21:51:43.643Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T21:52:13.737Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T21:52:43.820Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T21:53:13.911Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T21:53:44.004Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T21:54:14.096Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T21:54:44.179Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T21:55:14.278Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T21:55:44.375Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T21:56:14.470Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T21:56:44.556Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T21:57:14.645Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T21:57:44.739Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T21:58:14.827Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T21:58:44.919Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T21:59:15.005Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T21:59:45.093Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T22:00:15.171Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T22:00:45.252Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T22:01:15.340Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T22:01:45.429Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T22:02:15.506Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T22:02:45.609Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T22:03:15.704Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T22:03:45.796Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T22:04:15.884Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T22:04:45.977Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T22:05:16.073Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T22:05:46.175Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T22:06:16.274Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T22:06:46.371Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T22:07:16.465Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T22:07:46.559Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T22:08:16.655Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T22:08:46.755Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T22:09:16.848Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T22:09:46.936Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T22:10:17.018Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T22:10:47.109Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T22:11:17.188Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T22:11:47.270Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T22:12:17.353Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T22:12:47.439Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T22:13:17.526Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T22:13:47.636Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T22:14:17.733Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T22:14:47.834Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T22:15:17.928Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T22:15:48.038Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T22:16:18.143Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T22:16:48.229Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T22:17:18.329Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T22:17:48.421Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T22:18:18.512Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T22:18:48.600Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T22:19:18.696Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T22:19:48.791Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T22:20:18.875Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T22:20:48.967Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T22:21:19.061Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T22:21:49.149Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T22:22:19.229Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T22:22:49.350Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T22:23:19.453Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T22:23:49.534Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T22:24:19.630Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T22:24:49.721Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T22:25:19.805Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T22:25:49.894Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T22:26:19.979Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T22:26:50.069Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T22:27:20.164Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T22:27:50.266Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T22:28:20.357Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T22:28:50.437Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T22:29:20.520Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T22:29:50.634Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T22:30:20.721Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T22:30:50.816Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T22:31:20.905Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T22:31:51.008Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T22:32:21.107Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T22:32:51.192Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T22:33:21.291Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T22:33:51.382Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T22:34:21.476Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T22:34:51.583Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T22:35:21.702Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T22:35:51.795Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T22:36:21.899Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T22:36:51.989Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T22:37:22.089Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T22:37:52.179Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T22:38:22.265Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T22:38:52.347Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T22:39:22.435Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T22:39:52.513Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T22:40:22.605Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T22:40:52.687Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T22:41:22.777Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T22:41:52.864Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T22:42:22.944Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T22:42:53.029Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T22:43:23.109Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T22:43:53.190Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T22:44:23.278Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T22:44:53.366Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T22:45:23.473Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T22:45:53.562Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T22:46:23.644Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T22:46:53.730Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T22:47:23.822Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T22:47:53.906Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T22:48:23.994Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T22:48:54.081Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T22:49:24.163Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T22:49:54.247Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T22:50:24.331Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T22:50:54.448Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T22:51:24.547Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T22:51:54.644Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T22:52:24.735Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T22:52:54.825Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T22:53:24.919Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T22:53:55.030Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T22:54:25.101Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T22:54:55.197Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T22:55:25.304Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T22:55:55.393Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T22:56:25.485Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T22:56:55.581Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T22:57:25.679Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T22:57:55.769Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T22:58:25.862Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T22:58:55.969Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T22:59:26.067Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T22:59:56.174Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T23:00:26.269Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T23:00:56.356Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T23:01:26.441Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T23:01:56.555Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T23:02:26.651Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T23:02:56.736Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T23:03:26.820Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T23:03:56.907Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T23:04:27.007Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T23:04:57.097Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T23:05:27.197Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T23:05:57.288Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T23:06:27.369Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T23:06:57.458Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T23:07:27.554Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T23:07:57.640Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T23:08:27.732Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T23:08:57.828Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T23:09:27.922Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T23:09:58.012Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T23:10:28.104Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T23:10:58.191Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T23:11:28.280Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T23:11:58.359Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T23:12:28.453Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T23:12:58.532Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T23:13:28.624Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T23:13:58.714Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T23:14:28.803Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T23:14:58.881Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T23:15:28.961Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T23:15:59.038Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T23:16:29.122Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T23:16:59.213Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T23:17:29.286Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T23:17:59.366Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T23:18:29.448Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T23:18:59.551Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T23:19:29.643Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T23:19:59.730Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T23:20:29.825Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T23:20:59.910Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T23:21:29.992Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T23:22:00.083Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T23:22:30.175Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T23:23:00.224Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T23:23:30.303Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T23:24:00.384Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T23:24:30.494Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T23:25:00.589Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T23:25:30.681Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T23:26:00.763Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T23:26:30.851Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T23:27:00.952Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T23:27:31.042Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T23:28:01.133Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T23:28:31.219Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T23:29:01.314Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T23:29:31.413Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T23:30:01.505Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T23:30:31.608Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T23:31:01.699Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T23:31:31.795Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T23:32:01.885Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T23:32:31.973Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T23:33:02.057Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T23:33:32.177Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T23:34:02.268Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T23:34:32.352Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T23:35:02.436Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T23:35:32.523Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T23:36:02.617Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T23:36:32.706Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T23:37:02.799Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T23:37:32.941Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "5ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T23:38:03.055Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T23:47:29.345Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T23:47:59.442Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T23:48:29.534Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T23:48:59.618Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T23:49:29.707Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T23:49:59.795Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T23:50:29.888Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T23:51:00.002Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T23:51:30.089Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T23:52:00.175Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T23:52:30.259Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T23:53:00.348Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T23:53:30.437Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T23:54:00.531Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T23:54:30.613Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T23:55:00.699Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T23:55:30.782Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T23:56:00.870Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T23:56:30.969Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T23:57:01.060Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T23:57:31.150Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T23:58:01.239Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T23:58:31.330Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T23:59:01.422Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-28T23:59:31.508Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T00:00:01.618Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T00:00:31.709Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T00:01:01.801Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T00:01:31.894Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T00:02:01.990Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T00:02:32.072Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T00:03:02.159Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T00:03:32.252Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T00:04:02.332Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T00:04:32.416Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T00:05:02.503Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T00:05:32.597Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T00:06:02.689Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T00:06:32.780Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T00:07:02.870Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T00:07:32.953Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T00:08:03.040Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T00:08:33.130Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T00:09:03.219Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T00:09:33.309Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T00:10:03.394Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T00:10:33.482Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T00:11:03.568Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T00:11:33.654Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T00:12:03.744Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T00:12:33.838Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T00:13:03.922Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T00:13:34.008Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T00:14:04.096Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T00:14:34.179Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T00:15:04.267Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T00:15:34.361Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T00:16:04.451Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T00:16:34.554Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T00:17:04.644Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T00:17:34.731Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T00:18:04.820Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T00:18:34.906Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T00:19:04.988Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T00:19:35.082Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T00:20:05.174Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T00:20:35.257Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T00:21:05.345Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T00:21:35.443Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T00:22:05.526Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T00:22:35.615Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T00:23:05.707Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T00:23:35.777Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T00:24:05.872Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T00:29:18.390Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T00:29:48.513Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T00:34:57.721Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T01:00:16.469Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T01:21:43.522Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T01:22:13.619Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T01:22:43.704Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T01:23:13.776Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T01:23:43.875Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T01:24:13.953Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T01:24:44.036Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T01:25:14.149Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T01:25:44.248Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T01:26:14.334Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T01:26:44.431Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T01:27:14.528Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T01:27:44.621Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T01:28:14.719Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T01:28:44.814Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T01:29:14.903Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T01:29:44.990Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T01:30:15.084Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T01:30:45.189Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T01:31:15.276Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T01:31:45.376Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T01:32:15.465Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T01:32:45.550Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T01:33:15.640Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T01:33:45.737Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T01:34:15.825Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T01:34:45.911Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T01:35:16.003Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T01:35:46.083Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T01:36:16.168Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T01:36:46.258Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T01:37:16.353Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T01:37:46.448Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T01:38:16.537Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T01:38:46.646Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T01:39:16.737Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T01:39:46.839Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T01:40:16.927Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T01:40:47.024Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T01:41:17.116Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T01:41:47.214Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T01:42:17.312Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T01:42:47.397Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T01:43:17.483Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T01:43:47.580Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T01:44:17.690Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T01:44:47.776Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T01:45:17.870Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T01:45:47.964Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T01:46:18.064Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T01:46:48.149Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T01:47:18.232Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T01:47:48.319Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T01:48:18.411Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T01:48:48.500Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T01:49:18.595Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T01:49:48.686Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T01:50:18.777Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T01:50:48.865Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T01:51:18.943Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T01:51:49.034Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T01:52:19.131Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T01:52:49.216Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T01:53:19.305Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T01:53:49.391Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T01:54:19.473Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T01:54:49.554Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T01:55:19.641Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T01:55:49.728Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T01:56:19.810Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T01:56:49.889Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T01:57:19.985Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T01:57:50.061Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T01:58:20.153Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T01:58:50.258Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T01:59:20.345Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T01:59:50.442Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T02:00:20.540Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T02:00:50.619Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T02:01:20.707Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T02:01:50.792Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T02:02:20.882Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T02:02:50.979Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T02:03:21.077Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T02:03:51.167Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T02:04:21.307Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T02:04:51.407Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T02:05:21.507Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T02:05:51.624Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T02:06:21.716Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T02:06:51.784Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T02:07:21.863Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T02:07:51.955Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T02:08:22.054Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T02:08:52.126Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T02:09:22.216Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T02:09:52.302Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T02:10:22.431Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T02:10:52.526Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T02:11:22.620Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T02:11:52.704Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T02:12:22.786Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T02:12:52.889Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T02:13:22.997Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T02:13:53.083Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T02:14:23.184Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T02:14:53.270Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T02:15:23.391Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T02:15:53.478Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T02:16:23.564Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T02:16:53.667Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T02:17:23.744Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T02:17:53.957Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "38ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T02:17:55.371Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T02:18:00.204Z] [WARN] ⚠️ 아이디 또는 비밀번호가 올바르지 않습니다. - Context: { - "code": "AUTHENTICATION_ERROR", - "url": "/api/auth/login", - "method": "POST", - "user": "anonymous" -} -[2026-01-29T02:18:00.205Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 401, - "duration": "79ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T02:18:02.518Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 200, - "duration": "85ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T02:18:02.974Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-29", - "requester": 1, - "isAdmin": false -} -[2026-01-29T02:18:02.978Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-29T02:18:02.979Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-29&view_all=true", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T02:18:02.982Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "15ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T02:18:03.860Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T02:18:11.998Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T02:18:12.010Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/attendance/records?start_date=2026-01-22&end_date=2026-01-29", - "method": "GET" -} -[2026-01-29T02:18:12.012Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/attendance/records?start_date=2026-01-22&end_date=2026-01-29", - "statusCode": 404, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T02:18:12.932Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T02:18:15.538Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/attendance/records?start_date=2026-01-22&end_date=2026-01-29", - "method": "GET" -} -[2026-01-29T02:18:15.541Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/attendance/records?start_date=2026-01-22&end_date=2026-01-29", - "statusCode": 404, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T02:18:24.070Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T02:18:54.180Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T02:19:24.276Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T02:19:54.368Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T02:20:24.465Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T02:20:54.560Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T02:21:24.646Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T02:21:54.736Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T02:22:23.678Z] [WARN] ⚠️ 인증 실패: Bearer 토큰 누락 - Context: { - "path": "/", - "method": "GET", - "ip": "::ffff:192.168.65.1" -} -[2026-01-29T02:22:23.680Z] [WARN] ⚠️ Bearer 토큰이 필요합니다 - Context: { - "code": "AUTHENTICATION_ERROR", - "url": "/api/pages", - "method": "GET", - "user": "anonymous" -} -[2026-01-29T02:22:23.683Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/pages", - "statusCode": 401, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-01-29T02:22:24.841Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T02:22:28.742Z] [WARN] ⚠️ 아이디 또는 비밀번호가 올바르지 않습니다. - Context: { - "code": "AUTHENTICATION_ERROR", - "url": "/api/auth/login", - "method": "POST", - "user": "anonymous" -} -[2026-01-29T02:22:28.743Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 401, - "duration": "84ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-01-29T02:22:33.813Z] [WARN] ⚠️ 아이디 또는 비밀번호가 올바르지 않습니다. - Context: { - "code": "AUTHENTICATION_ERROR", - "url": "/api/auth/login", - "method": "POST", - "user": "anonymous" -} -[2026-01-29T02:22:33.815Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 401, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-01-29T02:22:54.938Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T02:23:17.369Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2026-01-29T02:23:17.370Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-01-29T02:23:17.800Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-29T02:23:17.861Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-01-29T02:23:17.924Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2026-01-29T02:23:17.930Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-01-29T02:23:22.698Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T02:23:52.778Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T02:24:22.874Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T02:24:52.970Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T02:25:23.055Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T02:25:43.501Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-29", - "requester": 1, - "isAdmin": false -} -[2026-01-29T02:25:43.518Z] [INFO] ℹ️ MariaDB 연결 성공 - Context: { - "connection": "db:3306", - "database": "hyungi", - "connectionLimit": 10 -} -[2026-01-29T02:25:43.523Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-29T02:25:43.524Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-29&view_all=true", - "statusCode": 200, - "duration": "23ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T02:25:43.528Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "35ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T02:25:44.431Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T02:25:49.704Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T02:25:49.716Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/attendance/records?date=2026-01-29", - "method": "GET" -} -[2026-01-29T02:25:49.718Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/attendance/records?date=2026-01-29", - "statusCode": 404, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T02:25:49.720Z] [INFO] ℹ️ 출근 체크 목록 조회 요청 - Context: { - "date": "2026-01-29" -} -[2026-01-29T02:25:49.721Z] [ERROR] ❌ 출근 체크 목록 조회 실패 - Context: { - "date": "2026-01-29", - "error": "Unknown column 'vt.name' in 'field list'" -} -[2026-01-29T02:25:49.723Z] [ERROR] ❌ 출근 체크 목록 조회 중 데이터베이스 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 출근 체크 목록 조회 중 데이터베이스 오류가 발생했습니다\n at Object.getCheckinListService (/usr/src/app/services/attendanceService.js:270:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:162:16", - "url": "/api/attendance/checkin-list?date=2026-01-29", - "method": "GET", - "user": "admin" -} -[2026-01-29T02:25:49.724Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/attendance/checkin-list?date=2026-01-29", - "statusCode": 500, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T02:25:50.644Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T02:25:53.154Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T02:26:23.260Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T02:26:43.684Z] [WARN] ⚠️ 아이디 또는 비밀번호가 올바르지 않습니다. - Context: { - "code": "AUTHENTICATION_ERROR", - "url": "/api/auth/login", - "method": "POST", - "user": "anonymous" -} -[2026-01-29T02:26:43.684Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 401, - "duration": "75ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-01-29T02:26:53.345Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T02:27:03.646Z] [INFO] ℹ️ MariaDB 연결 성공 - Context: { - "connection": "db:3306", - "database": "hyungi", - "connectionLimit": 10 -} -[2026-01-29T02:27:23.440Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T02:27:53.539Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T02:28:23.637Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T02:28:53.722Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T02:29:23.814Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T02:29:38.002Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2026-01-29T02:29:38.003Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-01-29T02:29:38.406Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-29T02:29:38.470Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-01-29T02:29:38.533Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2026-01-29T02:29:38.538Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-01-29T02:29:43.320Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T02:29:47.752Z] [INFO] ℹ️ MariaDB 연결 성공 - Context: { - "connection": "db:3306", - "database": "hyungi", - "connectionLimit": 10 -} -[2026-01-29T02:30:13.391Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T02:30:43.468Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T02:31:13.540Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T02:31:43.635Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T02:32:13.718Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T02:32:43.816Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T02:33:13.923Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T02:33:44.009Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T02:34:14.102Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T02:34:44.195Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T02:35:14.295Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T02:35:44.383Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T02:36:14.480Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T02:36:44.579Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T02:37:14.670Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T02:37:44.749Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T02:38:14.848Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T02:38:44.929Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T02:39:15.016Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T02:39:45.118Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T02:40:15.214Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T02:40:45.311Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T02:41:15.407Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T02:41:45.503Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T02:42:15.596Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T02:42:45.700Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T02:43:15.792Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T02:43:45.880Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T02:44:15.976Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T02:44:46.075Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T02:45:16.162Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T02:45:46.264Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T02:46:16.354Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T02:46:46.439Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T02:47:16.532Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T02:47:46.649Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T02:48:16.736Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T02:48:46.834Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T02:49:16.927Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T02:49:47.015Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T02:50:17.104Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T02:50:47.193Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T02:51:17.291Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T02:51:47.375Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T02:52:17.475Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T02:52:47.560Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T02:53:17.652Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T02:53:47.734Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T02:54:17.827Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T02:54:47.912Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T02:55:18.003Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T02:55:48.103Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T02:56:18.205Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T02:56:48.312Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T02:57:18.406Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T02:57:48.509Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T02:58:18.594Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T02:58:48.682Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T02:59:18.783Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T02:59:48.868Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T03:00:18.956Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T03:00:49.047Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T03:01:19.146Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T03:01:49.246Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T03:02:19.342Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T03:02:49.433Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T03:03:19.520Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T03:03:49.612Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T03:04:19.698Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T03:04:49.782Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T03:05:19.877Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T03:05:49.967Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T03:06:20.061Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T03:06:50.157Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T03:07:20.240Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T03:07:50.338Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T03:08:20.426Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T03:08:50.510Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T03:09:20.594Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T03:09:50.678Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T03:10:20.769Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T03:10:50.863Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T03:11:20.950Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T03:11:51.038Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T03:12:21.132Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T03:12:51.216Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T03:13:21.312Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T03:13:51.404Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T03:14:21.497Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T03:14:51.588Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T03:15:21.685Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T03:15:51.774Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T03:16:21.865Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T03:16:51.965Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T03:17:22.051Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T03:17:52.150Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T03:18:22.242Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T03:18:52.324Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T03:19:22.409Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T03:19:52.502Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T03:20:22.593Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T03:20:52.688Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T03:21:22.776Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T03:21:52.866Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T03:22:22.957Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T03:22:53.036Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T03:23:23.112Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T03:23:53.220Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T03:24:23.312Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T03:24:53.420Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T03:25:23.514Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T03:25:53.595Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T03:26:23.693Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T03:26:53.789Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T03:27:23.896Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T03:27:53.983Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T03:28:24.061Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T03:28:54.161Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T03:29:24.253Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T03:29:54.353Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T03:30:24.567Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T03:30:34.516Z] [INFO] ℹ️ MariaDB 연결 성공 - Context: { - "connection": "db:3306", - "database": "hyungi", - "connectionLimit": 10 -} -[2026-01-29T03:30:34.525Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "32ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T03:30:34.534Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/attendance/records?date=2026-01-29", - "method": "GET" -} -[2026-01-29T03:30:34.534Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/attendance/records?date=2026-01-29", - "statusCode": 404, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T03:30:34.536Z] [INFO] ℹ️ 출근 체크 목록 조회 요청 - Context: { - "date": "2026-01-29" -} -[2026-01-29T03:30:34.539Z] [INFO] ℹ️ 출근 체크 목록 조회 성공 - Context: { - "date": "2026-01-29", - "count": 10 -} -[2026-01-29T03:30:34.539Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/checkin-list?date=2026-01-29", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T03:30:35.375Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T03:30:48.082Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-29", - "requester": 1, - "isAdmin": false -} -[2026-01-29T03:30:48.086Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T03:30:48.087Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-29T03:30:48.088Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-29&view_all=true", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T03:30:49.070Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T03:30:52.547Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T03:30:54.670Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T03:30:55.116Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T03:30:56.508Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/attendance/records?worker_id=12&start_date=2026-01-01&end_date=2026-01-31", - "method": "GET" -} -[2026-01-29T03:30:56.511Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/attendance/records?worker_id=12&start_date=2026-01-01&end_date=2026-01-31", - "statusCode": 404, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T03:31:06.960Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T03:31:06.963Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-29", - "requester": 1, - "isAdmin": false -} -[2026-01-29T03:31:06.967Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-29T03:31:06.969Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-29&view_all=true", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T03:31:07.953Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T03:31:24.767Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T03:31:54.873Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T03:32:25.053Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T03:32:55.141Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T03:32:55.754Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-29", - "requester": 1, - "isAdmin": false -} -[2026-01-29T03:32:55.793Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-29T03:32:55.798Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-29&view_all=true", - "statusCode": 200, - "duration": "48ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T03:32:55.800Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "68ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T03:32:56.698Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T03:32:59.232Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T03:32:59.245Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/attendance/records?date=2026-01-29", - "method": "GET" -} -[2026-01-29T03:32:59.247Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/attendance/records?date=2026-01-29", - "statusCode": 404, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T03:32:59.249Z] [INFO] ℹ️ 출근 체크 목록 조회 요청 - Context: { - "date": "2026-01-29" -} -[2026-01-29T03:32:59.252Z] [INFO] ℹ️ 출근 체크 목록 조회 성공 - Context: { - "date": "2026-01-29", - "count": 10 -} -[2026-01-29T03:32:59.253Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/checkin-list?date=2026-01-29", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T03:33:00.170Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T03:33:03.097Z] [INFO] ℹ️ 출근 체크 목록 조회 요청 - Context: { - "date": "2026-01-29" -} -[2026-01-29T03:33:03.104Z] [INFO] ℹ️ 출근 체크 목록 조회 성공 - Context: { - "date": "2026-01-29", - "count": 10 -} -[2026-01-29T03:33:03.109Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/attendance/checkin-list?date=2026-01-29", - "statusCode": 304, - "duration": "16ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T03:33:04.037Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T03:33:15.031Z] [INFO] ℹ️ 출근 체크 일괄 저장 요청 - Context: { - "date": "2026-01-29", - "count": 10 -} -[2026-01-29T03:33:15.046Z] [INFO] ℹ️ 출근 체크 일괄 저장 성공 - Context: { - "date": "2026-01-29", - "saved": 10 -} -[2026-01-29T03:33:15.047Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/checkins", - "statusCode": 200, - "duration": "18ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T03:33:17.591Z] [INFO] ℹ️ 출근 체크 목록 조회 요청 - Context: { - "date": "2026-01-29" -} -[2026-01-29T03:33:17.593Z] [INFO] ℹ️ 출근 체크 목록 조회 성공 - Context: { - "date": "2026-01-29", - "count": 10 -} -[2026-01-29T03:33:17.594Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/checkin-list?date=2026-01-29", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T03:33:22.300Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T03:33:22.310Z] [INFO] ℹ️ 출근 체크 목록 조회 요청 - Context: { - "date": "2026-01-29" -} -[2026-01-29T03:33:22.314Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/attendance/records?date=2026-01-29", - "method": "GET" -} -[2026-01-29T03:33:22.314Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/attendance/records?date=2026-01-29", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T03:33:22.315Z] [INFO] ℹ️ 출근 체크 목록 조회 성공 - Context: { - "date": "2026-01-29", - "count": 10 -} -[2026-01-29T03:33:22.316Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/attendance/checkin-list?date=2026-01-29", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T03:33:23.240Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T03:33:25.239Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T03:33:55.342Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T03:34:25.471Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T03:34:55.596Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T03:35:21.251Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T03:35:21.262Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/attendance/records?date=2026-01-29", - "method": "GET" -} -[2026-01-29T03:35:21.263Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/attendance/records?date=2026-01-29", - "statusCode": 404, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T03:35:21.265Z] [INFO] ℹ️ 출근 체크 목록 조회 요청 - Context: { - "date": "2026-01-29" -} -[2026-01-29T03:35:21.269Z] [INFO] ℹ️ 출근 체크 목록 조회 성공 - Context: { - "date": "2026-01-29", - "count": 10 -} -[2026-01-29T03:35:21.274Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/checkin-list?date=2026-01-29", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T03:35:22.049Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T03:35:25.713Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T03:35:33.974Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-29", - "requester": 1, - "isAdmin": false -} -[2026-01-29T03:35:33.978Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 304, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T03:35:33.979Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-29T03:35:33.979Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-29&view_all=true", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T03:35:34.930Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T03:35:36.013Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "28ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T03:35:36.018Z] [WARN] ⚠️ 권한 체크 실패: 역할 불일치 - Context: { - "user_id": 1, - "username": "admin", - "current_role": "Admin", - "required_roles": [ - "system" - ], - "path": "/vacation-types" -} -[2026-01-29T03:35:36.019Z] [WARN] ⚠️ 이 기능을 사용하려면 system 권한이 필요합니다 - Context: { - "code": "FORBIDDEN", - "url": "/api/system/vacation-types", - "method": "GET", - "user": "admin" -} -[2026-01-29T03:35:36.020Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/system/vacation-types", - "statusCode": 403, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T03:35:36.942Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T03:35:41.189Z] [ERROR] ❌ 처리되지 않은 Promise 거부 - Context: { - "reason": {}, - "promise": {} -} -[2026-01-29T03:35:55.809Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T03:36:25.909Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T03:36:56.015Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T03:37:26.107Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T03:37:56.251Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T03:38:26.343Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T03:38:56.429Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T03:39:26.538Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T03:39:56.610Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T03:40:26.685Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T03:40:56.789Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T03:41:26.868Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T03:41:56.958Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T03:42:27.046Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T03:42:57.141Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T03:43:27.235Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T03:43:57.388Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T03:44:27.595Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T03:44:57.712Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T03:45:27.801Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T03:45:57.902Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T03:46:28.000Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T03:46:58.091Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T03:47:28.186Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T03:47:58.288Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T03:48:28.377Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T03:48:52.660Z] [WARN] ⚠️ 인증 실패: Bearer 토큰 누락 - Context: { - "path": "/", - "method": "GET", - "ip": "::ffff:192.168.65.1" -} -[2026-01-29T03:48:52.663Z] [WARN] ⚠️ Bearer 토큰이 필요합니다 - Context: { - "code": "AUTHENTICATION_ERROR", - "url": "/api/pages", - "method": "GET", - "user": "anonymous" -} -[2026-01-29T03:48:52.665Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/pages", - "statusCode": 401, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-01-29T03:48:58.540Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "6ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T03:48:58.879Z] [WARN] ⚠️ 아이디 또는 비밀번호가 올바르지 않습니다. - Context: { - "code": "AUTHENTICATION_ERROR", - "url": "/api/auth/login", - "method": "POST", - "user": "anonymous" -} -[2026-01-29T03:48:58.879Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 401, - "duration": "98ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-01-29T03:49:28.638Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T03:49:58.720Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T03:50:28.831Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T03:50:58.911Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T03:51:29.010Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T03:51:57.783Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-29", - "requester": 1, - "isAdmin": false -} -[2026-01-29T03:51:57.789Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-29T03:51:57.790Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-29&view_all=true", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T03:51:57.798Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "20ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T03:51:58.776Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T03:51:59.109Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T03:52:00.673Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-29", - "requester": 1, - "isAdmin": false -} -[2026-01-29T03:52:00.682Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-29T03:52:00.684Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-29&view_all=true", - "statusCode": 304, - "duration": "12ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T03:52:00.686Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "17ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T03:52:29.219Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T03:52:59.309Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T03:53:29.417Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T03:53:59.506Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T03:54:29.611Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T03:54:45.844Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T03:54:51.761Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-29", - "requester": 1, - "isAdmin": false -} -[2026-01-29T03:54:51.771Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "28ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T03:54:51.787Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-29T03:54:51.792Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-29&view_all=true", - "statusCode": 200, - "duration": "32ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T03:54:52.720Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T03:54:59.721Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T03:55:29.844Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T03:55:59.933Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T03:56:30.015Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T03:57:00.112Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T03:57:16.945Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-29", - "requester": 1, - "isAdmin": false -} -[2026-01-29T03:57:16.979Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-29T03:57:16.982Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-29&view_all=true", - "statusCode": 200, - "duration": "39ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T03:57:16.988Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "64ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T03:57:17.919Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T03:57:18.737Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T03:57:18.747Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/attendance/records?date=2026-01-29", - "method": "GET" -} -[2026-01-29T03:57:18.748Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/attendance/records?date=2026-01-29", - "statusCode": 404, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T03:57:18.751Z] [INFO] ℹ️ 출근 체크 목록 조회 요청 - Context: { - "date": "2026-01-29" -} -[2026-01-29T03:57:18.753Z] [INFO] ℹ️ 출근 체크 목록 조회 성공 - Context: { - "date": "2026-01-29", - "count": 10 -} -[2026-01-29T03:57:18.754Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/checkin-list?date=2026-01-29", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T03:57:19.679Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T03:57:30.221Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T03:58:00.305Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T03:58:02.479Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-29", - "requester": 1, - "isAdmin": false -} -[2026-01-29T03:58:02.482Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T03:58:02.483Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-29T03:58:02.484Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-29&view_all=true", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T03:58:03.474Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T03:58:13.549Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-29", - "requester": 1, - "isAdmin": false -} -[2026-01-29T03:58:13.552Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T03:58:13.553Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-29T03:58:13.555Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-29&view_all=true", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T03:58:14.545Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T03:58:26.447Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-29", - "requester": 1, - "isAdmin": false -} -[2026-01-29T03:58:26.450Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-29T03:58:26.451Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-29&view_all=true", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T03:58:26.454Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T03:58:27.433Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T03:58:30.376Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T03:59:00.502Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T03:59:30.635Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T04:00:00.777Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T04:00:30.887Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T04:01:00.972Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T04:01:31.072Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T04:02:01.153Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T04:02:31.246Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T04:03:01.353Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T04:03:16.635Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-29", - "requester": 1, - "isAdmin": false -} -[2026-01-29T04:03:16.637Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-29T04:03:16.638Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-29&view_all=true", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T04:03:16.641Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T04:03:17.627Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T04:03:26.328Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T04:03:31.439Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T04:04:01.536Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T04:04:31.631Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T04:05:01.716Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T04:05:31.802Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T04:06:01.890Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T04:06:31.977Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T04:07:02.071Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T04:07:32.169Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T04:08:02.254Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T04:08:32.346Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T04:09:02.446Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T04:09:32.530Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T04:09:53.893Z] [WARN] ⚠️ 인증 실패: Bearer 토큰 누락 - Context: { - "path": "/", - "method": "GET", - "ip": "::ffff:192.168.65.1" -} -[2026-01-29T04:09:53.895Z] [WARN] ⚠️ Bearer 토큰이 필요합니다 - Context: { - "code": "AUTHENTICATION_ERROR", - "url": "/api/pages", - "method": "GET", - "user": "anonymous" -} -[2026-01-29T04:09:53.896Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/pages", - "statusCode": 401, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-01-29T04:10:02.611Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T04:10:05.046Z] [WARN] ⚠️ 인증 실패: Bearer 토큰 누락 - Context: { - "path": "/", - "method": "GET", - "ip": "::ffff:192.168.65.1" -} -[2026-01-29T04:10:05.047Z] [WARN] ⚠️ Bearer 토큰이 필요합니다 - Context: { - "code": "AUTHENTICATION_ERROR", - "url": "/api/pages", - "method": "GET", - "user": "anonymous" -} -[2026-01-29T04:10:05.049Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/pages", - "statusCode": 401, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-01-29T04:10:32.698Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T04:11:02.772Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T04:11:18.558Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2026-01-29T04:11:18.560Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-01-29T04:11:18.972Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-29T04:11:19.041Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-01-29T04:11:19.110Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2026-01-29T04:11:19.117Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-01-29T04:11:23.862Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T04:11:53.957Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T04:12:24.044Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T04:12:47.160Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-29", - "requester": 1, - "isAdmin": false -} -[2026-01-29T04:12:47.185Z] [INFO] ℹ️ MariaDB 연결 성공 - Context: { - "connection": "db:3306", - "database": "hyungi", - "connectionLimit": 10 -} -[2026-01-29T04:12:47.193Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-29T04:12:47.195Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-29&view_all=true", - "statusCode": 200, - "duration": "37ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T04:12:47.203Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "53ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T04:12:48.145Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T04:12:50.113Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-29", - "requester": 1, - "isAdmin": false -} -[2026-01-29T04:12:50.118Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-29T04:12:50.119Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-29&view_all=true", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T04:12:50.122Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T04:12:51.110Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T04:12:54.154Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T04:12:58.594Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T04:13:00.091Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-29", - "requester": 1, - "isAdmin": false -} -[2026-01-29T04:13:00.094Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T04:13:00.095Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-29T04:13:00.097Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-29&view_all=true", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T04:13:01.090Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T04:13:24.249Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T04:13:50.040Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-29", - "requester": 1, - "isAdmin": false -} -[2026-01-29T04:13:50.042Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T04:13:50.042Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-29T04:13:50.043Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-29&view_all=true", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T04:13:51.032Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T04:13:53.260Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T04:13:53.286Z] [INFO] ℹ️ 휴가 유형 목록 조회 요청 -[2026-01-29T04:13:53.289Z] [ERROR] ❌ 휴가 유형 목록 조회 실패 - Context: { - "error": "Unknown column 'hours_deduction' in 'field list'" -} -[2026-01-29T04:13:53.293Z] [ERROR] ❌ 휴가 유형 목록 조회 중 데이터베이스 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 휴가 유형 목록 조회 중 데이터베이스 오류가 발생했습니다\n at Object.getVacationTypesService (/usr/src/app/services/attendanceService.js:201:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:116:16", - "url": "/api/attendance/vacation-types", - "method": "GET", - "user": "admin" -} -[2026-01-29T04:13:53.295Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/attendance/vacation-types", - "statusCode": 500, - "duration": "15ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T04:13:54.337Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T04:13:56.010Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T04:14:24.428Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T04:14:54.519Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T04:15:03.729Z] [INFO] ℹ️ 휴가 유형 목록 조회 요청 -[2026-01-29T04:15:03.731Z] [ERROR] ❌ 휴가 유형 목록 조회 실패 - Context: { - "error": "Unknown column 'hours_deduction' in 'field list'" -} -[2026-01-29T04:15:03.734Z] [ERROR] ❌ 휴가 유형 목록 조회 중 데이터베이스 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 휴가 유형 목록 조회 중 데이터베이스 오류가 발생했습니다\n at Object.getVacationTypesService (/usr/src/app/services/attendanceService.js:201:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:116:16", - "url": "/api/attendance/vacation-types", - "method": "GET", - "user": "admin" -} -[2026-01-29T04:15:03.735Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/attendance/vacation-types", - "statusCode": 500, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "curl/8.7.1" -} -[2026-01-29T04:15:24.608Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T04:15:54.691Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T04:15:57.423Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2026-01-29T04:15:57.424Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-01-29T04:15:57.865Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-29T04:15:57.932Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-01-29T04:15:58.000Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2026-01-29T04:15:58.003Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-01-29T04:16:02.752Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T04:16:12.081Z] [INFO] ℹ️ 휴가 유형 목록 조회 요청 -[2026-01-29T04:16:12.097Z] [INFO] ℹ️ MariaDB 연결 성공 - Context: { - "connection": "db:3306", - "database": "hyungi", - "connectionLimit": 10 -} -[2026-01-29T04:16:12.101Z] [INFO] ℹ️ 휴가 유형 목록 조회 성공 - Context: { - "count": 4 -} -[2026-01-29T04:16:12.103Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/vacation-types", - "statusCode": 200, - "duration": "29ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "curl/8.7.1" -} -[2026-01-29T04:16:32.811Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T04:16:36.022Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T04:16:36.029Z] [INFO] ℹ️ 휴가 유형 목록 조회 요청 -[2026-01-29T04:16:36.030Z] [INFO] ℹ️ 휴가 유형 목록 조회 성공 - Context: { - "count": 4 -} -[2026-01-29T04:16:36.031Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/vacation-types", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T04:16:36.038Z] [ERROR] ❌ 처리되지 않은 Promise 거부 - Context: { - "reason": {}, - "promise": {} -} -[2026-01-29T04:16:36.951Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T04:17:02.897Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T04:17:32.963Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T04:18:03.059Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T04:18:33.150Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T04:19:03.257Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T04:19:33.352Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T04:20:03.433Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T04:20:33.529Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T04:21:03.646Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T04:21:33.754Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T04:22:03.911Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "7ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T04:22:33.987Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T04:23:04.060Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T04:23:34.134Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T04:24:04.220Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T04:24:34.294Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T04:25:04.365Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T04:25:34.434Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T04:26:04.501Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T04:26:34.569Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T04:27:04.650Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T04:27:34.730Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T04:28:04.814Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T04:28:34.912Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T04:29:04.986Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T04:29:35.068Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T04:30:05.144Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T04:30:35.235Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T04:31:05.313Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T04:31:35.414Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T04:32:05.513Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T04:32:35.605Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T04:33:05.691Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T04:33:35.775Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T04:34:05.870Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T04:34:35.955Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T04:35:06.048Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T04:35:36.299Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T04:35:37.682Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2026-01-29T04:35:48.212Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-29T04:35:48.292Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-01-29T04:35:48.367Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2026-01-29T04:35:48.375Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-01-29T04:35:53.054Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T04:36:18.564Z] [INFO] ℹ️ MariaDB 연결 성공 - Context: { - "connection": "db:3306", - "database": "hyungi", - "connectionLimit": 10 -} -[2026-01-29T04:36:18.565Z] [ERROR] ❌ 처리되지 않은 Promise 거부 - Context: { - "reason": {}, - "promise": {} -} -[2026-01-29T04:36:23.140Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T04:36:53.226Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T04:37:23.310Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T04:37:53.397Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T04:38:23.488Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T04:38:53.573Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T04:39:23.672Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T04:39:53.757Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T04:40:12.453Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "16ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T04:40:12.479Z] [INFO] ℹ️ 휴가 유형 목록 조회 요청 -[2026-01-29T04:40:12.482Z] [INFO] ℹ️ 휴가 유형 목록 조회 성공 - Context: { - "count": 4 -} -[2026-01-29T04:40:12.483Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/vacation-types", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T04:40:12.488Z] [ERROR] ❌ 처리되지 않은 Promise 거부 - Context: { - "reason": {}, - "promise": {} -} -[2026-01-29T04:40:13.269Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T04:40:16.415Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-29", - "requester": 1, - "isAdmin": false -} -[2026-01-29T04:40:16.418Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "15ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T04:40:16.420Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-29T04:40:16.421Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-29&view_all=true", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T04:40:17.406Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T04:40:23.857Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T04:40:25.133Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T04:40:26.520Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-29", - "requester": 1, - "isAdmin": false -} -[2026-01-29T04:40:26.523Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T04:40:26.525Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-29T04:40:26.527Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-29&view_all=true", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T04:40:28.440Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T04:40:28.462Z] [INFO] ℹ️ 휴가 유형 목록 조회 요청 -[2026-01-29T04:40:28.465Z] [INFO] ℹ️ 휴가 유형 목록 조회 성공 - Context: { - "count": 4 -} -[2026-01-29T04:40:28.467Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/vacation-types", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T04:40:28.482Z] [ERROR] ❌ 처리되지 않은 Promise 거부 - Context: { - "reason": {}, - "promise": {} -} -[2026-01-29T04:40:29.313Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T04:40:30.970Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-29", - "requester": 1, - "isAdmin": false -} -[2026-01-29T04:40:30.972Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T04:40:30.974Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-29T04:40:30.975Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-29&view_all=true", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T04:40:31.939Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T04:40:53.951Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T04:41:24.038Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T04:41:54.139Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T04:42:24.230Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T04:42:54.303Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T04:43:00.499Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2026-01-29T04:43:10.957Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-29T04:43:11.027Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-01-29T04:43:11.097Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2026-01-29T04:43:11.104Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-01-29T04:43:15.848Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T04:43:45.956Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T04:44:16.043Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T04:44:46.108Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T04:45:16.202Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T04:45:46.297Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T04:46:16.385Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T04:46:46.477Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T04:47:16.583Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T04:47:46.680Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T04:48:16.772Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T04:48:46.860Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T04:49:16.944Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T04:49:47.021Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T04:50:17.115Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T04:50:47.217Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T04:51:17.324Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T04:51:47.404Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T04:52:17.471Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T04:52:47.556Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T04:52:50.357Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-29", - "requester": 1, - "isAdmin": false -} -[2026-01-29T04:52:50.377Z] [INFO] ℹ️ MariaDB 연결 성공 - Context: { - "connection": "db:3306", - "database": "hyungi", - "connectionLimit": 10 -} -[2026-01-29T04:52:50.381Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-29T04:52:50.381Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-29&view_all=true", - "statusCode": 200, - "duration": "31ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T04:52:50.387Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "25ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T04:52:51.350Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T04:52:58.978Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T04:53:17.648Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T04:53:41.242Z] [WARN] ⚠️ 인증 실패: Bearer 토큰 누락 - Context: { - "path": "/", - "method": "GET", - "ip": "::ffff:192.168.65.1" -} -[2026-01-29T04:53:41.245Z] [WARN] ⚠️ Bearer 토큰이 필요합니다 - Context: { - "code": "AUTHENTICATION_ERROR", - "url": "/api/workers", - "method": "GET", - "user": "anonymous" -} -[2026-01-29T04:53:41.249Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 401, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-01-29T04:53:46.868Z] [WARN] ⚠️ 아이디 또는 비밀번호가 올바르지 않습니다. - Context: { - "code": "AUTHENTICATION_ERROR", - "url": "/api/auth/login", - "method": "POST", - "user": "anonymous" -} -[2026-01-29T04:53:46.870Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 401, - "duration": "86ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-01-29T04:53:47.797Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T04:54:46.347Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T04:55:16.460Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T04:59:14.185Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T04:59:44.290Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T05:00:14.385Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T05:00:44.461Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T05:01:14.573Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T05:01:44.787Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T05:01:45.712Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:02:14.875Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T05:02:19.155Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-29", - "requester": 1, - "isAdmin": false -} -[2026-01-29T05:02:19.162Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-29T05:02:19.163Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-29&view_all=true", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:02:19.169Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "21ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:02:20.140Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:02:24.014Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:02:44.943Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T05:03:15.027Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T05:03:45.109Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T05:04:15.198Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T05:04:45.300Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T05:05:15.393Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T05:05:45.485Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T05:06:15.576Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T05:06:45.669Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T05:06:59.473Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-29", - "requester": 1, - "isAdmin": false -} -[2026-01-29T05:06:59.475Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "14ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:06:59.476Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-29T05:06:59.477Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-29&view_all=true", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:07:00.461Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:07:15.753Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T05:07:45.840Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T05:08:09.286Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-29", - "requester": 1, - "isAdmin": false -} -[2026-01-29T05:08:09.288Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-29T05:08:09.288Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-29&view_all=true", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:08:09.291Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:08:10.217Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:08:13.019Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/api/vacation-types", - "method": "GET" -} -[2026-01-29T05:08:13.021Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/api/vacation-types", - "statusCode": 404, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:08:13.101Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/api/vacation-balances/year/2026", - "method": "GET" -} -[2026-01-29T05:08:13.103Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/api/vacation-balances/year/2026", - "statusCode": 404, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:08:13.967Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:08:15.928Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T05:08:31.014Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2026-01-29T05:08:31.016Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-01-29T05:08:31.495Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-29T05:08:31.564Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-01-29T05:08:31.635Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2026-01-29T05:08:31.642Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-01-29T05:08:36.375Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T05:09:06.463Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T05:09:36.563Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T05:10:06.657Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T05:10:36.758Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T05:11:06.849Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T05:11:36.944Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T05:12:07.029Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T05:12:37.119Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T05:13:07.209Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T05:13:37.324Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T05:14:07.415Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T05:14:37.507Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T05:15:07.598Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T05:15:09.635Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-29", - "requester": 1, - "isAdmin": false -} -[2026-01-29T05:15:09.656Z] [INFO] ℹ️ MariaDB 연결 성공 - Context: { - "connection": "db:3306", - "database": "hyungi", - "connectionLimit": 10 -} -[2026-01-29T05:15:09.667Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-29T05:15:09.668Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-29&view_all=true", - "statusCode": 200, - "duration": "34ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:15:09.677Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "58ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:15:10.613Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:15:37.716Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "8ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T05:16:07.798Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T05:16:37.881Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T05:17:07.948Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T05:17:38.036Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T05:18:08.111Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T05:18:38.182Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T05:18:47.270Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-29", - "requester": 1, - "isAdmin": false -} -[2026-01-29T05:18:47.275Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:18:47.276Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-29T05:18:47.276Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-29&view_all=true", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:18:48.258Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:18:50.956Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/api/vacation-types", - "method": "GET" -} -[2026-01-29T05:18:50.958Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/api/vacation-types", - "statusCode": 404, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:18:51.012Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/api/vacation-balances/year/2026", - "method": "GET" -} -[2026-01-29T05:18:51.014Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/api/vacation-balances/year/2026", - "statusCode": 404, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:18:51.872Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:19:08.279Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T05:19:38.372Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T05:20:08.461Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T05:20:38.557Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T05:21:08.661Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T05:21:38.758Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T05:22:08.842Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T05:22:38.940Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T05:23:09.032Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T05:23:39.127Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T05:24:09.220Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T05:24:39.304Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T05:25:09.402Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T05:25:39.483Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T05:26:09.583Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T05:26:39.693Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T05:27:09.777Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T05:27:39.852Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T05:28:06.436Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2026-01-29T05:28:06.438Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-01-29T05:28:06.891Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-29T05:28:06.963Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-01-29T05:28:07.038Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2026-01-29T05:28:07.045Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-01-29T05:28:11.760Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T05:28:28.381Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2026-01-29T05:28:28.383Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-01-29T05:28:28.785Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-29T05:28:28.851Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-01-29T05:28:28.914Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2026-01-29T05:28:28.920Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-01-29T05:28:33.692Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T05:28:47.897Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-29", - "requester": 1, - "isAdmin": false -} -[2026-01-29T05:28:47.926Z] [INFO] ℹ️ MariaDB 연결 성공 - Context: { - "connection": "db:3306", - "database": "hyungi", - "connectionLimit": 10 -} -[2026-01-29T05:28:47.933Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-29T05:28:47.934Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-29&view_all=true", - "statusCode": 200, - "duration": "38ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:28:47.953Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "61ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:28:48.882Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:28:52.747Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:28:53.733Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:28:56.679Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:28:56.682Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:28:56.858Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/2", - "statusCode": 200, - "duration": "23ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:28:56.862Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/7", - "statusCode": 200, - "duration": "24ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:28:56.876Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/1", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:28:56.881Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/11", - "statusCode": 200, - "duration": "14ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:28:56.886Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/4", - "statusCode": 200, - "duration": "48ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:28:56.887Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/9", - "statusCode": 200, - "duration": "47ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:28:56.890Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/10", - "statusCode": 200, - "duration": "45ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:28:56.893Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/8", - "statusCode": 200, - "duration": "15ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:28:56.897Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/12", - "statusCode": 200, - "duration": "14ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:28:56.901Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/6", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:28:56.903Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/5", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:28:56.905Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/3", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:28:57.664Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:28:58.125Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/2", - "statusCode": 200, - "duration": "18ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:28:58.129Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/10", - "statusCode": 200, - "duration": "19ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:28:58.133Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/9", - "statusCode": 200, - "duration": "19ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:28:58.136Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/1", - "statusCode": 200, - "duration": "21ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:28:58.140Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/11", - "statusCode": 200, - "duration": "23ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:28:58.155Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/7", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:28:58.160Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/4", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:28:58.164Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/3", - "statusCode": 200, - "duration": "15ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:28:58.168Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/12", - "statusCode": 200, - "duration": "17ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:28:58.171Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/6", - "statusCode": 200, - "duration": "18ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:28:58.181Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/8", - "statusCode": 200, - "duration": "62ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:28:58.185Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/5", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:28:58.193Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:29:03.820Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T05:29:06.161Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:29:12.598Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:29:24.733Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-29", - "requester": 1, - "isAdmin": false -} -[2026-01-29T05:29:24.742Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-29T05:29:24.743Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-29&view_all=true", - "statusCode": 200, - "duration": "14ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:29:24.752Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "26ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:29:25.715Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:29:33.901Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T05:29:35.538Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:29:35.598Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects?is_active=1", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:29:35.676Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/safety-checks", - "statusCode": 200, - "duration": "14ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:29:35.782Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:29:35.796Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks/active/list", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:29:35.810Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?is_active=true", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:29:35.867Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/active/list", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:29:35.891Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-29", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:29:36.529Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:30:04.001Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T05:30:19.815Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:30:19.840Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:30:34.082Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T05:30:54.521Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/tbm/sessions", - "statusCode": 201, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:30:54.541Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/tbm/sessions/8/team/batch", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:30:54.567Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-29", - "statusCode": 200, - "duration": "17ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:30:57.679Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-29", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:31:00.829Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-27", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:31:04.181Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T05:31:07.999Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-29", - "requester": 1, - "isAdmin": false -} -[2026-01-29T05:31:08.002Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:31:08.003Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-29T05:31:08.004Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-29&view_all=true", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:31:08.989Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:31:12.047Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:31:12.214Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects?is_active=1", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:31:12.233Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/safety-checks", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:31:12.238Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:31:12.243Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks/active/list", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:31:12.257Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?is_active=true", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:31:12.261Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/active/list", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:31:12.266Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-29", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:31:13.042Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:31:34.284Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T05:31:38.420Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:31:38.435Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:31:43.282Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/tbm/sessions", - "statusCode": 201, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:31:43.297Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/tbm/sessions/9/team/batch", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:31:43.307Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-29", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:31:49.298Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-29", - "requester": 1, - "isAdmin": false -} -[2026-01-29T05:31:49.301Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-29T05:31:49.302Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-29&view_all=true", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:31:49.304Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:31:50.291Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:31:54.612Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:31:54.829Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:31:54.843Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:31:54.857Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:31:54.863Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:31:54.869Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:31:55.614Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:32:04.376Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T05:32:34.465Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T05:33:01.306Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports/from-tbm", - "statusCode": 201, - "duration": "21ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:33:01.316Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports/from-tbm", - "statusCode": 201, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:33:01.347Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports/from-tbm", - "statusCode": 201, - "duration": "15ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:33:01.382Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "22ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:33:04.561Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T05:33:34.663Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T05:33:59.616Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2026-01-29T05:33:59.621Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-01-29T05:39:43.114Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-29T05:40:24.533Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-29T05:40:24.570Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-01-29T05:40:24.681Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v24.4.0" -} -[2026-01-29T05:40:24.689Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-01-29T05:40:59.348Z] [INFO] ℹ️ MariaDB 연결 성공 - Context: { - "connection": "localhost:20306", - "database": "hyungi", - "connectionLimit": 10 -} -[2026-01-29T05:40:59.449Z] [WARN] ⚠️ 아이디 또는 비밀번호가 올바르지 않습니다. - Context: { - "code": "AUTHENTICATION_ERROR", - "url": "/api/auth/login", - "method": "POST", - "user": "anonymous" -} -[2026-01-29T05:40:59.451Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 401, - "duration": "24028ms", - "ip": "::1", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-01-29T05:41:03.976Z] [ERROR] ❌ Bad escaped character in JSON at position 42 (line 1 column 43) - Context: { - "code": "INTERNAL_ERROR", - "stack": "AppError: Bad escaped character in JSON at position 42 (line 1 column 43)\n at errorHandler (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/middlewares/errorHandler.js:51:13)\n at Layer.handle_error (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/router/layer.js:71:5)\n at trim_prefix (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/router/index.js:326:13)\n at /Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/router/index.js:286:9\n at router.process_params (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/router/index.js:346:12)\n at next (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/router/index.js:280:10)\n at Layer.handle_error (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/router/layer.js:67:12)\n at trim_prefix (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/router/index.js:326:13)\n at /Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/router/index.js:286:9\n at router.process_params (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/router/index.js:346:12)", - "url": "/api/auth/login", - "method": "POST", - "user": "anonymous" -} -[2026-01-29T05:41:16.481Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-29T05:41:16.587Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-01-29T05:41:16.722Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2026-01-29T05:41:16.729Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-01-29T05:41:21.031Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "5ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T05:41:29.294Z] [INFO] ℹ️ MariaDB 연결 성공 - Context: { - "connection": "db:3306", - "database": "hyungi", - "connectionLimit": 10 -} -[2026-01-29T05:41:29.304Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "35ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:41:29.355Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:41:29.363Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:41:29.370Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:41:29.431Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:41:29.441Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:41:30.268Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:41:38.075Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports/from-tbm", - "statusCode": 201, - "duration": "18ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:41:38.083Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:41:51.124Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T05:42:21.219Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T05:42:22.846Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:42:22.916Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:42:22.927Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:42:22.987Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:42:23.004Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:42:23.023Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:42:23.841Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:42:27.907Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-29", - "requester": 1, - "isAdmin": false -} -[2026-01-29T05:42:27.910Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-29T05:42:27.912Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-29&view_all=true", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:42:27.918Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "15ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:42:28.901Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:42:51.330Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T05:43:21.415Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T05:43:51.509Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T05:43:58.288Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-29", - "requester": 1, - "isAdmin": false -} -[2026-01-29T05:43:58.289Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:43:58.291Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-29T05:43:58.292Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-29&view_all=true", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:43:59.290Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:44:07.609Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:44:07.817Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/purposes/active", - "statusCode": 200, - "duration": "17ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:44:07.828Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests?requester_id=undefined", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:44:08.595Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:44:15.544Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:44:15.552Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:44:15.554Z] [WARN] ⚠️ 인증 실패: Authorization 헤더 없음 - Context: { - "path": "/", - "method": "GET", - "ip": "::ffff:192.168.65.1" -} -[2026-01-29T05:44:15.555Z] [WARN] ⚠️ Authorization 헤더가 필요합니다 - Context: { - "code": "AUTHENTICATION_ERROR", - "url": "/api/uploads/workplace-layout-1769485965188-143426330.jpg", - "method": "GET", - "user": "anonymous" -} -[2026-01-29T05:44:15.555Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/uploads/workplace-layout-1769485965188-143426330.jpg", - "statusCode": 401, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:44:21.622Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T05:44:36.471Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-29", - "requester": 1, - "isAdmin": false -} -[2026-01-29T05:44:36.474Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:44:36.475Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-29T05:44:36.477Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-29&view_all=true", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:44:37.313Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:44:43.466Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:44:43.501Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects?is_active=1", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:44:43.521Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/safety-checks", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:44:43.580Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:44:43.613Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks/active/list", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:44:43.636Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?is_active=true", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:44:43.649Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/active/list", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:44:43.665Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-29", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:44:44.456Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:44:51.439Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "17ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:44:51.466Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:44:51.746Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T05:44:58.779Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-29", - "requester": 1, - "isAdmin": false -} -[2026-01-29T05:44:58.786Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:44:58.791Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-29T05:44:58.793Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-29&view_all=true", - "statusCode": 200, - "duration": "16ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:44:59.770Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:45:21.847Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T05:45:51.945Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T05:46:02.636Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:46:02.940Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/purposes/active", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:46:03.015Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests?requester_id=1", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:46:03.572Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:46:12.720Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:46:12.734Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:46:12.736Z] [WARN] ⚠️ 인증 실패: Authorization 헤더 없음 - Context: { - "path": "/", - "method": "GET", - "ip": "::ffff:192.168.65.1" -} -[2026-01-29T05:46:12.736Z] [WARN] ⚠️ Authorization 헤더가 필요합니다 - Context: { - "code": "AUTHENTICATION_ERROR", - "url": "/api/uploads/workplace-layout-1769485965188-143426330.jpg", - "method": "GET", - "user": "anonymous" -} -[2026-01-29T05:46:12.737Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/uploads/workplace-layout-1769485965188-143426330.jpg", - "statusCode": 401, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:46:22.047Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T05:46:52.139Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T05:47:22.227Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T05:47:52.308Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T05:48:22.406Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T05:48:37.272Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:48:37.358Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/purposes/active", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:48:37.370Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests?requester_id=1", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:48:38.266Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:48:43.907Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:48:43.921Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:48:52.502Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T05:48:54.371Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/workplace-visits/requests", - "statusCode": 201, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:48:54.383Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests?requester_id=1", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:49:17.521Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:49:17.602Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/purposes/active", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:49:17.608Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests?requester_id=1", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:49:18.503Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:49:19.203Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-29", - "requester": 1, - "isAdmin": false -} -[2026-01-29T05:49:19.206Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-29T05:49:19.207Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-29&view_all=true", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:49:19.212Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "15ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:49:20.195Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:49:22.589Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T05:49:52.673Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T05:50:22.757Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T05:50:52.840Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T05:51:22.918Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T05:51:52.996Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T05:52:23.089Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T05:52:53.173Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T05:53:23.276Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T05:53:51.976Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-29", - "requester": 1, - "isAdmin": false -} -[2026-01-29T05:53:51.978Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:53:51.979Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-29T05:53:51.980Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-29&view_all=true", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:53:52.979Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:53:53.165Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:53:53.214Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/purposes/active", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:53:53.245Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests?requester_id=1", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:53:53.359Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T05:53:54.139Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:53:57.876Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests?status=pending", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:53:57.918Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:53:57.925Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:53:58.870Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:54:04.690Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "PUT", - "url": "/api/workplace-visits/requests/1/approve", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:54:04.698Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests?status=pending", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:54:04.712Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:54:04.715Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:54:07.593Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests?status=approved", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:54:07.612Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:54:11.765Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests?status=pending", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:54:11.862Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:54:11.864Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:54:12.763Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:54:15.593Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests?status=approved", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:54:15.601Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:54:23.429Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T05:54:47.054Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests?status=pending", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:54:47.147Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:54:47.155Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:54:48.055Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:54:48.937Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-29", - "requester": 1, - "isAdmin": false -} -[2026-01-29T05:54:48.941Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-29T05:54:48.942Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-29&view_all=true", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:54:48.946Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:54:49.937Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:54:53.515Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T05:55:23.599Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T05:55:53.685Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T05:56:03.922Z] [WARN] ⚠️ 인증 실패: Bearer 토큰 누락 - Context: { - "path": "/", - "method": "GET", - "ip": "::ffff:192.168.65.1" -} -[2026-01-29T05:56:03.923Z] [WARN] ⚠️ Bearer 토큰이 필요합니다 - Context: { - "code": "AUTHENTICATION_ERROR", - "url": "/api/pages", - "method": "GET", - "user": "anonymous" -} -[2026-01-29T05:56:03.924Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/pages", - "statusCode": 401, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-01-29T05:56:09.489Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/pages", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "curl/8.7.1" -} -[2026-01-29T05:56:16.481Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/purposes", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "curl/8.7.1" -} -[2026-01-29T05:56:16.773Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-29", - "requester": 1, - "isAdmin": false -} -[2026-01-29T05:56:16.774Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:56:16.776Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-29T05:56:16.776Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-29&view_all=true", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:56:17.756Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:56:18.110Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests?status=pending", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:56:18.149Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:56:18.154Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:56:19.094Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:56:19.489Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests?status=approved", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:56:19.508Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:56:20.588Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests/1", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:56:21.575Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:56:22.279Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "curl/8.7.1" -} -[2026-01-29T05:56:23.780Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T05:56:50.736Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "POST", - "url": "/api/workplace-visits/training", - "statusCode": 400, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:56:53.858Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T05:57:12.664Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "POST", - "url": "/api/workplace-visits/training", - "statusCode": 400, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:57:23.967Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T05:57:26.347Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "POST", - "url": "/api/workplace-visits/training", - "statusCode": 400, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:57:54.054Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T05:58:24.134Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T05:58:54.220Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T05:59:24.311Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T05:59:44.824Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests/1", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:59:45.803Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T05:59:54.389Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T06:00:24.480Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T06:00:54.564Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T06:01:24.653Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T06:01:54.732Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T06:02:24.809Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T06:02:54.888Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T06:03:24.970Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T06:03:55.068Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T06:04:03.275Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests/1", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:04:04.267Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:04:25.153Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T06:04:41.619Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/workplace-visits/training", - "statusCode": 201, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:04:41.631Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/workplace-visits/training", - "statusCode": 201, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:04:43.461Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests?status=pending", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:04:43.515Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:04:43.520Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:04:44.456Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:04:46.513Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests?status=training_completed", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:04:46.528Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:04:48.871Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests?status=approved", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:04:48.887Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:04:50.540Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests?status=training_completed", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:04:50.549Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:04:53.966Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests?status=pending", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:04:54.079Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:04:54.081Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:04:54.966Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:04:55.252Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T06:05:01.544Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests?status=approved", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:05:01.554Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:05:02.657Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests/1", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:05:03.653Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:05:25.344Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T06:05:55.431Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T06:06:25.521Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T06:06:55.609Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T06:07:25.706Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T06:07:27.747Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-29T06:07:27.819Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-01-29T06:07:27.937Z] [ERROR] ❌ 처리되지 않은 예외 - Context: { - "error": "listen EADDRINUSE: address already in use :::3005", - "stack": "Error: listen EADDRINUSE: address already in use :::3005\n at Server.setupListenHandle [as _listen2] (node:net:1940:16)\n at listenInCluster (node:net:1997:12)\n at Server.listen (node:net:2102:7)\n at app.listen (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/application.js:635:24)\n at Object. (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/index.js:45:20)\n at Module._compile (node:internal/modules/cjs/loader:1692:14)\n at Object..js (node:internal/modules/cjs/loader:1824:10)\n at Module.load (node:internal/modules/cjs/loader:1427:32)\n at Module._load (node:internal/modules/cjs/loader:1250:12)\n at Object. (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/pm2/lib/ProcessContainerFork.js:33:23)" -} -[2026-01-29T06:07:27.938Z] [INFO] ℹ️ UNCAUGHT_EXCEPTION 신호 수신 - 서버 종료 시작 -[2026-01-29T06:07:27.938Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-01-29T06:07:28.134Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-29T06:07:28.171Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-01-29T06:07:28.229Z] [ERROR] ❌ 처리되지 않은 예외 - Context: { - "error": "listen EADDRINUSE: address already in use :::3005", - "stack": "Error: listen EADDRINUSE: address already in use :::3005\n at Server.setupListenHandle [as _listen2] (node:net:1940:16)\n at listenInCluster (node:net:1997:12)\n at Server.listen (node:net:2102:7)\n at app.listen (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/application.js:635:24)\n at Object. (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/index.js:45:20)\n at Module._compile (node:internal/modules/cjs/loader:1692:14)\n at Object..js (node:internal/modules/cjs/loader:1824:10)\n at Module.load (node:internal/modules/cjs/loader:1427:32)\n at Module._load (node:internal/modules/cjs/loader:1250:12)\n at Object. (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/pm2/lib/ProcessContainerFork.js:33:23)" -} -[2026-01-29T06:07:28.229Z] [INFO] ℹ️ UNCAUGHT_EXCEPTION 신호 수신 - 서버 종료 시작 -[2026-01-29T06:07:28.230Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-01-29T06:07:28.411Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-29T06:07:28.450Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-01-29T06:07:28.509Z] [ERROR] ❌ 처리되지 않은 예외 - Context: { - "error": "listen EADDRINUSE: address already in use :::3005", - "stack": "Error: listen EADDRINUSE: address already in use :::3005\n at Server.setupListenHandle [as _listen2] (node:net:1940:16)\n at listenInCluster (node:net:1997:12)\n at Server.listen (node:net:2102:7)\n at app.listen (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/application.js:635:24)\n at Object. (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/index.js:45:20)\n at Module._compile (node:internal/modules/cjs/loader:1692:14)\n at Object..js (node:internal/modules/cjs/loader:1824:10)\n at Module.load (node:internal/modules/cjs/loader:1427:32)\n at Module._load (node:internal/modules/cjs/loader:1250:12)\n at Object. (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/pm2/lib/ProcessContainerFork.js:33:23)" -} -[2026-01-29T06:07:28.509Z] [INFO] ℹ️ UNCAUGHT_EXCEPTION 신호 수신 - 서버 종료 시작 -[2026-01-29T06:07:28.510Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-01-29T06:07:28.706Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-29T06:07:28.745Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-01-29T06:07:28.803Z] [ERROR] ❌ 처리되지 않은 예외 - Context: { - "error": "listen EADDRINUSE: address already in use :::3005", - "stack": "Error: listen EADDRINUSE: address already in use :::3005\n at Server.setupListenHandle [as _listen2] (node:net:1940:16)\n at listenInCluster (node:net:1997:12)\n at Server.listen (node:net:2102:7)\n at app.listen (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/application.js:635:24)\n at Object. (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/index.js:45:20)\n at Module._compile (node:internal/modules/cjs/loader:1692:14)\n at Object..js (node:internal/modules/cjs/loader:1824:10)\n at Module.load (node:internal/modules/cjs/loader:1427:32)\n at Module._load (node:internal/modules/cjs/loader:1250:12)\n at Object. (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/pm2/lib/ProcessContainerFork.js:33:23)" -} -[2026-01-29T06:07:28.803Z] [INFO] ℹ️ UNCAUGHT_EXCEPTION 신호 수신 - 서버 종료 시작 -[2026-01-29T06:07:28.804Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-01-29T06:07:29.002Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-29T06:07:29.038Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-01-29T06:07:29.098Z] [ERROR] ❌ 처리되지 않은 예외 - Context: { - "error": "listen EADDRINUSE: address already in use :::3005", - "stack": "Error: listen EADDRINUSE: address already in use :::3005\n at Server.setupListenHandle [as _listen2] (node:net:1940:16)\n at listenInCluster (node:net:1997:12)\n at Server.listen (node:net:2102:7)\n at app.listen (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/application.js:635:24)\n at Object. (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/index.js:45:20)\n at Module._compile (node:internal/modules/cjs/loader:1692:14)\n at Object..js (node:internal/modules/cjs/loader:1824:10)\n at Module.load (node:internal/modules/cjs/loader:1427:32)\n at Module._load (node:internal/modules/cjs/loader:1250:12)\n at Object. (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/pm2/lib/ProcessContainerFork.js:33:23)" -} -[2026-01-29T06:07:29.098Z] [INFO] ℹ️ UNCAUGHT_EXCEPTION 신호 수신 - 서버 종료 시작 -[2026-01-29T06:07:29.098Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-01-29T06:07:29.295Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-29T06:07:29.331Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-01-29T06:07:29.389Z] [ERROR] ❌ 처리되지 않은 예외 - Context: { - "error": "listen EADDRINUSE: address already in use :::3005", - "stack": "Error: listen EADDRINUSE: address already in use :::3005\n at Server.setupListenHandle [as _listen2] (node:net:1940:16)\n at listenInCluster (node:net:1997:12)\n at Server.listen (node:net:2102:7)\n at app.listen (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/application.js:635:24)\n at Object. (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/index.js:45:20)\n at Module._compile (node:internal/modules/cjs/loader:1692:14)\n at Object..js (node:internal/modules/cjs/loader:1824:10)\n at Module.load (node:internal/modules/cjs/loader:1427:32)\n at Module._load (node:internal/modules/cjs/loader:1250:12)\n at Object. (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/pm2/lib/ProcessContainerFork.js:33:23)" -} -[2026-01-29T06:07:29.389Z] [INFO] ℹ️ UNCAUGHT_EXCEPTION 신호 수신 - 서버 종료 시작 -[2026-01-29T06:07:29.389Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-01-29T06:07:29.574Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-29T06:07:29.610Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-01-29T06:07:29.669Z] [ERROR] ❌ 처리되지 않은 예외 - Context: { - "error": "listen EADDRINUSE: address already in use :::3005", - "stack": "Error: listen EADDRINUSE: address already in use :::3005\n at Server.setupListenHandle [as _listen2] (node:net:1940:16)\n at listenInCluster (node:net:1997:12)\n at Server.listen (node:net:2102:7)\n at app.listen (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/application.js:635:24)\n at Object. (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/index.js:45:20)\n at Module._compile (node:internal/modules/cjs/loader:1692:14)\n at Object..js (node:internal/modules/cjs/loader:1824:10)\n at Module.load (node:internal/modules/cjs/loader:1427:32)\n at Module._load (node:internal/modules/cjs/loader:1250:12)\n at Object. (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/pm2/lib/ProcessContainerFork.js:33:23)" -} -[2026-01-29T06:07:29.669Z] [INFO] ℹ️ UNCAUGHT_EXCEPTION 신호 수신 - 서버 종료 시작 -[2026-01-29T06:07:29.669Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-01-29T06:07:29.871Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-29T06:07:29.911Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-01-29T06:07:29.984Z] [ERROR] ❌ 처리되지 않은 예외 - Context: { - "error": "listen EADDRINUSE: address already in use :::3005", - "stack": "Error: listen EADDRINUSE: address already in use :::3005\n at Server.setupListenHandle [as _listen2] (node:net:1940:16)\n at listenInCluster (node:net:1997:12)\n at Server.listen (node:net:2102:7)\n at app.listen (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/application.js:635:24)\n at Object. (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/index.js:45:20)\n at Module._compile (node:internal/modules/cjs/loader:1692:14)\n at Object..js (node:internal/modules/cjs/loader:1824:10)\n at Module.load (node:internal/modules/cjs/loader:1427:32)\n at Module._load (node:internal/modules/cjs/loader:1250:12)\n at Object. (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/pm2/lib/ProcessContainerFork.js:33:23)" -} -[2026-01-29T06:07:29.984Z] [INFO] ℹ️ UNCAUGHT_EXCEPTION 신호 수신 - 서버 종료 시작 -[2026-01-29T06:07:29.984Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-01-29T06:07:30.188Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-29T06:07:30.228Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-01-29T06:07:30.292Z] [ERROR] ❌ 처리되지 않은 예외 - Context: { - "error": "listen EADDRINUSE: address already in use :::3005", - "stack": "Error: listen EADDRINUSE: address already in use :::3005\n at Server.setupListenHandle [as _listen2] (node:net:1940:16)\n at listenInCluster (node:net:1997:12)\n at Server.listen (node:net:2102:7)\n at app.listen (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/application.js:635:24)\n at Object. (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/index.js:45:20)\n at Module._compile (node:internal/modules/cjs/loader:1692:14)\n at Object..js (node:internal/modules/cjs/loader:1824:10)\n at Module.load (node:internal/modules/cjs/loader:1427:32)\n at Module._load (node:internal/modules/cjs/loader:1250:12)\n at Object. (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/pm2/lib/ProcessContainerFork.js:33:23)" -} -[2026-01-29T06:07:30.292Z] [INFO] ℹ️ UNCAUGHT_EXCEPTION 신호 수신 - 서버 종료 시작 -[2026-01-29T06:07:30.292Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-01-29T06:07:30.496Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-29T06:07:30.548Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-01-29T06:07:30.636Z] [ERROR] ❌ 처리되지 않은 예외 - Context: { - "error": "listen EADDRINUSE: address already in use :::3005", - "stack": "Error: listen EADDRINUSE: address already in use :::3005\n at Server.setupListenHandle [as _listen2] (node:net:1940:16)\n at listenInCluster (node:net:1997:12)\n at Server.listen (node:net:2102:7)\n at app.listen (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/application.js:635:24)\n at Object. (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/index.js:45:20)\n at Module._compile (node:internal/modules/cjs/loader:1692:14)\n at Object..js (node:internal/modules/cjs/loader:1824:10)\n at Module.load (node:internal/modules/cjs/loader:1427:32)\n at Module._load (node:internal/modules/cjs/loader:1250:12)\n at Object. (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/pm2/lib/ProcessContainerFork.js:33:23)" -} -[2026-01-29T06:07:30.637Z] [INFO] ℹ️ UNCAUGHT_EXCEPTION 신호 수신 - 서버 종료 시작 -[2026-01-29T06:07:30.637Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-01-29T06:07:30.837Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-29T06:07:30.875Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-01-29T06:07:30.936Z] [ERROR] ❌ 처리되지 않은 예외 - Context: { - "error": "listen EADDRINUSE: address already in use :::3005", - "stack": "Error: listen EADDRINUSE: address already in use :::3005\n at Server.setupListenHandle [as _listen2] (node:net:1940:16)\n at listenInCluster (node:net:1997:12)\n at Server.listen (node:net:2102:7)\n at app.listen (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/application.js:635:24)\n at Object. (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/index.js:45:20)\n at Module._compile (node:internal/modules/cjs/loader:1692:14)\n at Object..js (node:internal/modules/cjs/loader:1824:10)\n at Module.load (node:internal/modules/cjs/loader:1427:32)\n at Module._load (node:internal/modules/cjs/loader:1250:12)\n at Object. (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/pm2/lib/ProcessContainerFork.js:33:23)" -} -[2026-01-29T06:07:30.936Z] [INFO] ℹ️ UNCAUGHT_EXCEPTION 신호 수신 - 서버 종료 시작 -[2026-01-29T06:07:30.936Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-01-29T06:07:31.190Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-29T06:07:31.274Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-01-29T06:07:31.349Z] [ERROR] ❌ 처리되지 않은 예외 - Context: { - "error": "listen EADDRINUSE: address already in use :::3005", - "stack": "Error: listen EADDRINUSE: address already in use :::3005\n at Server.setupListenHandle [as _listen2] (node:net:1940:16)\n at listenInCluster (node:net:1997:12)\n at Server.listen (node:net:2102:7)\n at app.listen (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/application.js:635:24)\n at Object. (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/index.js:45:20)\n at Module._compile (node:internal/modules/cjs/loader:1692:14)\n at Object..js (node:internal/modules/cjs/loader:1824:10)\n at Module.load (node:internal/modules/cjs/loader:1427:32)\n at Module._load (node:internal/modules/cjs/loader:1250:12)\n at Object. (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/pm2/lib/ProcessContainerFork.js:33:23)" -} -[2026-01-29T06:07:31.349Z] [INFO] ℹ️ UNCAUGHT_EXCEPTION 신호 수신 - 서버 종료 시작 -[2026-01-29T06:07:31.350Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-01-29T06:07:31.574Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-29T06:07:31.616Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-01-29T06:07:31.682Z] [ERROR] ❌ 처리되지 않은 예외 - Context: { - "error": "listen EADDRINUSE: address already in use :::3005", - "stack": "Error: listen EADDRINUSE: address already in use :::3005\n at Server.setupListenHandle [as _listen2] (node:net:1940:16)\n at listenInCluster (node:net:1997:12)\n at Server.listen (node:net:2102:7)\n at app.listen (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/application.js:635:24)\n at Object. (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/index.js:45:20)\n at Module._compile (node:internal/modules/cjs/loader:1692:14)\n at Object..js (node:internal/modules/cjs/loader:1824:10)\n at Module.load (node:internal/modules/cjs/loader:1427:32)\n at Module._load (node:internal/modules/cjs/loader:1250:12)\n at Object. (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/pm2/lib/ProcessContainerFork.js:33:23)" -} -[2026-01-29T06:07:31.682Z] [INFO] ℹ️ UNCAUGHT_EXCEPTION 신호 수신 - 서버 종료 시작 -[2026-01-29T06:07:31.682Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-01-29T06:07:31.889Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-29T06:07:31.927Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-01-29T06:07:31.989Z] [ERROR] ❌ 처리되지 않은 예외 - Context: { - "error": "listen EADDRINUSE: address already in use :::3005", - "stack": "Error: listen EADDRINUSE: address already in use :::3005\n at Server.setupListenHandle [as _listen2] (node:net:1940:16)\n at listenInCluster (node:net:1997:12)\n at Server.listen (node:net:2102:7)\n at app.listen (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/application.js:635:24)\n at Object. (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/index.js:45:20)\n at Module._compile (node:internal/modules/cjs/loader:1692:14)\n at Object..js (node:internal/modules/cjs/loader:1824:10)\n at Module.load (node:internal/modules/cjs/loader:1427:32)\n at Module._load (node:internal/modules/cjs/loader:1250:12)\n at Object. (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/pm2/lib/ProcessContainerFork.js:33:23)" -} -[2026-01-29T06:07:31.990Z] [INFO] ℹ️ UNCAUGHT_EXCEPTION 신호 수신 - 서버 종료 시작 -[2026-01-29T06:07:31.990Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-01-29T06:07:32.172Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-29T06:07:32.213Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-01-29T06:07:32.279Z] [ERROR] ❌ 처리되지 않은 예외 - Context: { - "error": "listen EADDRINUSE: address already in use :::3005", - "stack": "Error: listen EADDRINUSE: address already in use :::3005\n at Server.setupListenHandle [as _listen2] (node:net:1940:16)\n at listenInCluster (node:net:1997:12)\n at Server.listen (node:net:2102:7)\n at app.listen (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/application.js:635:24)\n at Object. (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/index.js:45:20)\n at Module._compile (node:internal/modules/cjs/loader:1692:14)\n at Object..js (node:internal/modules/cjs/loader:1824:10)\n at Module.load (node:internal/modules/cjs/loader:1427:32)\n at Module._load (node:internal/modules/cjs/loader:1250:12)\n at Object. (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/pm2/lib/ProcessContainerFork.js:33:23)" -} -[2026-01-29T06:07:32.279Z] [INFO] ℹ️ UNCAUGHT_EXCEPTION 신호 수신 - 서버 종료 시작 -[2026-01-29T06:07:32.280Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-01-29T06:07:32.485Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-29T06:07:32.525Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-01-29T06:07:32.593Z] [ERROR] ❌ 처리되지 않은 예외 - Context: { - "error": "listen EADDRINUSE: address already in use :::3005", - "stack": "Error: listen EADDRINUSE: address already in use :::3005\n at Server.setupListenHandle [as _listen2] (node:net:1940:16)\n at listenInCluster (node:net:1997:12)\n at Server.listen (node:net:2102:7)\n at app.listen (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/application.js:635:24)\n at Object. (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/index.js:45:20)\n at Module._compile (node:internal/modules/cjs/loader:1692:14)\n at Object..js (node:internal/modules/cjs/loader:1824:10)\n at Module.load (node:internal/modules/cjs/loader:1427:32)\n at Module._load (node:internal/modules/cjs/loader:1250:12)\n at Object. (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/pm2/lib/ProcessContainerFork.js:33:23)" -} -[2026-01-29T06:07:32.593Z] [INFO] ℹ️ UNCAUGHT_EXCEPTION 신호 수신 - 서버 종료 시작 -[2026-01-29T06:07:32.593Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-01-29T06:07:38.663Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-29T06:07:38.704Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-01-29T06:07:38.767Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v24.4.0" -} -[2026-01-29T06:07:38.771Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-01-29T06:07:44.934Z] [WARN] ⚠️ 인증 실패: Authorization 헤더 없음 - Context: { - "path": "/", - "method": "GET", - "ip": "::ffff:192.168.65.1" -} -[2026-01-29T06:07:44.936Z] [WARN] ⚠️ Authorization 헤더가 필요합니다 - Context: { - "code": "AUTHENTICATION_ERROR", - "url": "/api/pages", - "method": "GET", - "user": "anonymous" -} -[2026-01-29T06:07:44.938Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/pages", - "statusCode": 401, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-01-29T06:07:55.795Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T06:07:59.658Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests?status=pending", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:07:59.758Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:07:59.760Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:08:00.649Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:08:01.533Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests?status=approved", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:08:01.546Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:08:02.468Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests/1", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:08:03.457Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:08:25.859Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T06:08:41.281Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/workplace-visits/training", - "statusCode": 201, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:08:41.295Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/workplace-visits/training", - "statusCode": 201, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:08:42.827Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests?status=pending", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:08:42.868Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:08:42.875Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:08:43.827Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:08:44.708Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests?status=approved", - "statusCode": 304, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:08:44.721Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:08:55.911Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T06:09:21.459Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "curl/8.7.1" -} -[2026-01-29T06:09:25.968Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T06:09:28.456Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/training/request/1", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "curl/8.7.1" -} -[2026-01-29T06:09:56.027Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T06:10:25.132Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2026-01-29T06:10:25.134Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-01-29T06:10:25.523Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-01-29T06:10:25.596Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-01-29T06:10:25.655Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2026-01-29T06:10:25.661Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-01-29T06:10:30.444Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T06:11:00.533Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T06:11:04.158Z] [INFO] ℹ️ MariaDB 연결 성공 - Context: { - "connection": "db:3306", - "database": "hyungi", - "connectionLimit": 10 -} -[2026-01-29T06:11:04.162Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests?status=pending", - "statusCode": 200, - "duration": "26ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:11:04.217Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:11:04.220Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:11:05.148Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:11:05.599Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-29", - "requester": 1, - "isAdmin": false -} -[2026-01-29T06:11:05.604Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-29T06:11:05.605Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-29&view_all=true", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:11:05.613Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "28ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:11:06.822Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:11:06.860Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/purposes/active", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:11:06.871Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests?requester_id=1", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:11:07.809Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:11:15.788Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:11:15.799Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:11:23.671Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/workplace-visits/requests", - "statusCode": 201, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:11:23.680Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests?requester_id=1", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:11:30.627Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T06:11:32.185Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-29", - "requester": 1, - "isAdmin": false -} -[2026-01-29T06:11:32.190Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-29T06:11:32.192Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-29&view_all=true", - "statusCode": 304, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:11:32.195Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "14ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:11:33.113Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests?status=pending", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:11:33.163Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "16ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:11:33.166Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "15ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:11:34.109Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:11:38.039Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "PUT", - "url": "/api/workplace-visits/requests/2/approve", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:11:38.050Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests?status=pending", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:11:38.059Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:11:38.062Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:11:39.738Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests?status=approved", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:11:39.749Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:11:40.200Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests?status=training_completed", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:11:40.218Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:11:40.753Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests?status=approved", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:11:40.769Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:11:43.158Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests/2", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:11:44.151Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:12:00.709Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T06:12:11.042Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/workplace-visits/training", - "statusCode": 201, - "duration": "11ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:12:11.053Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/workplace-visits/training", - "statusCode": 201, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:12:12.580Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests?status=pending", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:12:12.638Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "18ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:12:12.640Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:12:13.575Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:12:14.443Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests?status=training_completed", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:12:14.459Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:12:16.228Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests/2", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:12:30.802Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T06:12:39.876Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:12:39.878Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-29", - "requester": 1, - "isAdmin": false -} -[2026-01-29T06:12:39.880Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-29T06:12:39.881Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-29&view_all=true", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:12:40.873Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:13:00.884Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T06:13:30.978Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T06:14:01.066Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T06:14:31.152Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T06:14:49.876Z] [WARN] ⚠️ 인증 실패: Bearer 토큰 누락 - Context: { - "path": "/", - "method": "GET", - "ip": "::ffff:192.168.65.1" -} -[2026-01-29T06:14:49.879Z] [WARN] ⚠️ Bearer 토큰이 필요합니다 - Context: { - "code": "AUTHENTICATION_ERROR", - "url": "/api/workplaces/categories", - "method": "GET", - "user": "anonymous" -} -[2026-01-29T06:14:49.880Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 401, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-01-29T06:14:54.601Z] [WARN] ⚠️ 인증 실패: Authorization 헤더 없음 - Context: { - "path": "/", - "method": "POST", - "ip": "::ffff:192.168.65.1" -} -[2026-01-29T06:14:54.602Z] [WARN] ⚠️ Authorization 헤더가 필요합니다 - Context: { - "code": "AUTHENTICATION_ERROR", - "url": "/api/users/login", - "method": "POST", - "user": "anonymous" -} -[2026-01-29T06:14:54.603Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "POST", - "url": "/api/users/login", - "statusCode": 401, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-01-29T06:14:58.648Z] [WARN] ⚠️ 아이디 또는 비밀번호가 올바르지 않습니다. - Context: { - "code": "AUTHENTICATION_ERROR", - "url": "/api/auth/login", - "method": "POST", - "user": "anonymous" -} -[2026-01-29T06:14:58.649Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 401, - "duration": "75ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-01-29T06:15:01.235Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T06:15:02.413Z] [WARN] ⚠️ 아이디 또는 비밀번호가 올바르지 않습니다. - Context: { - "code": "AUTHENTICATION_ERROR", - "url": "/api/auth/login", - "method": "POST", - "user": "anonymous" -} -[2026-01-29T06:15:02.415Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 401, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-01-29T06:15:31.332Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T06:16:01.427Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T06:16:31.521Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T06:17:01.595Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T06:17:31.687Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T06:18:01.768Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T06:18:05.454Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:18:06.450Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:18:17.185Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:18:17.206Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-29", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:18:17.216Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests?visit_date=2026-01-29", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:18:31.853Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T06:19:01.938Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T06:19:32.013Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T06:19:55.260Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:19:56.249Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:20:00.479Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:20:00.509Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-29", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:20:00.521Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/9", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:20:00.527Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/8", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:20:00.538Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:20:00.842Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-29", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:20:00.853Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/9", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:20:00.863Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/8", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:20:00.872Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:20:02.108Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T06:20:32.202Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T06:21:02.285Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T06:21:32.373Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T06:22:02.465Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T06:22:32.558Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T06:23:02.644Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T06:23:32.735Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T06:24:02.828Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T06:24:22.976Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:24:23.975Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:24:32.914Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T06:25:02.999Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T06:25:33.078Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T06:26:03.173Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T06:26:33.271Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T06:27:03.363Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T06:27:26.607Z] [WARN] ⚠️ 계정이 잠겨있습니다. 3분 후에 다시 시도하세요. - Context: { - "code": "AUTHENTICATION_ERROR", - "url": "/api/auth/login", - "method": "POST", - "user": "anonymous" -} -[2026-01-29T06:27:26.610Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 401, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-01-29T06:27:33.452Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T06:28:03.537Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T06:28:33.623Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T06:29:03.707Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T06:29:03.909Z] [WARN] ⚠️ 계정이 잠겨있습니다. 1분 후에 다시 시도하세요. - Context: { - "code": "AUTHENTICATION_ERROR", - "url": "/api/auth/login", - "method": "POST", - "user": "anonymous" -} -[2026-01-29T06:29:03.911Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 401, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-01-29T06:29:22.635Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "17ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-01-29T06:29:22.700Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "20ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-01-29T06:29:22.756Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-29", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-01-29T06:29:22.763Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/9", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-01-29T06:29:22.773Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/8", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-01-29T06:29:22.788Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-01-29T06:29:23.546Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-01-29T06:29:33.827Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T06:29:34.227Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:29:34.316Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:29:34.346Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-29", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:29:34.356Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/9", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:29:34.361Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/8", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:29:34.368Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:29:35.216Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:30:03.913Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T06:30:33.988Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T06:31:04.085Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T06:31:34.183Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T06:31:55.898Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:31:55.975Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:31:56.008Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-29", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:31:56.014Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/9", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:31:56.019Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/8", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:31:56.026Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:31:56.889Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:32:04.271Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T06:32:34.354Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T06:33:04.457Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T06:33:34.542Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T06:33:37.260Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:33:37.335Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:33:37.353Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-29", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:33:37.370Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/9", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:33:37.375Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/8", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:33:37.381Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:33:38.238Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:34:04.628Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T06:34:34.713Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T06:35:04.810Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T06:35:34.887Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T06:36:04.965Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T06:36:35.055Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T06:36:50.108Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:36:50.181Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:36:50.201Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-29", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:36:50.215Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:36:51.098Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:36:59.700Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:36:59.733Z] [INFO] ℹ️ 월별 캘린더 데이터 조회 요청 - Context: { - "year": 2026, - "month": 1 -} -[2026-01-29T06:36:59.736Z] [ERROR] ❌ 월별 캘린더 데이터 조회 실패 - Context: { - "year": 2026, - "month": 1, - "error": "Table 'hyungi.monthly_summary' doesn't exist" -} -[2026-01-29T06:36:59.737Z] [ERROR] ❌ 월별 캘린더 데이터 조회 중 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 월별 캘린더 데이터 조회 중 오류가 발생했습니다\n at /usr/src/app/controllers/monthlyStatusController.js:80:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "url": "/api/monthly-status/calendar?year=2026&month=1", - "method": "GET", - "user": "anonymous" -} -[2026-01-29T06:36:59.737Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/monthly-status/calendar?year=2026&month=1", - "statusCode": 500, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:36:59.746Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-01", - "requester": 1, - "isAdmin": false -} -[2026-01-29T06:36:59.747Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2025-12-31", - "requester": 1, - "isAdmin": false -} -[2026-01-29T06:36:59.748Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-02", - "requester": 1, - "isAdmin": false -} -[2026-01-29T06:36:59.751Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-29T06:36:59.751Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-01&view_all=true", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:36:59.751Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-29T06:36:59.752Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-12-31&view_all=true", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:36:59.753Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-03", - "requester": 1, - "isAdmin": false -} -[2026-01-29T06:36:59.754Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-04", - "requester": 1, - "isAdmin": false -} -[2026-01-29T06:36:59.755Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-29T06:36:59.755Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-03&view_all=true", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:36:59.756Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-29T06:36:59.756Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-04&view_all=true", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:36:59.759Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-29T06:36:59.760Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-02&view_all=true", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:36:59.875Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-06", - "requester": 1, - "isAdmin": false -} -[2026-01-29T06:36:59.876Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-07", - "requester": 1, - "isAdmin": false -} -[2026-01-29T06:36:59.877Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-08", - "requester": 1, - "isAdmin": false -} -[2026-01-29T06:36:59.878Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-05", - "requester": 1, - "isAdmin": false -} -[2026-01-29T06:36:59.880Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-09", - "requester": 1, - "isAdmin": false -} -[2026-01-29T06:36:59.882Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-29T06:36:59.882Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-06&view_all=true", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:36:59.882Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-29T06:36:59.883Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-07&view_all=true", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:36:59.883Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-29T06:36:59.884Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-08&view_all=true", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:36:59.886Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-29T06:36:59.886Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-05&view_all=true", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:36:59.887Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-29T06:36:59.887Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-09&view_all=true", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:37:00.005Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-10", - "requester": 1, - "isAdmin": false -} -[2026-01-29T06:37:00.008Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-11", - "requester": 1, - "isAdmin": false -} -[2026-01-29T06:37:00.010Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-12", - "requester": 1, - "isAdmin": false -} -[2026-01-29T06:37:00.012Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-29T06:37:00.012Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-10&view_all=true", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:37:00.013Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-29T06:37:00.013Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-11&view_all=true", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:37:00.014Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-29T06:37:00.015Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-12&view_all=true", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:37:00.016Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-14", - "requester": 1, - "isAdmin": false -} -[2026-01-29T06:37:00.017Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-13", - "requester": 1, - "isAdmin": false -} -[2026-01-29T06:37:00.017Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-29T06:37:00.018Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-14&view_all=true", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:37:00.018Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-29T06:37:00.019Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-13&view_all=true", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:37:00.132Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-16", - "requester": 1, - "isAdmin": false -} -[2026-01-29T06:37:00.134Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-17", - "requester": 1, - "isAdmin": false -} -[2026-01-29T06:37:00.138Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-18", - "requester": 1, - "isAdmin": false -} -[2026-01-29T06:37:00.140Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-15", - "requester": 1, - "isAdmin": false -} -[2026-01-29T06:37:00.141Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-19", - "requester": 1, - "isAdmin": false -} -[2026-01-29T06:37:00.142Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-29T06:37:00.142Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-16&view_all=true", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:37:00.143Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-29T06:37:00.144Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-17&view_all=true", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:37:00.145Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 1 -} -[2026-01-29T06:37:00.146Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-18&view_all=true", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:37:00.148Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-29T06:37:00.148Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-15&view_all=true", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:37:00.149Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-29T06:37:00.150Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-19&view_all=true", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:37:00.263Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-20", - "requester": 1, - "isAdmin": false -} -[2026-01-29T06:37:00.266Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-21", - "requester": 1, - "isAdmin": false -} -[2026-01-29T06:37:00.268Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-22", - "requester": 1, - "isAdmin": false -} -[2026-01-29T06:37:00.270Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-23", - "requester": 1, - "isAdmin": false -} -[2026-01-29T06:37:00.271Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-24", - "requester": 1, - "isAdmin": false -} -[2026-01-29T06:37:00.272Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 1 -} -[2026-01-29T06:37:00.273Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-20&view_all=true", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:37:00.273Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-29T06:37:00.274Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-21&view_all=true", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:37:00.274Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-29T06:37:00.275Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-22&view_all=true", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:37:00.275Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-29T06:37:00.275Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-23&view_all=true", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:37:00.276Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 3 -} -[2026-01-29T06:37:00.277Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-24&view_all=true", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:37:00.396Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-26", - "requester": 1, - "isAdmin": false -} -[2026-01-29T06:37:00.398Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-27", - "requester": 1, - "isAdmin": false -} -[2026-01-29T06:37:00.401Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-25", - "requester": 1, - "isAdmin": false -} -[2026-01-29T06:37:00.402Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-28", - "requester": 1, - "isAdmin": false -} -[2026-01-29T06:37:00.403Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 3 -} -[2026-01-29T06:37:00.404Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 1 -} -[2026-01-29T06:37:00.404Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-27&view_all=true", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:37:00.405Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 1 -} -[2026-01-29T06:37:00.405Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-25&view_all=true", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:37:00.405Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-29T06:37:00.406Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-28&view_all=true", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:37:00.407Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-29", - "requester": 1, - "isAdmin": false -} -[2026-01-29T06:37:00.407Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-26&view_all=true", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:37:00.408Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-29T06:37:00.408Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-29&view_all=true", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:37:00.519Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-30", - "requester": 1, - "isAdmin": false -} -[2026-01-29T06:37:00.522Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-29T06:37:00.525Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-30&view_all=true", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:37:00.689Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:37:03.052Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:37:03.081Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:37:03.112Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-29", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:37:03.119Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:37:04.046Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:37:05.155Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T06:37:16.792Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:37:16.885Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:37:16.909Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-29", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:37:16.913Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:37:17.790Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:37:35.238Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T06:37:45.521Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:37:45.600Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:37:45.617Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-29", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:37:45.634Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:37:46.514Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:38:02.097Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:38:02.173Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:38:02.209Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-29", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:38:02.217Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:38:03.081Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:38:05.329Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T06:38:21.814Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:38:21.882Z] [INFO] ℹ️ 월별 캘린더 데이터 조회 요청 - Context: { - "year": 2026, - "month": 1 -} -[2026-01-29T06:38:21.888Z] [ERROR] ❌ 월별 캘린더 데이터 조회 실패 - Context: { - "year": 2026, - "month": 1, - "error": "Table 'hyungi.monthly_summary' doesn't exist" -} -[2026-01-29T06:38:21.890Z] [ERROR] ❌ 월별 캘린더 데이터 조회 중 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 월별 캘린더 데이터 조회 중 오류가 발생했습니다\n at /usr/src/app/controllers/monthlyStatusController.js:80:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "url": "/api/monthly-status/calendar?year=2026&month=1", - "method": "GET", - "user": "anonymous" -} -[2026-01-29T06:38:21.891Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/monthly-status/calendar?year=2026&month=1", - "statusCode": 500, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:38:21.903Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2025-12-31", - "requester": 1, - "isAdmin": false -} -[2026-01-29T06:38:21.906Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-01", - "requester": 1, - "isAdmin": false -} -[2026-01-29T06:38:21.906Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-02", - "requester": 1, - "isAdmin": false -} -[2026-01-29T06:38:21.907Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-03", - "requester": 1, - "isAdmin": false -} -[2026-01-29T06:38:21.908Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-29T06:38:21.908Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2025-12-31&view_all=true", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:38:21.909Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-29T06:38:21.909Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-01&view_all=true", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:38:21.911Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-04", - "requester": 1, - "isAdmin": false -} -[2026-01-29T06:38:21.911Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-29T06:38:21.911Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-02&view_all=true", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:38:21.912Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-29T06:38:21.912Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-03&view_all=true", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:38:21.913Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-29T06:38:21.914Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-04&view_all=true", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:38:22.030Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-06", - "requester": 1, - "isAdmin": false -} -[2026-01-29T06:38:22.033Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-07", - "requester": 1, - "isAdmin": false -} -[2026-01-29T06:38:22.034Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-08", - "requester": 1, - "isAdmin": false -} -[2026-01-29T06:38:22.036Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-05", - "requester": 1, - "isAdmin": false -} -[2026-01-29T06:38:22.036Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-29T06:38:22.037Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-06&view_all=true", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:38:22.038Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-09", - "requester": 1, - "isAdmin": false -} -[2026-01-29T06:38:22.038Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-29T06:38:22.038Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-07&view_all=true", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:38:22.039Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-29T06:38:22.039Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-08&view_all=true", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:38:22.040Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-29T06:38:22.040Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-05&view_all=true", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:38:22.041Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-29T06:38:22.041Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-09&view_all=true", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:38:22.159Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-11", - "requester": 1, - "isAdmin": false -} -[2026-01-29T06:38:22.162Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-13", - "requester": 1, - "isAdmin": false -} -[2026-01-29T06:38:22.164Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-12", - "requester": 1, - "isAdmin": false -} -[2026-01-29T06:38:22.165Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-10", - "requester": 1, - "isAdmin": false -} -[2026-01-29T06:38:22.166Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-14", - "requester": 1, - "isAdmin": false -} -[2026-01-29T06:38:22.166Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-29T06:38:22.167Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-11&view_all=true", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:38:22.167Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-29T06:38:22.167Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-13&view_all=true", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:38:22.168Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-29T06:38:22.169Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-12&view_all=true", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:38:22.169Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-29T06:38:22.170Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-10&view_all=true", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:38:22.170Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-29T06:38:22.171Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-14&view_all=true", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:38:22.286Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-16", - "requester": 1, - "isAdmin": false -} -[2026-01-29T06:38:22.289Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-17", - "requester": 1, - "isAdmin": false -} -[2026-01-29T06:38:22.292Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-18", - "requester": 1, - "isAdmin": false -} -[2026-01-29T06:38:22.294Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-15", - "requester": 1, - "isAdmin": false -} -[2026-01-29T06:38:22.295Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-19", - "requester": 1, - "isAdmin": false -} -[2026-01-29T06:38:22.296Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-29T06:38:22.297Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-16&view_all=true", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:38:22.297Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-29T06:38:22.298Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-17&view_all=true", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:38:22.300Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 1 -} -[2026-01-29T06:38:22.301Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-18&view_all=true", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:38:22.303Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-29T06:38:22.303Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-15&view_all=true", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:38:22.304Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-29T06:38:22.305Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-19&view_all=true", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:38:22.423Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-21", - "requester": 1, - "isAdmin": false -} -[2026-01-29T06:38:22.426Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-22", - "requester": 1, - "isAdmin": false -} -[2026-01-29T06:38:22.428Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-20", - "requester": 1, - "isAdmin": false -} -[2026-01-29T06:38:22.430Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-23", - "requester": 1, - "isAdmin": false -} -[2026-01-29T06:38:22.433Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-24", - "requester": 1, - "isAdmin": false -} -[2026-01-29T06:38:22.435Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-29T06:38:22.437Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-21&view_all=true", - "statusCode": 200, - "duration": "16ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:38:22.438Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-29T06:38:22.440Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-22&view_all=true", - "statusCode": 200, - "duration": "15ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:38:22.440Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 1 -} -[2026-01-29T06:38:22.441Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-20&view_all=true", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:38:22.442Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-29T06:38:22.443Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-23&view_all=true", - "statusCode": 200, - "duration": "14ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:38:22.445Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 3 -} -[2026-01-29T06:38:22.446Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-24&view_all=true", - "statusCode": 200, - "duration": "14ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:38:22.562Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-26", - "requester": 1, - "isAdmin": false -} -[2026-01-29T06:38:22.563Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-27", - "requester": 1, - "isAdmin": false -} -[2026-01-29T06:38:22.564Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-28", - "requester": 1, - "isAdmin": false -} -[2026-01-29T06:38:22.565Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-25", - "requester": 1, - "isAdmin": false -} -[2026-01-29T06:38:22.567Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-29", - "requester": 1, - "isAdmin": false -} -[2026-01-29T06:38:22.568Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 3 -} -[2026-01-29T06:38:22.569Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 1 -} -[2026-01-29T06:38:22.570Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-27&view_all=true", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:38:22.570Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-29T06:38:22.572Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-28&view_all=true", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:38:22.573Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 1 -} -[2026-01-29T06:38:22.573Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-25&view_all=true", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:38:22.575Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-29T06:38:22.576Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-29&view_all=true", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:38:22.578Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-26&view_all=true", - "statusCode": 200, - "duration": "16ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:38:22.687Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-30", - "requester": 1, - "isAdmin": false -} -[2026-01-29T06:38:22.689Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-29T06:38:22.691Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-30&view_all=true", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:38:22.794Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:38:27.761Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:38:27.809Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:38:27.830Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-29", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:38:27.837Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:38:28.758Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:38:30.323Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:38:31.314Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:38:35.415Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T06:38:36.430Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:38:36.440Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:38:36.499Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/2", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:38:36.502Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/10", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:38:36.504Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/7", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:38:36.515Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/4", - "statusCode": 200, - "duration": "17ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:38:36.519Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/9", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:38:36.521Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/12", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:38:36.523Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/11", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:38:36.526Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/1", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:38:36.529Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/8", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:38:36.533Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/3", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:38:36.535Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/5", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:38:36.536Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/6", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:38:37.422Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:38:47.259Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/2", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:38:47.268Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/10", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:38:47.270Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/9", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:38:47.271Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/1", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:38:47.273Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/11", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:38:47.276Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/8", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:38:47.280Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/7", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:38:47.286Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/4", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:38:47.289Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/3", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:38:47.292Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/12", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:38:47.294Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/6", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:38:47.295Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/5", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:38:47.300Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:39:05.509Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T06:39:05.561Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:39:05.602Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:39:05.614Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-29", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:39:05.620Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:39:06.559Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:39:35.599Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T06:40:05.688Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T06:40:35.767Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T06:40:37.457Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:40:38.442Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:40:38.800Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:40:38.808Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:40:38.844Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/2", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:40:38.845Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/10", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:40:38.852Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/7", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:40:38.855Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/9", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:40:38.856Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/1", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:40:38.858Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/11", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:40:38.861Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/8", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:40:38.872Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/3", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:40:38.878Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/12", - "statusCode": 200, - "duration": "14ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:40:38.880Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/6", - "statusCode": 200, - "duration": "15ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:40:38.882Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/5", - "statusCode": 200, - "duration": "15ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:40:38.887Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/4", - "statusCode": 200, - "duration": "37ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:40:39.799Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:40:40.518Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/2", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:40:40.520Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/10", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:40:40.528Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/9", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:40:40.533Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/1", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:40:40.536Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/11", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:40:40.538Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/8", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:40:40.546Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/7", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:40:40.552Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/4", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:40:40.555Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/3", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:40:40.560Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/12", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:40:40.562Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/6", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:40:40.565Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/5", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:40:40.567Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:40:42.568Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:41:05.860Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T06:41:35.949Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T06:42:06.019Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T06:42:36.121Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T06:43:06.222Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T06:43:36.305Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T06:44:06.381Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T06:44:36.476Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T06:44:40.956Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "15ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:44:46.134Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:44:46.217Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:44:46.228Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:44:46.260Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-29", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:44:46.270Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:44:47.133Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:45:06.554Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T06:45:36.617Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T06:46:06.732Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T06:46:36.812Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T06:47:06.891Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T06:47:36.965Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T06:48:07.063Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T06:48:37.145Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T06:49:07.237Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T06:49:37.318Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T06:50:07.415Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T06:50:37.512Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T06:51:07.601Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T06:51:37.683Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T06:52:07.778Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T06:52:37.861Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T06:53:07.955Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T06:53:38.044Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T06:54:08.131Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T06:54:38.212Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T06:55:08.343Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T07:04:21.338Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T07:26:17.934Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T07:47:26.688Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T08:56:06.556Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T09:57:07.753Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T11:15:58.122Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T12:14:22.552Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T13:32:21.478Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T14:51:56.878Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T15:37:06.226Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T17:15:07.319Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T18:39:01.755Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T19:29:52.877Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T20:49:09.635Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T21:26:26.094Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T21:26:56.200Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T21:27:26.297Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T21:27:56.389Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T21:28:26.488Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T21:28:56.579Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T21:29:26.669Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T21:29:56.758Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T21:30:26.866Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T21:30:56.958Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T21:31:27.051Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T21:31:57.141Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T21:32:27.212Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T21:32:57.309Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T21:33:27.398Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T21:33:57.494Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T21:34:27.587Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T21:34:57.676Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T21:35:27.760Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T21:35:57.855Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T21:36:27.962Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T21:36:58.044Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T21:37:28.147Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T21:37:58.243Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T21:38:28.355Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T21:38:58.433Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T21:39:28.534Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T21:39:58.620Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T21:40:28.726Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T21:40:58.821Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T21:41:28.909Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T21:41:58.994Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T21:42:29.083Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T21:42:59.172Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T21:43:29.259Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T21:43:59.346Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T21:44:29.449Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T21:44:59.539Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T21:45:29.629Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T21:45:59.718Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T21:46:29.819Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T21:46:59.921Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T21:47:30.016Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T21:48:00.100Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T21:48:30.181Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T21:49:00.285Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T21:49:30.370Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T21:50:00.462Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T21:50:30.555Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T21:51:00.647Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T21:51:30.704Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T21:52:00.795Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T21:52:30.852Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T21:53:00.944Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T21:53:31.003Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T21:54:01.079Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T21:54:31.140Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T21:55:01.219Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T21:55:31.295Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T21:56:01.388Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T21:56:31.468Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T21:57:01.559Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T21:57:31.645Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T21:58:01.734Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T21:58:31.839Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T21:59:01.932Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T21:59:32.025Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T22:00:02.114Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T22:00:32.205Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T22:01:02.294Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T22:01:32.377Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T22:02:02.449Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T22:02:32.537Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T22:03:02.622Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T22:03:32.720Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T22:04:02.806Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T22:04:32.880Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T22:05:02.971Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T22:05:33.060Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T22:06:03.153Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T22:06:33.247Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T22:07:03.335Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T22:07:33.428Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T22:08:03.511Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T22:08:33.602Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T22:09:03.682Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T22:09:33.782Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T22:10:03.878Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T22:10:33.960Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T22:11:04.052Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T22:11:34.132Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T22:12:04.206Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T22:12:34.298Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T22:13:04.395Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T22:13:34.487Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T22:13:51.741Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T22:13:51.831Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T22:13:51.857Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T22:13:51.878Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-29", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T22:13:51.886Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T22:13:52.722Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T22:13:58.802Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "16ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T22:13:58.822Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects?is_active=1", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T22:13:58.840Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/safety-checks", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T22:13:58.847Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T22:13:58.856Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks/active/list", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T22:13:58.867Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?is_active=true", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T22:13:58.871Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/active/list", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T22:13:58.877Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-30", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T22:13:59.784Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T22:14:00.461Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-30", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T22:14:03.390Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-29", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T22:14:04.592Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T22:14:17.596Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-30", - "statusCode": 304, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T22:14:23.296Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T22:14:23.306Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T22:14:30.740Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T22:14:30.778Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T22:14:30.787Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T22:14:30.796Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-29", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T22:14:30.803Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T22:14:31.733Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T22:14:34.685Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T22:14:42.368Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T22:14:42.375Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/attendance/records?date=2026-01-29", - "method": "GET" -} -[2026-01-29T22:14:42.376Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/attendance/records?date=2026-01-29", - "statusCode": 404, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T22:14:42.380Z] [INFO] ℹ️ 출근 체크 목록 조회 요청 - Context: { - "date": "2026-01-29" -} -[2026-01-29T22:14:42.385Z] [INFO] ℹ️ 출근 체크 목록 조회 성공 - Context: { - "date": "2026-01-29", - "count": 10 -} -[2026-01-29T22:14:42.386Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/checkin-list?date=2026-01-29", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T22:14:43.308Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T22:14:48.419Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T22:14:48.466Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T22:14:48.473Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T22:14:48.483Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-29", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T22:14:48.489Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T22:14:49.418Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T22:14:54.207Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T22:14:54.253Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T22:14:54.258Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T22:14:54.266Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T22:14:54.272Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T22:14:54.282Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T22:14:55.198Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T22:15:04.781Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T22:15:06.350Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-30", - "created_by_user_id": 1, - "requester": 1, - "isAdmin": false -} -[2026-01-29T22:15:06.353Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-29T22:15:06.355Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-30", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T22:15:08.868Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-29", - "created_by_user_id": 1, - "requester": 1, - "isAdmin": false -} -[2026-01-29T22:15:08.871Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-29T22:15:08.872Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-29", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T22:15:11.179Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-28", - "created_by_user_id": 1, - "requester": 1, - "isAdmin": false -} -[2026-01-29T22:15:11.182Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-29T22:15:11.184Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-28", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T22:15:19.174Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-27", - "created_by_user_id": 1, - "requester": 1, - "isAdmin": false -} -[2026-01-29T22:15:19.177Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 1 -} -[2026-01-29T22:15:19.179Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-27", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T22:15:32.113Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-26", - "created_by_user_id": 1, - "requester": 1, - "isAdmin": false -} -[2026-01-29T22:15:32.116Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 3 -} -[2026-01-29T22:15:32.118Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-26", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T22:15:34.882Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T22:15:38.477Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T22:16:04.963Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T22:16:10.731Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports/from-tbm", - "statusCode": 201, - "duration": "16ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T22:16:10.740Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports/from-tbm", - "statusCode": 201, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T22:16:10.750Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports/from-tbm", - "statusCode": 201, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T22:16:10.759Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports/from-tbm", - "statusCode": 201, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T22:16:10.769Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports/from-tbm", - "statusCode": 201, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T22:16:10.779Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports/from-tbm", - "statusCode": 201, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T22:16:10.785Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports/from-tbm", - "statusCode": 201, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T22:16:10.791Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports/from-tbm", - "statusCode": 201, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T22:16:10.798Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports/from-tbm", - "statusCode": 201, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T22:16:10.803Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T22:16:35.040Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T22:16:36.352Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports/from-tbm", - "statusCode": 201, - "duration": "11ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T22:16:36.362Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports/from-tbm", - "statusCode": 201, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T22:16:36.369Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports/from-tbm", - "statusCode": 201, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T22:16:36.377Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports/from-tbm", - "statusCode": 201, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T22:16:36.384Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T22:16:39.252Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-30", - "created_by_user_id": 1, - "requester": 1, - "isAdmin": false -} -[2026-01-29T22:16:39.256Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-29T22:16:39.257Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-30", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T22:16:47.643Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T22:16:47.683Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T22:16:47.690Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T22:16:47.696Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T22:16:47.701Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T22:16:47.706Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T22:16:48.644Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T22:16:50.545Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-30", - "created_by_user_id": 1, - "requester": 1, - "isAdmin": false -} -[2026-01-29T22:16:50.547Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-01-29T22:16:50.549Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-30", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T22:16:53.738Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-27", - "created_by_user_id": 1, - "requester": 1, - "isAdmin": false -} -[2026-01-29T22:16:53.741Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 10 -} -[2026-01-29T22:16:53.744Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-27", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T22:16:58.742Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T22:16:58.787Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T22:16:58.792Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T22:16:58.802Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-29", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T22:16:58.809Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T22:16:59.744Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T22:17:05.136Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T22:17:05.742Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T22:17:06.733Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T22:17:06.741Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T22:17:11.948Z] [INFO] ℹ️ 프로젝트별-작업별 시간 분석 요청 - Context: { - "start": "2026-01-01", - "end": "2026-01-31" -} -[2026-01-29T22:17:11.953Z] [INFO] ℹ️ 작업자별 통계 조회 요청 - Context: { - "start": "2026-01-01", - "end": "2026-01-31" -} -[2026-01-29T22:17:11.959Z] [INFO] ℹ️ 작업자별 통계 조회 성공 - Context: { - "start": "2026-01-01", - "end": "2026-01-31", - "workerCount": 10 -} -[2026-01-29T22:17:11.961Z] [INFO] ℹ️ 프로젝트별-작업별 시간 분석 성공 - Context: { - "start": "2026-01-01", - "end": "2026-01-31", - "projectCount": 4, - "workTypeCount": 3, - "totalHours": 180 -} -[2026-01-29T22:17:11.963Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-analysis/worker-stats?start=2026-01-01&end=2026-01-31", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T22:17:11.964Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-analysis/project-worktype-analysis?start=2026-01-01&end=2026-01-31", - "statusCode": 200, - "duration": "19ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T22:17:11.970Z] [INFO] ℹ️ 최근 작업 현황 조회 요청 - Context: { - "start": "2026-01-01", - "end": "2026-01-31", - "limit": 2000 -} -[2026-01-29T22:17:11.974Z] [INFO] ℹ️ 최근 작업 현황 조회 성공 - Context: { - "start": "2026-01-01", - "end": "2026-01-31", - "limit": 2000, - "resultCount": 23 -} -[2026-01-29T22:17:11.977Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-analysis/recent-work?start=2026-01-01&end=2026-01-31&limit=2000", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T22:17:27.133Z] [INFO] ℹ️ 최근 작업 현황 조회 요청 - Context: { - "start": "2026-01-01", - "end": "2026-01-31", - "limit": 2000 -} -[2026-01-29T22:17:27.136Z] [INFO] ℹ️ 에러 분석 요청 - Context: { - "start": "2026-01-01", - "end": "2026-01-31" -} -[2026-01-29T22:17:27.138Z] [INFO] ℹ️ 최근 작업 현황 조회 성공 - Context: { - "start": "2026-01-01", - "end": "2026-01-31", - "limit": 2000, - "resultCount": 23 -} -[2026-01-29T22:17:27.139Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/work-analysis/recent-work?start=2026-01-01&end=2026-01-31&limit=2000", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T22:17:27.141Z] [INFO] ℹ️ 에러 분석 성공 - Context: { - "start": "2026-01-01", - "end": "2026-01-31" -} -[2026-01-29T22:17:27.143Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-analysis/error-analysis?start=2026-01-01&end=2026-01-31", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T22:17:35.226Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T22:17:51.681Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T22:17:51.724Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T22:17:51.730Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T22:17:51.740Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-29", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T22:17:51.747Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T22:17:52.679Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T22:18:05.364Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T22:18:35.475Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T22:19:05.573Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T22:19:35.662Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T22:20:05.751Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T22:20:35.851Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T22:21:05.945Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T22:21:36.037Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T22:22:06.127Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T22:22:36.227Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T22:23:06.316Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T22:23:36.409Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T22:24:06.503Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T22:24:36.576Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T22:25:06.651Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T22:25:36.748Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T22:26:06.826Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T22:26:36.902Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T22:27:06.977Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T22:27:37.047Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T22:28:07.119Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T22:28:37.205Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T22:29:07.266Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T22:29:37.336Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T22:30:07.407Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T22:30:37.480Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T22:31:07.548Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T22:31:37.614Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T22:32:07.688Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T22:32:37.752Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T22:33:07.830Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T22:33:37.890Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T22:34:07.962Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T22:34:38.041Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T22:35:08.117Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T22:35:38.178Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T22:36:08.239Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T22:36:38.305Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T22:37:08.379Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T22:37:38.451Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T22:38:08.521Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T22:38:38.594Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T22:39:08.669Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T22:39:38.729Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T22:40:08.805Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T22:40:38.894Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T22:41:01.411Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T22:41:02.339Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T22:41:08.974Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T22:41:39.044Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T22:41:45.673Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T22:41:45.676Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/types", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T22:41:45.677Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T22:41:46.592Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T22:42:09.125Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T22:42:39.195Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T22:43:09.268Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T22:43:39.344Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T22:44:09.426Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T22:44:27.016Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T22:44:27.069Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 304, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T22:44:27.077Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T22:44:27.087Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-29", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T22:44:27.095Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T22:44:27.997Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T22:44:39.524Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T22:45:09.610Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T22:45:39.698Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T22:46:09.789Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T22:46:39.878Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T22:47:09.966Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T22:47:40.063Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T22:48:10.160Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T22:48:40.253Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T22:49:10.344Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T22:49:40.437Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T22:50:10.523Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T22:50:40.623Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T22:51:10.714Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T22:51:40.806Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T22:52:10.895Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T22:52:40.986Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T22:53:11.075Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T22:53:41.164Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T22:54:11.272Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T22:54:41.357Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T22:55:11.442Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T22:55:41.533Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T22:56:11.604Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T22:56:41.694Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T22:57:11.779Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T22:57:41.892Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T22:58:11.978Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T22:58:42.064Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T22:59:12.171Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T22:59:42.271Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T23:00:12.358Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T23:00:42.459Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T23:01:12.555Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T23:01:42.672Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T23:02:12.769Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T23:02:42.857Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T23:03:12.952Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T23:03:43.042Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T23:04:13.134Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T23:04:43.247Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T23:05:13.340Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T23:05:43.427Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T23:06:13.515Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T23:06:43.605Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T23:07:13.689Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T23:07:43.772Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T23:08:13.847Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T23:08:43.946Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T23:09:14.045Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T23:09:44.137Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T23:10:14.258Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T23:10:44.358Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T23:11:14.440Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T23:11:44.532Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T23:12:14.632Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T23:12:44.732Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T23:13:14.796Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T23:13:21.818Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "14ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T23:13:21.888Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/projects?is_active=1", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T23:13:21.927Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/safety-checks", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T23:13:21.934Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T23:13:21.944Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tasks/active/list", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T23:13:21.950Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces?is_active=true", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T23:13:21.954Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/active/list", - "statusCode": 304, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T23:13:21.960Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-30", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T23:13:22.802Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T23:13:44.893Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T23:14:14.988Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T23:14:45.062Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T23:15:15.149Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T23:15:45.237Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T23:16:15.332Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T23:16:45.408Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T23:17:15.510Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T23:17:45.601Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T23:18:11.253Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T23:18:11.280Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T23:18:11.291Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T23:18:11.303Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-29", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T23:18:11.310Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T23:18:12.235Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T23:18:15.689Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T23:18:19.775Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T23:18:20.769Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T23:18:21.194Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T23:18:21.196Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T23:18:21.243Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/2", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T23:18:21.244Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/10", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T23:18:21.245Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/4", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T23:18:21.247Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/3", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T23:18:21.248Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/7", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T23:18:21.252Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/9", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T23:18:21.257Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/11", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T23:18:21.260Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/8", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T23:18:21.262Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/1", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T23:18:21.265Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/6", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T23:18:21.268Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/5", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T23:18:21.271Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/12", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T23:18:22.183Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T23:18:24.427Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/10", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T23:18:24.429Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/2", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T23:18:24.435Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/9", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T23:18:24.438Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/11", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T23:18:24.439Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/1", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T23:18:24.441Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/8", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T23:18:24.446Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/7", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T23:18:24.449Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/4", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T23:18:24.451Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/3", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T23:18:24.456Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/12", - "statusCode": 304, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T23:18:24.457Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/6", - "statusCode": 304, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T23:18:24.458Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/5", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T23:18:24.467Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T23:18:31.567Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T23:18:38.253Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T23:18:45.772Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T23:18:51.456Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T23:18:51.491Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T23:18:51.497Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T23:18:51.511Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-29", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T23:18:51.517Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T23:18:52.455Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T23:19:06.017Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T23:19:06.064Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T23:19:06.074Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T23:19:06.084Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-29", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T23:19:06.089Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T23:19:07.010Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T23:19:10.802Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T23:19:10.868Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T23:19:10.875Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T23:19:10.887Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-29", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T23:19:10.893Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T23:19:11.802Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T23:19:14.570Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/active/list", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T23:19:14.605Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T23:19:14.610Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T23:19:14.611Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-29", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T23:19:14.616Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T23:19:15.568Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T23:19:15.866Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T23:19:36.364Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/work-issues/categories/type/safety", - "method": "GET" -} -[2026-01-29T23:19:36.366Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/work-issues/categories/type/safety", - "statusCode": 404, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T23:19:37.433Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/work-issues/categories/type/nonconformity", - "method": "GET" -} -[2026-01-29T23:19:37.435Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/work-issues/categories/type/nonconformity", - "statusCode": 404, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T23:19:46.003Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T23:19:51.075Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/work-issues/stats/summary", - "method": "GET" -} -[2026-01-29T23:19:51.078Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/work-issues/stats/summary", - "statusCode": 404, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T23:19:51.082Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/work-issues?", - "method": "GET" -} -[2026-01-29T23:19:51.084Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/work-issues?", - "statusCode": 404, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T23:19:52.051Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T23:20:05.420Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T23:20:05.516Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T23:20:05.523Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T23:20:05.539Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-29", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T23:20:05.545Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T23:20:06.417Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T23:20:14.996Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T23:20:15.991Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T23:20:16.088Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T23:20:46.180Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T23:21:16.275Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T23:21:16.629Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T23:21:16.680Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T23:21:16.695Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T23:21:16.710Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-29", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T23:21:16.716Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T23:21:17.626Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T23:21:46.368Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T23:22:16.454Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T23:22:46.547Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T23:23:16.634Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T23:23:46.738Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T23:24:16.827Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T23:24:46.934Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T23:25:17.025Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T23:25:47.116Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T23:26:17.214Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T23:26:47.311Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T23:27:17.415Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T23:27:47.500Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T23:28:17.586Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T23:28:47.681Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T23:29:17.771Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T23:29:47.858Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T23:29:54.837Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T23:29:55.825Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T23:29:55.828Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T23:29:57.794Z] [INFO] ℹ️ 프로젝트별-작업별 시간 분석 요청 - Context: { - "start": "2026-01-01", - "end": "2026-01-31" -} -[2026-01-29T23:29:57.801Z] [INFO] ℹ️ 작업자별 통계 조회 요청 - Context: { - "start": "2026-01-01", - "end": "2026-01-31" -} -[2026-01-29T23:29:57.805Z] [INFO] ℹ️ 프로젝트별-작업별 시간 분석 성공 - Context: { - "start": "2026-01-01", - "end": "2026-01-31", - "projectCount": 4, - "workTypeCount": 3, - "totalHours": 180 -} -[2026-01-29T23:29:57.809Z] [INFO] ℹ️ 작업자별 통계 조회 성공 - Context: { - "start": "2026-01-01", - "end": "2026-01-31", - "workerCount": 10 -} -[2026-01-29T23:29:57.813Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-analysis/project-worktype-analysis?start=2026-01-01&end=2026-01-31", - "statusCode": 200, - "duration": "19ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T23:29:57.814Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-analysis/worker-stats?start=2026-01-01&end=2026-01-31", - "statusCode": 200, - "duration": "14ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T23:29:57.822Z] [INFO] ℹ️ 최근 작업 현황 조회 요청 - Context: { - "start": "2026-01-01", - "end": "2026-01-31", - "limit": 2000 -} -[2026-01-29T23:29:57.825Z] [INFO] ℹ️ 최근 작업 현황 조회 성공 - Context: { - "start": "2026-01-01", - "end": "2026-01-31", - "limit": 2000, - "resultCount": 23 -} -[2026-01-29T23:29:57.827Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-analysis/recent-work?start=2026-01-01&end=2026-01-31&limit=2000", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T23:30:06.845Z] [INFO] ℹ️ 최근 작업 현황 조회 요청 - Context: { - "start": "2026-01-01", - "end": "2026-01-31", - "limit": 2000 -} -[2026-01-29T23:30:06.851Z] [INFO] ℹ️ 최근 작업 현황 조회 성공 - Context: { - "start": "2026-01-01", - "end": "2026-01-31", - "limit": 2000, - "resultCount": 23 -} -[2026-01-29T23:30:06.853Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/work-analysis/recent-work?start=2026-01-01&end=2026-01-31&limit=2000", - "statusCode": 304, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T23:30:06.855Z] [INFO] ℹ️ 에러 분석 요청 - Context: { - "start": "2026-01-01", - "end": "2026-01-31" -} -[2026-01-29T23:30:06.858Z] [INFO] ℹ️ 에러 분석 성공 - Context: { - "start": "2026-01-01", - "end": "2026-01-31" -} -[2026-01-29T23:30:06.859Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-analysis/error-analysis?start=2026-01-01&end=2026-01-31", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T23:30:17.951Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T23:30:30.541Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T23:30:30.572Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T23:30:30.581Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T23:30:30.597Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-29", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T23:30:30.605Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T23:30:31.534Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T23:30:48.050Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T23:31:18.124Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T23:31:48.222Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T23:32:18.313Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T23:32:48.402Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T23:33:18.492Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T23:33:48.597Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T23:34:18.697Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T23:34:48.795Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T23:35:18.888Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T23:35:49.005Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T23:36:19.107Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T23:36:49.219Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T23:37:19.307Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T23:37:49.403Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T23:38:19.491Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T23:38:49.575Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T23:39:19.658Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T23:39:49.755Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T23:40:19.853Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T23:40:49.947Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T23:41:20.021Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T23:41:50.123Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T23:42:20.207Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T23:42:50.295Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T23:43:20.381Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T23:43:50.469Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T23:44:20.567Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T23:44:50.653Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T23:45:20.747Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T23:45:50.839Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T23:46:20.926Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T23:46:51.025Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T23:47:21.102Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T23:47:51.196Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T23:48:21.278Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T23:48:51.359Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T23:49:21.458Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T23:49:51.549Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T23:50:21.647Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T23:51:16.542Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T23:51:46.649Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T23:56:48.887Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T23:57:18.975Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T23:57:49.065Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T23:58:19.171Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T23:58:49.266Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T23:59:19.369Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-29T23:59:49.456Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T00:00:19.553Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T00:00:49.642Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T00:01:05.873Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "14ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:01:05.879Z] [INFO] ℹ️ 휴가 유형 목록 조회 요청 -[2026-01-30T00:01:05.882Z] [INFO] ℹ️ 휴가 유형 목록 조회 성공 - Context: { - "count": 4 -} -[2026-01-30T00:01:05.883Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/vacation-types", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:01:05.889Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/vacation-requests/pending", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:01:05.895Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/vacation-requests", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:01:06.749Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:01:11.418Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:01:11.465Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:01:11.478Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:01:11.496Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-30", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:01:11.508Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:01:12.410Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:01:19.366Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/api/vacation-requests?start_date=2026-01-01&end_date=2026-12-31&status=approved", - "method": "GET" -} -[2026-01-30T00:01:19.368Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/api/vacation-requests?start_date=2026-01-01&end_date=2026-12-31&status=approved", - "statusCode": 404, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:01:19.728Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T00:01:20.279Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:01:21.740Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/api/vacation-requests?start_date=2026-01-01&end_date=2026-01-31&status=approved", - "method": "GET" -} -[2026-01-30T00:01:21.742Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/api/vacation-requests?start_date=2026-01-01&end_date=2026-01-31&status=approved", - "statusCode": 404, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:01:24.709Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:01:24.757Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:01:24.836Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:01:24.862Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-30", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:01:24.874Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:01:25.712Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:01:29.844Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "21ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:01:29.878Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects?is_active=1", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:01:29.920Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/safety-checks", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:01:29.927Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:01:29.932Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks/active/list", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:01:29.938Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?is_active=true", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:01:29.943Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/active/list", - "statusCode": 304, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:01:29.948Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-30", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:01:30.821Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:01:32.136Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:01:32.193Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:01:32.204Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:01:32.220Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-30", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:01:32.226Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:01:33.138Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:01:49.834Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T00:02:19.923Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T00:02:50.015Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T00:03:20.093Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T00:03:50.183Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T00:04:20.269Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T00:04:50.358Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T00:05:20.448Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T00:05:50.538Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T00:06:20.647Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T00:06:50.742Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T00:07:20.828Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T00:07:50.917Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T00:08:21.000Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T00:08:51.094Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T00:09:21.176Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T00:09:51.276Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T00:10:21.367Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T00:10:51.463Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T00:10:58.597Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:10:58.669Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/projects?is_active=1", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:10:58.681Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/safety-checks", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:10:58.688Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:10:58.695Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tasks/active/list", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:10:58.702Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces?is_active=true", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:10:58.705Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/active/list", - "statusCode": 304, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:10:58.710Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-30", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:10:59.593Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:11:21.553Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T00:11:29.796Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:11:29.816Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:11:42.322Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/tbm/sessions", - "statusCode": 201, - "duration": "15ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:11:42.332Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/tbm/sessions/10/team/batch", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:11:42.344Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-30", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:11:45.670Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/10/safety", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:11:51.642Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T00:12:21.736Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T00:12:35.816Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:12:35.856Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:12:35.863Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:12:35.880Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-30", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:12:35.886Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:12:36.813Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:12:38.351Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:12:38.388Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:12:38.396Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:12:38.404Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:12:38.412Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:12:38.419Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:12:39.339Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:12:51.829Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T00:13:02.650Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports/from-tbm", - "statusCode": 201, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:13:02.658Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:13:17.854Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:13:17.891Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:13:17.897Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:13:17.908Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-30", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:13:17.914Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:13:18.860Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:13:21.924Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T00:13:33.500Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:13:33.529Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/purposes/active", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:13:33.577Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests?requester_id=1", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:13:34.495Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:13:42.717Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:13:42.725Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:13:49.289Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/workplace-visits/requests", - "statusCode": 201, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:13:49.305Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests?requester_id=1", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:13:52.036Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T00:13:53.242Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:13:53.288Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:13:53.296Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:13:53.306Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-30", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:13:53.315Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:13:54.425Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests?status=pending", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:13:54.464Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:13:54.467Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:13:55.421Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:13:57.164Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "PUT", - "url": "/api/workplace-visits/requests/3/approve", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:13:57.172Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests?status=pending", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:13:57.182Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:13:57.183Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:13:58.764Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests?status=approved", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:13:58.777Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:14:02.981Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests/3", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:14:03.976Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:14:22.129Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T00:14:25.162Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:14:25.205Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:14:25.210Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:14:25.220Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-30", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:14:25.228Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:14:26.160Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:14:47.920Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:14:48.915Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:14:49.683Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:14:49.740Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:14:50.683Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:14:52.162Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:14:52.166Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:14:52.202Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T00:14:52.226Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/2", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:14:52.228Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/10", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:14:52.229Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/7", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:14:52.230Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/4", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:14:52.231Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/3", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:14:52.234Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/9", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:14:52.234Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/1", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:14:52.235Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/11", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:14:52.236Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/8", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:14:52.240Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/6", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:14:52.241Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/5", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:14:52.242Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/12", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:14:53.127Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/2", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:14:53.129Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/10", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:14:53.130Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/9", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:14:53.131Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/1", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:14:53.134Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/8", - "statusCode": 304, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:14:53.138Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/7", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:14:53.139Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/11", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:14:53.140Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/4", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:14:53.141Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/3", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:14:53.143Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/12", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:14:53.145Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/6", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:14:53.145Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/5", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:14:53.150Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:14:53.156Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:14:55.860Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/10", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:14:55.865Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/2", - "statusCode": 304, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:14:55.866Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/9", - "statusCode": 304, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:14:55.867Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/1", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:14:55.868Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/11", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:14:55.870Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/8", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:14:55.879Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/7", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:14:55.880Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/4", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:14:55.880Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/3", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:14:55.881Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/12", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:14:55.882Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/6", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:14:55.882Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/5", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:14:58.669Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/10", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:14:58.670Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/9", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:14:58.672Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/2", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:14:58.676Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/1", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:14:58.678Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/11", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:14:58.678Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/8", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:14:58.684Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/7", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:14:58.685Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/4", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:14:58.685Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/3", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:14:58.687Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/12", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:14:58.687Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/6", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:14:58.688Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/5", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:14:58.695Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 304, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:14:59.706Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:15:12.809Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:15:15.173Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:15:15.257Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:15:15.263Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:15:15.274Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-30", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:15:15.281Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:15:16.176Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:15:22.286Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T00:15:38.984Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/active/list", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:15:39.035Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 304, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:15:39.041Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:15:39.043Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-30", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:15:39.047Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:15:39.981Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:15:52.379Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T00:16:22.464Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T00:16:52.549Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T00:17:22.641Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T00:17:52.736Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T00:18:01.086Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:18:01.158Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/purposes/active", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:18:01.198Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests?requester_id=1", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:18:02.086Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:18:13.303Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:18:13.343Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:18:13.356Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:18:13.372Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-30", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:18:13.380Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:18:14.302Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:18:22.777Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests?status=pending", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:18:22.812Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T00:18:22.817Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:18:22.818Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:18:23.778Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:18:24.660Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests?status=approved", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:18:24.674Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:18:31.079Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:18:31.123Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:18:31.136Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:18:31.146Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-30", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:18:31.152Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:18:32.076Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:18:44.823Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/active/list", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:18:44.867Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:18:44.875Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:18:44.876Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-30", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:18:44.882Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:18:45.824Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:18:52.469Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/work-issues/categories/type/nonconformity", - "method": "GET" -} -[2026-01-30T00:18:52.470Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/work-issues/categories/type/nonconformity", - "statusCode": 404, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-30T00:18:52.906Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T00:19:22.998Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T00:19:53.085Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T00:20:23.178Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T00:20:53.280Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T00:21:23.373Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T00:21:53.458Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T00:22:23.554Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T00:22:53.693Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T00:32:45.546Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T00:33:24.357Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T00:33:54.456Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T00:36:03.493Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T00:36:33.581Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T00:37:50.092Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T00:39:58.469Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T00:58:22.893Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T01:05:58.511Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T01:18:54.048Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T01:23:20.481Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T01:23:50.602Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T01:24:20.693Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T01:24:50.761Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T01:25:20.847Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T01:25:50.938Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T01:26:21.026Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T01:26:51.141Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T01:27:21.233Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T01:27:51.330Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T01:28:21.449Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T01:28:51.535Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T01:29:21.638Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T01:29:51.750Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T01:30:21.846Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T01:30:51.950Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T01:31:22.049Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T01:31:52.133Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T01:32:22.226Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T01:32:52.319Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T01:33:22.407Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T01:33:52.488Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T01:34:22.595Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T01:34:52.698Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T01:35:22.798Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T01:35:52.882Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T01:36:22.980Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T01:36:53.081Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T01:37:23.177Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T01:37:53.260Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T01:38:23.352Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T01:38:53.430Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T01:39:23.517Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T01:39:53.605Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T01:40:23.694Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T01:40:53.775Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T01:41:23.894Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T01:41:54.020Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T01:42:24.119Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T01:42:54.221Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T01:43:24.323Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T01:43:54.410Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T01:44:24.530Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T01:44:54.624Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T01:45:24.709Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T01:45:54.788Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T01:46:24.880Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T01:46:54.968Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T01:47:25.064Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T01:47:55.156Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T01:48:25.264Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T01:48:55.353Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T01:49:25.439Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T01:49:55.531Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T01:50:25.626Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T01:50:55.719Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T01:51:25.811Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T01:51:55.898Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T01:52:25.980Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T01:52:56.071Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T01:53:26.160Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T01:53:56.253Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T01:54:26.345Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T01:54:56.436Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T01:55:26.521Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T01:55:56.605Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T01:56:26.709Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T01:56:56.810Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T01:57:26.911Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T01:57:57.016Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T01:58:27.115Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T01:58:57.206Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T01:59:27.301Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T01:59:57.388Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T02:00:27.473Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T02:00:57.556Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T02:01:27.649Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T02:01:57.756Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T02:02:27.848Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T02:02:57.952Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T02:03:28.043Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T02:03:58.152Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T02:04:28.245Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T02:04:58.336Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T02:05:28.430Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T02:05:58.520Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T02:06:28.609Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T02:06:58.702Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T02:07:28.783Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T02:07:58.875Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T02:08:28.967Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T02:08:59.057Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T02:09:29.150Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T02:09:59.243Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T02:10:29.344Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T02:10:59.457Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T02:11:29.548Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T02:11:59.633Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T02:12:29.724Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T02:12:59.814Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T02:13:29.919Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T02:14:00.016Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T02:14:30.101Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T02:15:00.200Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T02:15:30.292Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T02:16:00.399Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T02:16:30.487Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T02:17:00.570Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T02:17:30.660Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T02:18:00.757Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T02:18:30.846Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T02:19:00.935Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T02:19:31.037Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T02:20:01.141Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T02:20:31.236Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T02:21:01.326Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T02:21:31.427Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T02:22:01.521Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T02:22:31.613Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T02:23:01.705Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T02:23:31.797Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T02:24:01.891Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T02:24:31.979Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T02:25:02.064Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T02:25:32.147Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T02:26:02.252Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T02:26:32.337Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T02:27:02.432Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T02:27:32.522Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T02:28:02.577Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T02:28:32.638Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T02:29:02.689Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T02:29:32.741Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T02:30:02.794Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T02:30:32.844Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T02:31:02.908Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T02:31:32.983Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T02:32:03.034Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T02:32:33.087Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T02:33:03.140Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T02:33:33.194Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T02:34:03.274Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T02:34:33.330Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T02:35:03.396Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T02:35:33.447Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T02:36:03.505Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T02:36:33.558Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T02:37:03.610Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T02:37:33.662Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T02:38:03.716Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T02:38:33.768Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T02:39:03.819Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T02:39:33.868Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T02:40:03.923Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T02:40:33.975Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T02:41:04.026Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T02:41:34.090Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T02:42:04.153Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T02:42:34.211Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T02:43:04.263Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T02:43:34.319Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T02:44:04.373Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T02:44:34.435Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T02:45:04.487Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T02:45:34.550Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T02:46:04.597Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T02:46:34.655Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T02:47:04.720Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T02:47:34.788Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T02:48:04.839Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T02:48:34.890Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T02:49:04.941Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T02:49:34.992Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T02:50:05.052Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T02:50:35.114Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T02:51:05.170Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T02:51:35.224Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T02:52:05.278Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T02:52:35.354Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T02:53:05.402Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T02:53:35.457Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T02:54:05.517Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T02:54:35.594Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T02:55:05.651Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T02:55:35.717Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T02:56:05.771Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T02:56:35.823Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T02:57:05.874Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T02:57:35.924Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T02:58:05.976Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T02:58:36.026Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T02:59:06.087Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T02:59:36.146Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T03:00:06.197Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T03:00:36.256Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T03:01:06.310Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T03:01:36.380Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T03:02:06.432Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T03:02:36.498Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T03:03:06.552Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T03:03:36.602Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T03:04:06.662Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T03:04:36.721Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T03:05:06.787Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T03:05:36.896Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T03:06:06.973Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T03:06:37.043Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T03:07:07.144Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T03:07:37.225Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T03:08:07.311Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T03:08:37.392Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T03:09:07.477Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T03:09:37.566Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T03:10:07.652Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T03:10:37.745Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T03:11:07.866Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T03:11:37.961Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T03:12:08.074Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T03:12:38.174Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T03:13:08.267Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T03:13:38.352Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T03:14:08.443Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T03:14:38.530Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T03:15:08.658Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T03:15:38.749Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T03:16:08.837Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T03:16:38.921Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T03:17:08.997Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T03:17:39.088Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T03:18:09.179Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T03:18:39.265Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T03:19:09.383Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T03:19:39.478Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T03:20:09.580Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T03:20:39.682Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T03:21:09.806Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "6ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T03:21:39.905Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T03:22:09.996Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T03:22:40.098Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T03:23:10.197Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T03:23:40.308Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T03:24:10.400Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T03:24:40.498Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T03:25:10.611Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T03:25:40.705Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T03:26:10.806Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T03:26:40.895Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T03:27:10.984Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T03:27:41.082Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T03:28:11.170Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T03:28:41.275Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T03:29:11.361Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T03:29:41.451Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T03:30:11.539Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T03:30:41.615Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T03:31:11.701Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T03:31:41.803Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T03:32:11.896Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T03:32:41.995Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T03:33:12.081Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T03:33:42.167Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T03:34:12.256Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T03:34:42.349Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T03:35:12.445Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T03:35:42.527Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T03:36:12.624Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T03:36:42.715Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T03:37:12.804Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T03:37:42.894Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T03:38:12.981Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T03:38:43.070Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T03:39:13.166Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T03:39:43.265Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T03:40:13.370Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T03:40:43.457Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T03:41:13.541Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T03:41:43.629Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T03:42:13.926Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T03:42:44.044Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T03:43:14.136Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T03:43:44.278Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T03:44:14.366Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T03:44:44.522Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T03:45:14.606Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T03:45:44.692Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T03:46:14.773Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T03:46:44.865Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T03:47:14.946Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T03:47:45.025Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T03:48:15.121Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T03:48:45.208Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T03:49:15.302Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T03:49:45.362Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T03:50:15.466Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T03:50:45.553Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T03:51:15.647Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T03:51:45.748Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T03:52:15.853Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T03:52:45.950Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T03:53:16.028Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T03:53:46.110Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T03:54:16.208Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T03:54:46.312Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T03:55:16.420Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T03:55:46.515Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T03:56:16.599Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T03:56:46.693Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T03:57:16.830Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T03:57:46.947Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T03:58:17.041Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T03:58:47.136Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T03:59:17.226Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T03:59:47.337Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T04:00:17.436Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T04:00:47.541Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T04:01:17.647Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T04:01:47.745Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T04:02:17.848Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T04:02:47.936Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T04:03:18.025Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T04:03:48.115Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T04:04:18.207Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T04:04:48.302Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T04:05:18.396Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T04:05:48.486Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T04:06:18.592Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T04:06:48.689Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T04:07:18.795Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T04:07:48.896Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T04:08:18.953Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T04:08:49.033Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T04:09:19.106Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T04:09:49.200Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T04:10:19.288Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T04:10:49.383Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T04:11:19.473Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T04:11:49.561Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T04:12:19.648Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T04:12:49.741Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T04:13:19.828Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T04:13:49.917Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T04:14:20.016Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T04:14:50.105Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T04:15:20.191Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T04:15:50.306Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T04:16:20.396Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T04:16:50.507Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T04:17:20.604Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T04:17:50.703Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T04:18:20.791Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T04:18:50.890Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T04:19:20.970Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T04:19:51.067Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T04:20:21.149Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T04:20:51.250Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T04:21:21.353Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T04:21:51.501Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T04:22:21.593Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T04:22:51.718Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T04:23:21.818Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T04:23:51.913Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T04:24:22.006Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T04:24:52.119Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T04:25:22.219Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T04:25:52.314Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T04:26:22.422Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T04:26:52.529Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T04:27:22.627Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T04:27:52.731Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T04:28:22.833Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T04:28:52.940Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T04:29:23.032Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T04:29:53.137Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T04:30:23.226Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T04:30:53.310Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T04:31:23.394Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T04:31:53.483Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T04:32:23.579Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T04:32:53.668Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T04:33:23.764Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T04:33:53.852Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T04:34:23.942Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T04:34:54.033Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T04:35:24.135Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T04:35:54.228Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T04:36:24.319Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T04:36:54.416Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T04:37:24.510Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T04:37:54.621Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T04:38:24.730Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T04:38:54.879Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T04:39:25.006Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T04:39:55.110Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T04:40:25.226Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T04:40:55.323Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T04:41:25.408Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T04:41:55.521Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T04:42:25.611Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T04:42:55.724Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T04:43:25.821Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T04:43:55.917Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T04:44:26.012Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T04:44:56.107Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T04:45:26.204Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T04:45:56.297Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T04:46:26.392Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T04:46:56.483Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T04:47:26.574Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T04:47:56.669Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T04:48:26.763Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T04:48:56.856Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T04:49:26.942Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T04:49:57.025Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T04:50:27.116Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T04:50:57.215Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T04:51:27.305Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T04:51:57.395Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T04:52:27.503Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T04:52:57.602Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T04:53:27.706Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T04:53:57.799Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T04:54:27.894Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T04:54:57.985Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T04:55:28.077Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T04:55:58.165Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T04:56:28.257Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T04:56:58.349Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T04:57:28.448Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T04:57:58.538Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T04:58:28.624Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T04:58:58.715Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T04:59:28.799Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T04:59:58.875Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T05:00:28.961Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T05:00:59.060Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T05:01:29.137Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T05:01:59.213Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T05:02:29.294Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T05:02:59.392Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T05:03:29.492Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T05:03:59.582Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T05:04:29.678Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T05:04:59.767Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T05:05:29.856Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T05:05:59.944Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T05:06:30.031Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T05:07:00.111Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T05:07:30.203Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T05:08:00.306Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T05:08:30.404Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T05:09:00.491Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T05:09:30.583Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T05:10:00.651Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T05:10:30.722Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T05:11:00.802Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T05:11:30.889Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T05:12:00.967Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T05:12:31.052Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T05:13:01.141Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T05:13:31.231Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T05:14:01.316Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T05:14:31.398Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T05:15:01.494Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T05:15:31.582Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T05:16:01.701Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T05:16:31.795Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T05:17:01.891Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T05:17:31.992Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T05:18:02.097Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T05:18:32.191Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T05:19:02.310Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T05:19:32.397Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T05:20:02.495Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T05:20:32.591Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T05:21:02.701Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T05:21:32.797Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T05:22:02.900Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T05:22:33.010Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T05:23:03.111Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T05:23:33.193Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T05:24:03.289Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T05:24:33.379Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T05:25:03.472Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T05:25:33.577Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T05:26:03.687Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T05:26:33.771Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T05:27:03.899Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "6ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T05:27:33.993Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T05:28:04.081Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T05:28:34.186Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T05:29:04.277Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T05:29:34.398Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T05:30:04.506Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T05:30:34.596Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T05:31:04.687Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T05:31:34.788Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T05:32:04.895Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T05:32:35.006Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T05:33:05.104Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T05:33:35.229Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T05:34:05.326Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T05:34:35.414Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T05:35:05.521Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T05:35:35.633Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T05:36:05.721Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T05:36:35.806Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T05:37:05.923Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T05:37:36.015Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T05:38:06.106Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T05:38:36.191Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T05:39:06.320Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T05:39:36.426Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T05:40:06.521Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T05:40:36.633Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T05:41:06.740Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T05:41:36.844Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T05:42:06.944Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T05:42:37.028Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T05:43:07.141Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T05:43:37.263Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T05:44:07.402Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T05:44:37.531Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T05:45:07.630Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T05:45:37.726Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T05:46:07.817Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T05:46:37.935Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T05:47:08.034Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T05:47:38.139Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T05:48:08.237Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T05:48:38.348Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T05:49:08.465Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T05:49:38.602Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T05:50:08.698Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T05:50:38.798Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T05:51:08.929Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T05:51:39.036Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T05:52:09.152Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T05:52:39.240Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T05:53:09.341Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T05:53:39.426Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T05:54:09.537Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T05:54:39.631Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T05:55:09.725Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T05:55:39.833Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T05:56:09.927Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T05:56:40.021Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T05:57:10.135Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T05:57:40.232Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T05:58:10.350Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T05:58:40.455Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T05:59:10.547Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T05:59:40.645Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T06:00:10.748Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T06:00:40.918Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T06:01:11.028Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T06:01:41.152Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T06:02:11.255Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T06:02:41.366Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T06:03:11.462Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T06:03:41.587Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "5ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T06:04:11.729Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T06:04:41.835Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T06:05:11.946Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T06:05:42.032Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T06:06:12.151Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T06:06:42.256Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T06:07:12.371Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T06:07:42.483Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T06:08:12.584Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T06:08:42.674Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T06:09:12.816Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T06:09:42.914Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T06:10:13.035Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T06:10:43.145Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T06:11:13.242Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T06:11:43.331Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T06:12:13.439Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T06:12:43.549Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T06:13:13.673Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T06:13:43.771Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T06:14:13.871Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T06:14:43.988Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T06:15:14.115Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T06:15:44.222Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T06:16:14.322Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T06:16:44.438Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T06:17:14.543Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T06:17:44.635Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T06:18:14.739Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T06:18:44.856Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T06:19:14.947Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T06:19:45.056Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T06:20:15.165Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T06:20:45.279Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T06:21:15.376Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T06:21:45.463Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T06:22:15.578Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T06:22:45.709Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T06:23:15.801Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T06:23:45.901Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T06:24:16.018Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T06:24:46.101Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T06:25:16.225Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T06:25:46.344Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T06:26:16.462Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T06:26:46.568Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T06:27:16.658Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T06:27:46.756Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T06:28:16.852Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T06:28:46.953Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T06:29:17.093Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T06:29:47.197Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T06:30:17.302Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T06:30:47.429Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T06:31:17.553Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T06:31:48.036Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "8ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T06:32:18.159Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T06:32:48.364Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "5ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T06:33:18.490Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T06:33:48.578Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T06:34:18.742Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T06:34:48.875Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "6ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T06:35:19.014Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T06:35:49.144Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T06:36:19.241Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T06:36:49.355Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T06:37:19.430Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T06:37:49.551Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T06:38:19.622Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T06:38:49.722Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T06:39:19.821Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T06:39:49.922Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T06:40:20.009Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T06:40:50.114Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T06:41:20.220Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T06:41:50.313Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T06:42:20.397Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T06:42:50.488Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T06:43:20.585Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T06:43:50.681Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T06:44:20.773Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T06:44:50.891Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T06:45:21.034Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T06:45:51.150Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T06:50:32.253Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T06:51:02.340Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T06:51:32.426Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T06:52:02.522Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T06:52:32.605Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T06:53:02.693Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T06:53:32.787Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T06:54:02.870Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T06:54:32.960Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T06:55:03.047Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T06:55:33.142Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T06:56:03.224Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T06:56:33.306Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T06:57:03.387Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T06:57:33.486Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T06:58:03.576Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T06:58:33.660Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T06:59:03.774Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T06:59:35.381Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T07:03:05.058Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T08:23:40.244Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T08:59:27.026Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T09:30:52.368Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T09:45:25.108Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T09:54:16.624Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T10:12:07.063Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T10:30:47.594Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T11:52:10.620Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T12:09:15.738Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T13:35:41.105Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T14:34:02.109Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T17:15:15.136Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T18:50:24.171Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T19:44:49.561Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T20:56:16.007Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T22:31:44.601Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-30T22:58:28.846Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-31T00:02:21.597Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-31T00:33:46.257Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-31T01:00:15.959Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-31T01:39:22.657Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-31T01:47:28.536Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-31T03:02:16.742Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-31T04:03:18.920Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-31T04:38:24.987Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-31T05:55:14.182Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-31T06:34:06.097Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-31T07:06:23.767Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-31T08:23:28.595Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-31T09:22:23.924Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-31T09:58:30.933Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-31T11:03:17.826Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-31T11:51:40.652Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-31T12:28:02.695Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-31T14:02:16.427Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-31T15:01:53.298Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-31T16:38:06.163Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-31T18:01:37.568Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-31T18:45:17.425Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-31T20:02:42.632Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-31T21:36:12.201Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-31T22:51:47.365Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-31T23:55:59.264Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-01-31T23:56:51.054Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T00:06:41.997Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T01:07:43.516Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T02:42:02.096Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T03:13:16.582Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T04:05:38.959Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T05:01:15.065Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T06:12:39.169Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T06:46:50.696Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T07:55:11.067Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T08:27:26.011Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T09:31:50.298Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T09:48:26.475Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T10:09:38.546Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T10:35:36.003Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T11:17:31.461Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T11:41:33.311Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T12:51:42.527Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T14:07:09.726Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T15:26:33.576Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T16:55:28.427Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T18:01:12.360Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T19:02:39.273Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T20:12:30.635Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T21:15:38.468Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T21:45:06.393Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T21:57:55.534Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T21:58:25.633Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T21:58:55.738Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T21:59:25.838Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T21:59:55.927Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T22:00:26.021Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T22:00:56.120Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T22:01:26.214Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T22:01:56.297Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T22:02:26.393Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T22:02:56.491Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T22:03:26.581Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T22:03:56.663Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T22:04:26.752Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T22:04:56.841Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T22:05:26.932Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T22:05:57.028Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T22:06:27.115Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T22:06:57.203Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T22:07:27.284Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T22:07:57.374Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T22:08:27.469Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T22:08:57.557Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T22:09:27.650Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T22:09:57.736Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T22:10:27.828Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T22:10:57.920Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T22:11:28.019Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T22:11:58.103Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T22:12:28.188Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T22:12:58.281Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T22:13:28.379Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T22:13:58.480Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T22:14:28.569Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T22:14:58.657Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T22:15:28.746Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T22:15:58.849Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T22:16:28.936Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T22:16:59.025Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T22:17:29.128Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T22:17:59.217Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T22:18:29.304Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T22:18:59.394Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T22:19:29.491Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T22:19:59.582Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T22:20:29.694Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T22:20:59.787Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T22:21:29.890Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T22:21:59.976Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T22:22:30.072Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T22:23:00.168Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T22:23:30.252Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T22:24:00.328Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T22:24:30.414Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T22:25:00.499Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T22:25:30.598Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T22:26:00.695Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T22:26:30.791Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T22:27:00.882Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T22:27:30.977Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T22:28:01.061Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T22:28:31.157Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T22:29:01.255Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T22:29:31.351Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T22:30:01.441Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T22:30:31.532Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T22:31:01.625Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T22:31:31.715Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T22:32:01.812Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T22:32:31.902Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T22:33:01.968Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T22:33:32.053Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T22:34:02.136Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T22:34:32.224Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T22:35:02.321Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T22:35:32.412Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T22:36:02.512Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T22:36:32.561Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T22:37:02.651Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T22:37:32.718Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T22:38:02.811Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T22:38:32.906Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T22:39:03.008Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T22:39:33.104Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T22:40:03.186Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T22:40:33.269Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T22:41:03.359Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T22:41:33.462Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T22:42:03.557Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T22:42:33.662Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T22:43:03.759Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T22:43:33.851Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T22:44:03.937Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T22:44:34.031Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T22:45:04.125Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T22:45:34.217Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T22:46:04.301Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T22:46:34.397Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T22:47:04.500Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T22:47:34.584Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T22:48:04.675Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T22:48:34.772Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T22:49:04.857Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T22:49:34.969Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T22:50:05.058Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T22:50:35.155Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T22:51:05.256Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T22:51:35.343Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T22:52:05.440Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T22:52:35.537Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T22:53:05.618Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T22:53:35.714Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T22:54:05.804Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T22:54:35.889Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T22:55:05.975Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T22:55:36.061Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T22:56:06.146Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T22:56:36.238Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T22:57:06.315Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T22:57:36.401Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T22:58:06.488Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T22:58:36.577Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T22:59:06.670Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T22:59:36.755Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T23:00:06.852Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T23:00:36.941Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T23:01:07.032Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T23:01:37.114Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T23:02:07.204Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T23:02:37.302Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T23:03:07.393Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T23:03:37.475Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T23:04:07.566Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T23:04:37.660Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T23:05:07.756Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T23:05:37.844Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T23:06:07.927Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T23:06:38.030Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T23:07:08.111Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T23:07:38.197Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T23:08:08.287Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T23:08:38.383Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T23:09:08.480Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T23:09:38.566Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T23:10:08.659Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T23:10:38.749Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T23:11:08.833Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T23:11:38.917Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T23:12:09.001Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T23:12:39.094Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T23:13:09.184Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T23:13:39.276Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T23:14:09.362Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T23:14:39.446Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T23:15:09.527Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T23:15:39.618Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T23:16:09.714Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T23:16:39.815Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T23:17:09.905Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T23:17:40.006Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T23:18:10.114Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T23:18:40.198Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T23:19:10.298Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T23:19:40.440Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T23:20:10.527Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T23:20:40.621Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T23:21:10.715Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T23:21:40.775Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T23:22:10.867Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T23:22:40.956Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T23:23:11.046Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T23:23:41.138Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T23:24:11.228Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T23:24:41.312Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T23:25:11.404Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T23:25:41.502Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T23:26:11.604Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T23:26:41.691Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T23:27:11.780Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T23:27:41.872Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T23:28:11.951Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T23:28:42.037Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T23:29:12.125Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T23:29:42.215Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T23:30:12.309Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T23:30:42.390Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T23:31:12.458Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T23:31:42.568Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T23:32:12.663Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T23:32:42.756Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T23:33:12.857Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T23:33:42.953Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T23:34:13.044Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T23:34:43.132Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T23:35:13.223Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T23:35:43.309Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T23:36:13.412Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T23:36:43.495Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T23:37:13.592Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T23:37:43.690Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T23:38:13.779Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T23:38:43.877Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T23:39:13.961Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T23:39:44.050Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T23:40:14.147Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T23:40:44.227Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T23:41:14.316Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T23:41:44.397Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T23:42:14.471Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T23:42:44.559Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T23:43:14.649Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T23:43:44.736Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T23:44:14.825Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T23:44:44.906Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T23:45:14.993Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T23:45:45.080Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T23:46:15.181Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T23:46:45.276Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T23:47:15.371Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T23:47:45.476Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T23:48:15.577Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T23:48:45.666Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T23:49:15.758Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T23:49:45.846Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T23:50:15.941Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T23:50:46.031Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T23:51:16.121Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T23:51:46.200Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T23:52:16.287Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T23:52:46.377Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T23:53:16.464Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T23:53:46.553Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T23:54:16.647Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T23:54:46.738Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T23:55:16.834Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T23:55:46.929Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T23:56:17.011Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T23:56:47.125Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T23:58:21.949Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T23:58:52.038Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T23:59:22.127Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-01T23:59:52.225Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T00:00:22.315Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T00:00:52.417Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T00:01:22.508Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T00:01:52.606Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T00:02:22.695Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T00:02:52.788Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T00:03:22.885Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T00:03:52.978Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T00:04:23.060Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T00:04:53.144Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T00:05:23.232Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T00:05:53.336Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T00:06:23.421Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T00:06:53.504Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T00:07:23.598Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T00:07:53.688Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T00:08:23.775Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T00:08:53.868Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T00:09:23.955Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T00:09:54.049Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T00:10:24.141Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T00:10:54.233Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T00:11:24.319Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T00:11:54.410Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T00:12:24.496Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T00:12:54.581Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T00:13:42.638Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T00:15:40.896Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T00:16:10.988Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T00:16:41.083Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T00:17:11.172Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T00:17:41.263Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T00:18:11.354Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T00:18:41.441Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T00:19:11.531Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T00:19:41.624Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T00:20:11.713Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T00:20:41.801Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T00:21:11.892Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T00:21:41.995Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T00:22:12.081Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T00:22:42.161Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T00:23:12.250Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T00:23:42.316Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T00:24:12.415Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T00:24:42.513Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T00:25:07.320Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2026-02-02T00:25:07.322Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-02-02T00:25:07.702Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-02-02T00:25:07.762Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-02-02T00:25:07.820Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2026-02-02T00:25:07.825Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-02-02T00:25:12.626Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T00:25:19.361Z] [WARN] ⚠️ 인증 실패: Authorization 헤더 없음 - Context: { - "path": "/", - "method": "GET", - "ip": "::ffff:192.168.65.1" -} -[2026-02-02T00:25:19.363Z] [WARN] ⚠️ Authorization 헤더가 필요합니다 - Context: { - "code": "AUTHENTICATION_ERROR", - "url": "/api/work-issues/categories", - "method": "GET", - "user": "anonymous" -} -[2026-02-02T00:25:19.365Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/work-issues/categories", - "statusCode": 401, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-02-02T00:25:39.448Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-02T00:25:42.735Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T00:25:43.818Z] [INFO] ℹ️ MariaDB 연결 성공 - Context: { - "connection": "db:3306", - "database": "hyungi", - "connectionLimit": 10 -} -[2026-02-02T00:25:43.894Z] [WARN] ⚠️ 아이디 또는 비밀번호가 올바르지 않습니다. - Context: { - "code": "AUTHENTICATION_ERROR", - "url": "/api/auth/login", - "method": "POST", - "user": "anonymous" -} -[2026-02-02T00:25:43.895Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 401, - "duration": "101ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-02T00:25:47.473Z] [WARN] ⚠️ 계정이 잠겨있습니다. 15분 후에 다시 시도하세요. - Context: { - "code": "AUTHENTICATION_ERROR", - "url": "/api/auth/login", - "method": "POST", - "user": "anonymous" -} -[2026-02-02T00:25:47.476Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 401, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-02T00:25:48.907Z] [WARN] ⚠️ 계정이 잠겨있습니다. 15분 후에 다시 시도하세요. - Context: { - "code": "AUTHENTICATION_ERROR", - "url": "/api/auth/login", - "method": "POST", - "user": "anonymous" -} -[2026-02-02T00:25:48.909Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 401, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-02T00:26:02.074Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:26:02.149Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:26:02.166Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:26:02.179Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-02", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:26:02.185Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:26:03.072Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:26:12.797Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T00:26:15.128Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:26:15.158Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects?is_active=1", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:26:15.170Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/safety-checks", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:26:15.175Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:26:15.179Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks/active/list", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:26:15.185Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?is_active=true", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:26:15.189Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/active/list", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:26:15.192Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-02", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:26:16.116Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:26:16.543Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-02", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:26:19.862Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-01", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:26:23.246Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/tbm/sessions", - "method": "GET" -} -[2026-02-02T00:26:23.248Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/tbm/sessions", - "statusCode": 404, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:26:23.866Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/tbm/sessions", - "method": "GET" -} -[2026-02-02T00:26:23.868Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/tbm/sessions", - "statusCode": 404, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:26:26.039Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:26:26.085Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:26:26.097Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:26:26.112Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-02", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:26:26.121Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:26:27.035Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:26:29.022Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:26:29.062Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:26:29.070Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:26:29.079Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:26:29.085Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:26:29.091Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:26:30.013Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:26:41.759Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:26:41.794Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:26:41.802Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:26:41.816Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-02", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:26:41.824Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:26:42.749Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:26:42.864Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T00:26:51.108Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:26:51.155Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/projects?is_active=1", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:26:51.162Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/safety-checks", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:26:51.167Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:26:51.171Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tasks/active/list", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:26:51.176Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces?is_active=true", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:26:51.182Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/active/list", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:26:51.188Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-02", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:26:52.106Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:27:12.933Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T00:27:43.011Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T00:28:13.098Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T00:28:43.176Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T00:29:13.266Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T00:29:43.357Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T00:30:13.440Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T00:30:43.524Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T00:31:13.620Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T00:31:15.121Z] [INFO] ℹ️ 사용자 목록 조회 요청 - Context: { - "requestedBy": "admin" -} -[2026-02-02T00:31:15.126Z] [INFO] ℹ️ 사용자 목록 조회 성공 - Context: { - "count": 2 -} -[2026-02-02T00:31:15.128Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:31:16.108Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:31:17.577Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/pages", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:31:17.591Z] [INFO] ℹ️ 사용자 페이지 권한 조회 요청 - Context: { - "userId": "27" -} -[2026-02-02T00:31:17.596Z] [ERROR] ❌ 사용자 페이지 권한 조회 실패 - Context: { - "userId": "27", - "error": "Unknown column 'p.is_active' in 'where clause'" -} -[2026-02-02T00:31:17.599Z] [ERROR] ❌ 페이지 권한을 조회하는데 실패했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 페이지 권한을 조회하는데 실패했습니다\n at /usr/src/app/controllers/userController.js:527:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "url": "/api/users/27/page-access", - "method": "GET", - "user": "admin" -} -[2026-02-02T00:31:17.601Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/users/27/page-access", - "statusCode": 500, - "duration": "13ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:31:36.665Z] [INFO] ℹ️ 사용자 페이지 권한 업데이트 요청 - Context: { - "userId": "27", - "pageCount": 24, - "updatedBy": "admin" -} -[2026-02-02T00:31:36.676Z] [INFO] ℹ️ 사용자 페이지 권한 업데이트 성공 - Context: { - "userId": "27", - "pageCount": 24, - "updatedBy": "admin" -} -[2026-02-02T00:31:36.677Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "PUT", - "url": "/api/users/27/page-access", - "statusCode": 200, - "duration": "15ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:31:43.699Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T00:31:44.069Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:31:46.616Z] [WARN] ⚠️ 아이디 또는 비밀번호가 올바르지 않습니다. - Context: { - "code": "AUTHENTICATION_ERROR", - "url": "/api/auth/login", - "method": "POST", - "user": "anonymous" -} -[2026-02-02T00:31:46.617Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 401, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:31:49.796Z] [WARN] ⚠️ 아이디 또는 비밀번호가 올바르지 않습니다. - Context: { - "code": "AUTHENTICATION_ERROR", - "url": "/api/auth/login", - "method": "POST", - "user": "anonymous" -} -[2026-02-02T00:31:49.799Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 401, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:31:51.002Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 429, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:32:06.532Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 429, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:32:07.583Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 429, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:32:07.818Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 429, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:32:08.039Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 429, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:32:08.271Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 429, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:32:08.475Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 429, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:32:12.569Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 429, - "duration": "0ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:32:13.794Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T00:32:43.882Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T00:33:13.976Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T00:33:21.993Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2026-02-02T00:33:21.993Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-02-02T00:33:22.434Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-02-02T00:33:22.504Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-02-02T00:33:22.563Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2026-02-02T00:33:22.569Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-02-02T00:33:27.342Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T00:33:38.336Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:33:42.627Z] [INFO] ℹ️ MariaDB 연결 성공 - Context: { - "connection": "db:3306", - "database": "hyungi", - "connectionLimit": 10 -} -[2026-02-02T00:33:42.710Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 200, - "duration": "101ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:33:43.372Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:33:43.427Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:33:43.433Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:33:43.453Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-02", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:33:43.473Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:33:44.333Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:33:57.435Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T00:34:27.525Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T00:34:57.613Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T00:35:27.699Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T00:35:57.790Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T00:36:27.873Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T00:36:56.603Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:36:56.639Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:36:56.650Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:36:56.661Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-02", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:36:56.668Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:36:57.600Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:36:57.964Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T00:36:58.464Z] [INFO] ℹ️ 사용자 목록 조회 요청 - Context: { - "requestedBy": "admin" -} -[2026-02-02T00:36:58.469Z] [INFO] ℹ️ 사용자 목록 조회 성공 - Context: { - "count": 2 -} -[2026-02-02T00:36:58.470Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:36:59.463Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:37:03.216Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/pages", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:37:03.224Z] [INFO] ℹ️ 사용자 페이지 권한 조회 요청 - Context: { - "userId": "27" -} -[2026-02-02T00:37:03.225Z] [ERROR] ❌ 사용자 페이지 권한 조회 실패 - Context: { - "userId": "27", - "error": "Unknown column 'p.is_active' in 'where clause'" -} -[2026-02-02T00:37:03.226Z] [ERROR] ❌ 페이지 권한을 조회하는데 실패했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 페이지 권한을 조회하는데 실패했습니다\n at /usr/src/app/controllers/userController.js:527:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "url": "/api/users/27/page-access", - "method": "GET", - "user": "admin" -} -[2026-02-02T00:37:03.227Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/users/27/page-access", - "statusCode": 500, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:37:26.039Z] [INFO] ℹ️ 사용자 수정 요청 - Context: { - "userId": "27", - "body": { - "name": "김두수", - "username": "gim.dusu", - "role": "user", - "email": "", - "phone": "" - } -} -[2026-02-02T00:37:26.047Z] [INFO] ℹ️ role 문자열로 역할 변경 - Context: { - "userId": "27", - "role": "user", - "role_id": 4 -} -[2026-02-02T00:37:26.048Z] [INFO] ℹ️ 실행할 UPDATE 쿼리 - Context: { - "query": "UPDATE users SET username = ?, name = ?, email = ?, phone = ?, role_id = ?, updated_at = NOW() WHERE user_id = ?", - "values": [ - "gim.dusu", - "김두수", - null, - null, - 4, - "27" - ] -} -[2026-02-02T00:37:26.050Z] [ERROR] ❌ 사용자 수정 실패 - Context: { - "userId": "27", - "error": "Unknown column 'phone' in 'field list'", - "stack": "Error: Unknown column 'phone' in 'field list'\n at PromisePool.execute (/usr/src/app/node_modules/mysql2/lib/promise/pool.js:54:22)\n at /usr/src/app/controllers/userController.js:332:14\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)" -} -[2026-02-02T00:37:26.052Z] [ERROR] ❌ 사용자 정보를 수정하는데 실패했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 사용자 정보를 수정하는데 실패했습니다\n at /usr/src/app/controllers/userController.js:351:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "url": "/api/users/27", - "method": "PUT", - "user": "admin" -} -[2026-02-02T00:37:26.054Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "PUT", - "url": "/api/users/27", - "statusCode": 500, - "duration": "17ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:37:26.065Z] [INFO] ℹ️ 사용자 페이지 권한 업데이트 요청 - Context: { - "userId": "27", - "pageCount": 24, - "updatedBy": "admin" -} -[2026-02-02T00:37:26.071Z] [INFO] ℹ️ 사용자 페이지 권한 업데이트 성공 - Context: { - "userId": "27", - "pageCount": 24, - "updatedBy": "admin" -} -[2026-02-02T00:37:26.072Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "PUT", - "url": "/api/users/27/page-access", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:37:28.054Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T00:37:58.131Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T00:38:28.220Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T00:38:58.306Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T00:39:28.394Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T00:39:40.718Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2026-02-02T00:39:40.719Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-02-02T00:39:41.056Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-02-02T00:39:41.119Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-02-02T00:39:41.174Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2026-02-02T00:39:41.179Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-02-02T00:39:45.997Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T00:40:16.081Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T00:40:46.170Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T00:41:15.427Z] [INFO] ℹ️ 사용자 목록 조회 요청 - Context: { - "requestedBy": "admin" -} -[2026-02-02T00:41:15.443Z] [INFO] ℹ️ MariaDB 연결 성공 - Context: { - "connection": "db:3306", - "database": "hyungi", - "connectionLimit": 10 -} -[2026-02-02T00:41:15.446Z] [INFO] ℹ️ 사용자 목록 조회 성공 - Context: { - "count": 2 -} -[2026-02-02T00:41:15.446Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users", - "statusCode": 200, - "duration": "29ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:41:16.257Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T00:41:16.420Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:41:20.433Z] [INFO] ℹ️ 사용자 비밀번호 초기화 성공 - Context: { - "userId": "27", - "username": "gim.dusu", - "resetBy": "admin" -} -[2026-02-02T00:41:20.434Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/users/27/reset-password", - "statusCode": 200, - "duration": "74ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:41:24.105Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/pages", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:41:24.119Z] [INFO] ℹ️ 사용자 페이지 권한 조회 요청 - Context: { - "userId": "27" -} -[2026-02-02T00:41:24.122Z] [INFO] ℹ️ 사용자 페이지 권한 조회 성공 - Context: { - "userId": "27", - "pageCount": 28 -} -[2026-02-02T00:41:24.125Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users/27/page-access", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:41:34.812Z] [INFO] ℹ️ 사용자 수정 요청 - Context: { - "userId": "27", - "body": { - "name": "김두수", - "username": "gim.dusu", - "role": "user", - "email": "" - } -} -[2026-02-02T00:41:34.821Z] [INFO] ℹ️ role 문자열로 역할 변경 - Context: { - "userId": "27", - "role": "user", - "role_id": 4 -} -[2026-02-02T00:41:34.822Z] [INFO] ℹ️ 실행할 UPDATE 쿼리 - Context: { - "query": "UPDATE users SET username = ?, name = ?, email = ?, role_id = ?, updated_at = NOW() WHERE user_id = ?", - "values": [ - "gim.dusu", - "김두수", - null, - 4, - "27" - ] -} -[2026-02-02T00:41:34.825Z] [INFO] ℹ️ 사용자 수정 성공 - Context: { - "userId": "27", - "username": "gim.dusu", - "updatedFields": [ - "name", - "username", - "role", - "email" - ], - "updatedBy": "admin" -} -[2026-02-02T00:41:34.827Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "PUT", - "url": "/api/users/27", - "statusCode": 200, - "duration": "19ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:41:34.838Z] [INFO] ℹ️ 사용자 목록 조회 요청 - Context: { - "requestedBy": "admin" -} -[2026-02-02T00:41:34.840Z] [INFO] ℹ️ 사용자 목록 조회 성공 - Context: { - "count": 2 -} -[2026-02-02T00:41:34.841Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:41:43.006Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:41:46.351Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T00:41:53.459Z] [WARN] ⚠️ 아이디 또는 비밀번호가 올바르지 않습니다. - Context: { - "code": "AUTHENTICATION_ERROR", - "url": "/api/auth/login", - "method": "POST", - "user": "anonymous" -} -[2026-02-02T00:41:53.462Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 401, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:41:58.957Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 200, - "duration": "99ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:41:59.607Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:41:59.711Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:41:59.724Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:41:59.740Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-02", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:41:59.748Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:42:00.589Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:42:02.844Z] [INFO] ℹ️ 사용자 목록 조회 요청 - Context: { - "requestedBy": "admin" -} -[2026-02-02T00:42:02.848Z] [INFO] ℹ️ 사용자 목록 조회 성공 - Context: { - "count": 2 -} -[2026-02-02T00:42:02.850Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:42:03.834Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:42:06.849Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/pages", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:42:06.859Z] [INFO] ℹ️ 사용자 페이지 권한 조회 요청 - Context: { - "userId": "27" -} -[2026-02-02T00:42:06.862Z] [INFO] ℹ️ 사용자 페이지 권한 조회 성공 - Context: { - "userId": "27", - "pageCount": 28 -} -[2026-02-02T00:42:06.864Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/users/27/page-access", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:42:09.827Z] [INFO] ℹ️ 사용자 페이지 권한 조회 요청 - Context: { - "userId": "27" -} -[2026-02-02T00:42:09.833Z] [INFO] ℹ️ 사용자 페이지 권한 조회 성공 - Context: { - "userId": "27", - "pageCount": 28 -} -[2026-02-02T00:42:09.835Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/users/27/page-access", - "statusCode": 304, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:42:16.434Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T00:42:20.572Z] [INFO] ℹ️ 사용자 페이지 권한 조회 요청 - Context: { - "userId": "27" -} -[2026-02-02T00:42:20.575Z] [INFO] ℹ️ 사용자 페이지 권한 조회 성공 - Context: { - "userId": "27", - "pageCount": 28 -} -[2026-02-02T00:42:20.578Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/users/27/page-access", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:42:25.923Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:42:32.633Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 200, - "duration": "94ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:42:32.979Z] [WARN] ⚠️ 관리자 권한 없는 접근 시도 - Context: { - "userId": 27, - "username": "gim.dusu", - "role": "User", - "url": "/api/users/27/page-access" -} -[2026-02-02T00:42:32.981Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/users/27/page-access", - "statusCode": 403, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "gim.dusu", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:42:32.988Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "gim.dusu", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:42:33.023Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "gim.dusu", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:42:33.025Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/api/users/27/page-access", - "method": "GET" -} -[2026-02-02T00:42:33.026Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/api/users/27/page-access", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "gim.dusu", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:42:33.029Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "gim.dusu", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:42:33.046Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-02", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "gim.dusu", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:42:33.053Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "gim.dusu", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:42:33.974Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:42:46.523Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T00:43:16.618Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T00:43:46.704Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T00:44:16.795Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T00:44:46.873Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T00:45:14.442Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2026-02-02T00:45:14.443Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-02-02T00:45:14.813Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-02-02T00:45:14.883Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-02-02T00:45:14.941Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2026-02-02T00:45:14.946Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-02-02T00:45:19.745Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T00:45:49.836Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T00:46:19.929Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T00:46:23.365Z] [INFO] ℹ️ 사용자 페이지 권한 조회 요청 - Context: { - "userId": "27" -} -[2026-02-02T00:46:23.379Z] [INFO] ℹ️ MariaDB 연결 성공 - Context: { - "connection": "db:3306", - "database": "hyungi", - "connectionLimit": 10 -} -[2026-02-02T00:46:23.385Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "gim.dusu", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:46:23.389Z] [INFO] ℹ️ 사용자 페이지 권한 조회 성공 - Context: { - "userId": "27", - "pageCount": 28 -} -[2026-02-02T00:46:23.391Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users/27/page-access", - "statusCode": 200, - "duration": "29ms", - "ip": "::ffff:192.168.65.1", - "user": "gim.dusu", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:46:23.448Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/api/users/27/page-access", - "method": "GET" -} -[2026-02-02T00:46:23.449Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/api/users/27/page-access", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "gim.dusu", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:46:23.454Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "gim.dusu", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:46:23.460Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "gim.dusu", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:46:23.474Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-02", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "gim.dusu", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:46:23.481Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "gim.dusu", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:46:24.360Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:46:29.440Z] [INFO] ℹ️ 사용자 페이지 권한 조회 요청 - Context: { - "userId": "27" -} -[2026-02-02T00:46:29.442Z] [INFO] ℹ️ 사용자 페이지 권한 조회 성공 - Context: { - "userId": "27", - "pageCount": 28 -} -[2026-02-02T00:46:29.444Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/users/27/page-access", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "gim.dusu", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:46:29.448Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "gim.dusu", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:46:29.467Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/api/users/27/page-access", - "method": "GET" -} -[2026-02-02T00:46:29.468Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/api/users/27/page-access", - "statusCode": 404, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "gim.dusu", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:46:29.471Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "gim.dusu", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:46:29.476Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "gim.dusu", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:46:29.484Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-02", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "gim.dusu", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:46:29.489Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "gim.dusu", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:46:30.434Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:46:50.023Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T00:47:20.105Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T00:47:50.200Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T00:48:20.283Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T00:48:50.380Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T00:49:20.483Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T00:49:50.566Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T00:50:20.624Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T00:50:50.680Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T00:51:20.757Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T00:51:50.844Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T00:52:18.707Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2026-02-02T00:52:18.709Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-02-02T00:52:19.180Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-02-02T00:52:19.245Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-02-02T00:52:19.304Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2026-02-02T00:52:19.309Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-02-02T00:52:24.050Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T00:52:54.138Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T00:53:24.234Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T00:53:54.315Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T00:54:24.404Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T00:54:54.497Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T00:55:24.598Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T00:55:54.687Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T00:56:24.780Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T00:56:54.863Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T00:57:16.891Z] [INFO] ℹ️ 사용자 페이지 권한 조회 요청 - Context: { - "userId": "27" -} -[2026-02-02T00:57:16.913Z] [INFO] ℹ️ MariaDB 연결 성공 - Context: { - "connection": "db:3306", - "database": "hyungi", - "connectionLimit": 10 -} -[2026-02-02T00:57:16.918Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "21ms", - "ip": "::ffff:192.168.65.1", - "user": "gim.dusu", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:57:16.921Z] [INFO] ℹ️ 사용자 페이지 권한 조회 성공 - Context: { - "userId": "27", - "pageCount": 28 -} -[2026-02-02T00:57:16.928Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users/27/page-access", - "statusCode": 200, - "duration": "42ms", - "ip": "::ffff:192.168.65.1", - "user": "gim.dusu", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:57:16.970Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/api/users/27/page-access", - "method": "GET" -} -[2026-02-02T00:57:16.971Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/api/users/27/page-access", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "gim.dusu", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:57:16.976Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "gim.dusu", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:57:16.983Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "gim.dusu", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:57:17.024Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-02", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "gim.dusu", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:57:17.032Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "gim.dusu", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:57:17.879Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:57:21.571Z] [INFO] ℹ️ 사용자 페이지 권한 조회 요청 - Context: { - "userId": "27" -} -[2026-02-02T00:57:21.575Z] [INFO] ℹ️ 사용자 페이지 권한 조회 성공 - Context: { - "userId": "27", - "pageCount": 28 -} -[2026-02-02T00:57:21.576Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/users/27/page-access", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "gim.dusu", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:57:21.578Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "gim.dusu", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:57:21.650Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/api/users/27/page-access", - "method": "GET" -} -[2026-02-02T00:57:21.652Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/api/users/27/page-access", - "statusCode": 404, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "gim.dusu", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:57:21.657Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "gim.dusu", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:57:21.665Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "gim.dusu", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:57:21.675Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-02", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "gim.dusu", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:57:21.680Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "gim.dusu", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:57:22.571Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:57:24.962Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T00:57:27.043Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:57:33.241Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 200, - "duration": "95ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:57:33.589Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:57:33.683Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:57:33.690Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:57:33.709Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-02", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:57:33.716Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:57:34.583Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:57:36.576Z] [INFO] ℹ️ 사용자 목록 조회 요청 - Context: { - "requestedBy": "admin" -} -[2026-02-02T00:57:36.581Z] [INFO] ℹ️ 사용자 목록 조회 성공 - Context: { - "count": 2 -} -[2026-02-02T00:57:36.582Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:57:37.569Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:57:38.113Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/pages", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:57:38.123Z] [INFO] ℹ️ 사용자 페이지 권한 조회 요청 - Context: { - "userId": "27" -} -[2026-02-02T00:57:38.127Z] [INFO] ℹ️ 사용자 페이지 권한 조회 성공 - Context: { - "userId": "27", - "pageCount": 28 -} -[2026-02-02T00:57:38.128Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/users/27/page-access", - "statusCode": 304, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:57:53.657Z] [INFO] ℹ️ 사용자 수정 요청 - Context: { - "userId": "27", - "body": { - "name": "김두수", - "username": "김두수", - "role": "user", - "email": "" - } -} -[2026-02-02T00:57:53.660Z] [INFO] ℹ️ role 문자열로 역할 변경 - Context: { - "userId": "27", - "role": "user", - "role_id": 4 -} -[2026-02-02T00:57:53.661Z] [INFO] ℹ️ 실행할 UPDATE 쿼리 - Context: { - "query": "UPDATE users SET username = ?, name = ?, email = ?, role_id = ?, updated_at = NOW() WHERE user_id = ?", - "values": [ - "김두수", - "김두수", - null, - 4, - "27" - ] -} -[2026-02-02T00:57:53.663Z] [INFO] ℹ️ 사용자 수정 성공 - Context: { - "userId": "27", - "username": "gim.dusu", - "updatedFields": [ - "name", - "username", - "role", - "email" - ], - "updatedBy": "admin" -} -[2026-02-02T00:57:53.663Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "PUT", - "url": "/api/users/27", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:57:53.668Z] [INFO] ℹ️ 사용자 목록 조회 요청 - Context: { - "requestedBy": "admin" -} -[2026-02-02T00:57:53.669Z] [INFO] ℹ️ 사용자 목록 조회 성공 - Context: { - "count": 2 -} -[2026-02-02T00:57:53.670Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:57:55.055Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T00:57:55.443Z] [INFO] ℹ️ 사용자 페이지 권한 조회 요청 - Context: { - "userId": "27" -} -[2026-02-02T00:57:55.448Z] [INFO] ℹ️ 사용자 페이지 권한 조회 성공 - Context: { - "userId": "27", - "pageCount": 28 -} -[2026-02-02T00:57:55.450Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/users/27/page-access", - "statusCode": 304, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:58:06.576Z] [INFO] ℹ️ 사용자 페이지 권한 업데이트 요청 - Context: { - "userId": "27", - "pageCount": 50, - "updatedBy": "admin" -} -[2026-02-02T00:58:06.586Z] [ERROR] ❌ 사용자 페이지 권한 업데이트 실패 - Context: { - "userId": "27", - "error": "Duplicate entry '27-12' for key 'PRIMARY'" -} -[2026-02-02T00:58:06.588Z] [ERROR] ❌ 페이지 권한을 업데이트하는데 실패했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 페이지 권한을 업데이트하는데 실패했습니다\n at /usr/src/app/controllers/userController.js:590:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "url": "/api/users/27/page-access", - "method": "PUT", - "user": "admin" -} -[2026-02-02T00:58:06.590Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "PUT", - "url": "/api/users/27/page-access", - "statusCode": 500, - "duration": "18ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:58:25.139Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T00:58:55.228Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T00:59:25.325Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T00:59:55.416Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T01:00:25.498Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T01:00:55.580Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T01:01:25.667Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T01:01:46.755Z] [INFO] ℹ️ 사용자 목록 조회 요청 - Context: { - "requestedBy": "admin" -} -[2026-02-02T01:01:46.757Z] [INFO] ℹ️ 사용자 목록 조회 성공 - Context: { - "count": 2 -} -[2026-02-02T01:01:46.759Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:01:47.756Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:01:48.901Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/pages", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:01:48.911Z] [INFO] ℹ️ 사용자 페이지 권한 조회 요청 - Context: { - "userId": "27" -} -[2026-02-02T01:01:48.912Z] [INFO] ℹ️ 사용자 페이지 권한 조회 성공 - Context: { - "userId": "27", - "pageCount": 28 -} -[2026-02-02T01:01:48.915Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users/27/page-access", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:01:53.233Z] [INFO] ℹ️ 사용자 페이지 권한 조회 요청 - Context: { - "userId": "27" -} -[2026-02-02T01:01:53.237Z] [INFO] ℹ️ 사용자 페이지 권한 조회 성공 - Context: { - "userId": "27", - "pageCount": 28 -} -[2026-02-02T01:01:53.240Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/users/27/page-access", - "statusCode": 304, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:01:55.753Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T01:01:57.631Z] [INFO] ℹ️ 사용자 페이지 권한 업데이트 요청 - Context: { - "userId": "27", - "pageCount": 25, - "updatedBy": "admin" -} -[2026-02-02T01:01:57.640Z] [INFO] ℹ️ 사용자 페이지 권한 업데이트 성공 - Context: { - "userId": "27", - "pageCount": 25, - "updatedBy": "admin" -} -[2026-02-02T01:01:57.642Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "PUT", - "url": "/api/users/27/page-access", - "statusCode": 200, - "duration": "15ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:02:06.012Z] [INFO] ℹ️ 사용자 페이지 권한 조회 요청 - Context: { - "userId": "27" -} -[2026-02-02T01:02:06.017Z] [INFO] ℹ️ 사용자 페이지 권한 조회 성공 - Context: { - "userId": "27", - "pageCount": 28 -} -[2026-02-02T01:02:06.020Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users/27/page-access", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:02:14.589Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:02:17.427Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 200, - "duration": "94ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:02:18.101Z] [INFO] ℹ️ 사용자 페이지 권한 조회 요청 - Context: { - "userId": "27" -} -[2026-02-02T01:02:18.104Z] [INFO] ℹ️ 사용자 페이지 권한 조회 성공 - Context: { - "userId": "27", - "pageCount": 28 -} -[2026-02-02T01:02:18.105Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/users/27/page-access", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:02:18.107Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:02:18.139Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/api/users/27/page-access", - "method": "GET" -} -[2026-02-02T01:02:18.140Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/api/users/27/page-access", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:02:18.146Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:02:18.194Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:02:18.215Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-02", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:02:18.223Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:02:19.045Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:02:22.964Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/api/users/27/page-access", - "method": "GET" -} -[2026-02-02T01:02:22.966Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/api/users/27/page-access", - "statusCode": 404, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:02:22.986Z] [INFO] ℹ️ 사용자 페이지 권한 조회 요청 - Context: { - "userId": "27" -} -[2026-02-02T01:02:22.989Z] [INFO] ℹ️ 사용자 페이지 권한 조회 성공 - Context: { - "userId": "27", - "pageCount": 28 -} -[2026-02-02T01:02:22.991Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/users/27/page-access", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:02:22.994Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:02:23.017Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/api/users/27/page-access", - "method": "GET" -} -[2026-02-02T01:02:23.019Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/api/users/27/page-access", - "statusCode": 404, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:02:23.023Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:02:23.032Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 304, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:02:23.040Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-02", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:02:23.045Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:02:23.986Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:02:25.842Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T01:02:55.926Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T01:03:26.021Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T01:03:56.105Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T01:04:26.200Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T01:04:56.292Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T01:05:21.421Z] [INFO] ℹ️ 사용자 페이지 권한 조회 요청 - Context: { - "userId": "27" -} -[2026-02-02T01:05:21.425Z] [INFO] ℹ️ 사용자 페이지 권한 조회 성공 - Context: { - "userId": "27", - "pageCount": 28 -} -[2026-02-02T01:05:21.428Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users/27/page-access", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:05:21.429Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:05:21.493Z] [INFO] ℹ️ 사용자 페이지 권한 조회 요청 - Context: { - "userId": "27" -} -[2026-02-02T01:05:21.495Z] [INFO] ℹ️ 사용자 페이지 권한 조회 성공 - Context: { - "userId": "27", - "pageCount": 28 -} -[2026-02-02T01:05:21.496Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/users/27/page-access", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:05:21.498Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:05:21.502Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:05:21.513Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-02", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:05:21.535Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:05:22.423Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:05:24.819Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:05:25.724Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-01", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:05:25.740Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-02", - "statusCode": 304, - "duration": "14ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:05:25.743Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-31", - "statusCode": 200, - "duration": "15ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:05:25.748Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-28", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:05:25.750Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-27", - "statusCode": 200, - "duration": "20ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:05:25.751Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-30", - "statusCode": 200, - "duration": "17ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:05:25.754Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-29", - "statusCode": 200, - "duration": "17ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:05:26.395Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T01:05:30.647Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-02", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:05:56.488Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T01:06:26.577Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T01:06:56.674Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T01:07:21.853Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:07:26.109Z] [INFO] ℹ️ 사용자 페이지 권한 조회 요청 - Context: { - "userId": "27" -} -[2026-02-02T01:07:26.116Z] [INFO] ℹ️ 사용자 페이지 권한 조회 성공 - Context: { - "userId": "27", - "pageCount": 28 -} -[2026-02-02T01:07:26.118Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:07:26.119Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users/27/page-access", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:07:26.149Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:07:26.158Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:07:26.170Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-02", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:07:26.177Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:07:26.770Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T01:07:27.072Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:07:28.271Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:07:56.847Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T01:08:26.934Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T01:08:57.010Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T01:08:57.787Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "16ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:08:57.854Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects?is_active=1", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:08:57.864Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/safety-checks", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:08:57.869Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:08:57.873Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks/active/list", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:08:57.877Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?is_active=true", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:08:57.882Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/active/list", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:08:57.885Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-02", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:08:58.775Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:09:27.109Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T01:09:57.201Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T01:10:27.289Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T01:10:57.376Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T01:11:27.462Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T01:11:31.730Z] [INFO] ℹ️ 사용자 페이지 권한 조회 요청 - Context: { - "userId": "27" -} -[2026-02-02T01:11:31.735Z] [INFO] ℹ️ 사용자 페이지 권한 조회 성공 - Context: { - "userId": "27", - "pageCount": 28 -} -[2026-02-02T01:11:31.737Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:11:31.739Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users/27/page-access", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:11:31.742Z] [INFO] ℹ️ 사용자 페이지 권한 조회 요청 - Context: { - "userId": "27" -} -[2026-02-02T01:11:31.743Z] [INFO] ℹ️ 사용자 페이지 권한 조회 성공 - Context: { - "userId": "27", - "pageCount": 28 -} -[2026-02-02T01:11:31.744Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users/27/page-access", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:11:31.748Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:11:31.754Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:11:31.765Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-02", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:11:31.792Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:11:32.685Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:11:33.542Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:11:33.586Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects?is_active=1", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:11:33.599Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/safety-checks", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:11:33.608Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:11:33.616Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks/active/list", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:11:33.625Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?is_active=true", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:11:33.631Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/active/list", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:11:33.638Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-02", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:11:34.535Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:11:39.164Z] [INFO] ℹ️ 사용자 페이지 권한 조회 요청 - Context: { - "userId": "27" -} -[2026-02-02T01:11:39.170Z] [INFO] ℹ️ 사용자 페이지 권한 조회 성공 - Context: { - "userId": "27", - "pageCount": 28 -} -[2026-02-02T01:11:39.172Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/users/27/page-access", - "statusCode": 304, - "duration": "11ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:11:39.177Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:11:39.207Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:11:39.216Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:11:39.226Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-02", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:11:39.232Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:11:40.156Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:11:43.573Z] [INFO] ℹ️ 사용자 페이지 권한 조회 요청 - Context: { - "userId": "27" -} -[2026-02-02T01:11:43.575Z] [INFO] ℹ️ 사용자 페이지 권한 조회 성공 - Context: { - "userId": "27", - "pageCount": 28 -} -[2026-02-02T01:11:43.578Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users/27/page-access", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:11:43.581Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:11:43.656Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:11:43.733Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:11:43.752Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-02", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:11:43.759Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:11:44.577Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:11:44.732Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:11:44.788Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects?is_active=1", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:11:44.807Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/safety-checks", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:11:44.814Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:11:44.823Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks/active/list", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:11:44.830Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?is_active=true", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:11:44.836Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/active/list", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:11:44.841Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-02", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:11:45.725Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:11:57.562Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T01:12:27.653Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T01:12:57.749Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T01:12:59.753Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:12:59.779Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects?is_active=1", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:12:59.785Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/safety-checks", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:12:59.852Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:12:59.865Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks/active/list", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:12:59.879Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?is_active=true", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:12:59.883Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/active/list", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:12:59.888Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-02", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:13:00.747Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:13:16.304Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:13:16.324Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:13:22.276Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/tbm/sessions", - "statusCode": 201, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:13:22.290Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/tbm/sessions/11/team/batch", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:13:22.300Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-02", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:13:27.846Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T01:13:33.012Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:13:38.619Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 200, - "duration": "94ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:13:39.300Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:13:39.342Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:13:39.354Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:13:39.370Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-02", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:13:39.377Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:13:40.242Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:13:40.928Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:13:40.985Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/projects?is_active=1", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:13:41.014Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/safety-checks", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:13:41.022Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:13:41.032Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tasks/active/list", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:13:41.039Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces?is_active=true", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:13:41.046Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/active/list", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:13:41.053Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-02", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:13:41.925Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:13:57.937Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T01:13:58.941Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:13:58.954Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:14:18.700Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:14:18.712Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:14:28.034Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T01:14:29.330Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:14:29.340Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:14:35.095Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:14:35.109Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:14:39.139Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/tbm/sessions", - "statusCode": 201, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:14:39.163Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/tbm/sessions/12/team/batch", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:14:39.178Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-02", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:14:50.398Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-02", - "statusCode": 304, - "duration": "12ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:14:50.400Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-01", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:14:50.402Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-31", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:14:50.405Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-30", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:14:50.408Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-28", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:14:50.410Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-27", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:14:50.411Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-29", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:14:58.134Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T01:15:00.259Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:15:06.495Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 200, - "duration": "91ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:15:06.883Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:15:06.887Z] [INFO] ℹ️ 사용자 페이지 권한 조회 요청 - Context: { - "userId": "27" -} -[2026-02-02T01:15:06.891Z] [INFO] ℹ️ 사용자 페이지 권한 조회 성공 - Context: { - "userId": "27", - "pageCount": 28 -} -[2026-02-02T01:15:06.894Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users/27/page-access", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:15:06.922Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:15:06.942Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:15:06.953Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-02", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:15:06.959Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:15:07.879Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:15:08.741Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:15:08.779Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/projects?is_active=1", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:15:08.804Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/safety-checks", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:15:08.811Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:15:08.819Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tasks/active/list", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:15:08.824Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces?is_active=true", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:15:08.828Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/active/list", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:15:08.831Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-02", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:15:09.382Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-02", - "statusCode": 304, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:15:09.385Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-30", - "statusCode": 304, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:15:09.392Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-29", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:15:09.393Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-28", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:15:09.394Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-31", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:15:09.395Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-01", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:15:09.396Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-27", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:15:09.735Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:15:10.273Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-02", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:15:11.860Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-01", - "statusCode": 304, - "duration": "16ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:15:11.863Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-02", - "statusCode": 304, - "duration": "15ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:15:11.866Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-31", - "statusCode": 304, - "duration": "15ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:15:11.871Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-30", - "statusCode": 304, - "duration": "16ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:15:11.874Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-29", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:15:11.875Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-28", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:15:11.880Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-27", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:15:15.537Z] [INFO] ℹ️ 사용자 페이지 권한 조회 요청 - Context: { - "userId": "27" -} -[2026-02-02T01:15:15.542Z] [INFO] ℹ️ 사용자 페이지 권한 조회 성공 - Context: { - "userId": "27", - "pageCount": 28 -} -[2026-02-02T01:15:15.544Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/users/27/page-access", - "statusCode": 304, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:15:15.546Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:15:15.586Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:15:15.593Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:15:15.604Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-02", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:15:15.610Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:15:16.533Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:15:17.655Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:15:17.704Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:15:17.724Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:15:17.734Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:15:17.837Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:15:17.851Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:15:18.644Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:15:28.234Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T01:15:58.322Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T01:16:28.402Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T01:16:54.563Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-02-02", - "created_by_user_id": 27, - "requester": 27, - "isAdmin": false -} -[2026-02-02T01:16:54.568Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-02-02T01:16:54.570Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-02-02", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:16:58.500Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T01:16:58.592Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-30", - "created_by_user_id": 27, - "requester": 27, - "isAdmin": false -} -[2026-02-02T01:16:58.594Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-02-02T01:16:58.595Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-30", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:17:00.519Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-29", - "created_by_user_id": 27, - "requester": 27, - "isAdmin": false -} -[2026-02-02T01:17:00.521Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-02-02T01:17:00.523Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-29", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:17:00.527Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-30", - "created_by_user_id": 27, - "requester": 27, - "isAdmin": false -} -[2026-02-02T01:17:00.529Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-02-02T01:17:00.530Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-30", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:17:03.021Z] [INFO] ℹ️ 사용자 페이지 권한 조회 요청 - Context: { - "userId": "27" -} -[2026-02-02T01:17:03.030Z] [INFO] ℹ️ 사용자 페이지 권한 조회 성공 - Context: { - "userId": "27", - "pageCount": 28 -} -[2026-02-02T01:17:03.032Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/users/27/page-access", - "statusCode": 304, - "duration": "16ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:17:03.034Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:17:03.115Z] [INFO] ℹ️ 사용자 페이지 권한 조회 요청 - Context: { - "userId": "27" -} -[2026-02-02T01:17:03.122Z] [INFO] ℹ️ 사용자 페이지 권한 조회 성공 - Context: { - "userId": "27", - "pageCount": 28 -} -[2026-02-02T01:17:03.124Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/users/27/page-access", - "statusCode": 304, - "duration": "12ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:17:03.126Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 304, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:17:03.134Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:17:03.152Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-02", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:17:03.159Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:17:04.021Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:17:22.471Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:17:22.540Z] [INFO] ℹ️ 월별 캘린더 데이터 조회 요청 - Context: { - "year": 2026, - "month": 2 -} -[2026-02-02T01:17:22.550Z] [ERROR] ❌ 월별 캘린더 데이터 조회 실패 - Context: { - "year": 2026, - "month": 2, - "error": "Table 'hyungi.monthly_summary' doesn't exist" -} -[2026-02-02T01:17:22.555Z] [ERROR] ❌ 월별 캘린더 데이터 조회 중 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 월별 캘린더 데이터 조회 중 오류가 발생했습니다\n at /usr/src/app/controllers/monthlyStatusController.js:80:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "url": "/api/monthly-status/calendar?year=2026&month=2", - "method": "GET", - "user": "anonymous" -} -[2026-02-02T01:17:22.557Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/monthly-status/calendar?year=2026&month=2", - "statusCode": 500, - "duration": "18ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:17:22.573Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-31", - "requester": 27, - "isAdmin": false -} -[2026-02-02T01:17:22.579Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-02-02T01:17:22.593Z] [INFO] ℹ️ 사용자 페이지 권한 조회 요청 - Context: { - "userId": "27" -} -[2026-02-02T01:17:22.600Z] [INFO] ℹ️ 사용자 페이지 권한 조회 성공 - Context: { - "userId": "27", - "pageCount": 28 -} -[2026-02-02T01:17:22.601Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/users/27/page-access", - "statusCode": 304, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:17:22.604Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:17:22.632Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:17:22.639Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:17:22.739Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-02", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:17:22.751Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:17:23.588Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:17:28.583Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T01:17:32.769Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:17:38.683Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 200, - "duration": "93ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:17:39.039Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:17:39.084Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:17:39.090Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:17:39.103Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-02", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:17:39.111Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:17:40.043Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:17:58.665Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T01:18:28.751Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T01:18:58.839Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T01:19:28.921Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T01:19:59.010Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T01:20:29.105Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T01:20:59.202Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T01:21:16.981Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2026-02-02T01:21:16.983Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-02-02T01:21:17.423Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-02-02T01:21:17.485Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-02-02T01:21:17.545Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2026-02-02T01:21:17.551Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-02-02T01:21:22.328Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T01:21:52.412Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T01:22:22.504Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T01:22:52.602Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T01:23:22.688Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T01:23:52.776Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T01:24:22.862Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T01:24:26.830Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2026-02-02T01:24:26.831Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-02-02T01:24:27.241Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-02-02T01:24:27.306Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-02-02T01:24:27.360Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2026-02-02T01:24:27.365Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-02-02T01:24:32.176Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T01:25:02.267Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T01:25:32.358Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T01:25:42.977Z] [INFO] ℹ️ MariaDB 연결 성공 - Context: { - "connection": "db:3306", - "database": "hyungi", - "connectionLimit": 10 -} -[2026-02-02T01:25:42.981Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "21ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:25:43.046Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:25:43.054Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:25:43.068Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-02", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:25:43.074Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:25:43.961Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:25:48.738Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "15ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:25:48.765Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:25:48.772Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:25:48.781Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:25:48.789Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:25:48.798Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:25:49.708Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:26:02.438Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T01:26:32.528Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T01:27:02.614Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T01:27:32.705Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T01:28:02.793Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T01:28:32.886Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T01:29:02.979Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T01:29:33.066Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T01:30:03.164Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T01:30:33.256Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T01:31:03.341Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T01:31:33.428Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T01:32:03.524Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T01:32:33.609Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T01:33:03.703Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T01:33:33.789Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T01:34:03.880Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T01:34:33.970Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T01:34:54.908Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:34:54.942Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:34:54.946Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:34:54.951Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:34:54.957Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:34:54.962Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:34:55.895Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:35:04.055Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T01:35:24.405Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports/from-tbm", - "statusCode": 201, - "duration": "12ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:35:24.413Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports/from-tbm", - "statusCode": 201, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:35:24.419Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:35:34.146Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T01:35:40.468Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:35:44.522Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 200, - "duration": "101ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:35:45.202Z] [INFO] ℹ️ 사용자 페이지 권한 조회 요청 - Context: { - "userId": "27" -} -[2026-02-02T01:35:45.208Z] [INFO] ℹ️ 사용자 페이지 권한 조회 성공 - Context: { - "userId": "27", - "pageCount": 31 -} -[2026-02-02T01:35:45.211Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:35:45.212Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users/27/page-access", - "statusCode": 200, - "duration": "14ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:35:45.252Z] [INFO] ℹ️ 사용자 페이지 권한 조회 요청 - Context: { - "userId": "27" -} -[2026-02-02T01:35:45.254Z] [INFO] ℹ️ 사용자 페이지 권한 조회 성공 - Context: { - "userId": "27", - "pageCount": 31 -} -[2026-02-02T01:35:45.255Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/users/27/page-access", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:35:45.257Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:35:45.267Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:35:45.281Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-02", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:35:45.287Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:35:46.139Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:35:47.416Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:35:47.451Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects?is_active=1", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:35:47.523Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/safety-checks", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:35:47.542Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:35:47.563Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks/active/list", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:35:47.572Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?is_active=true", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:35:47.578Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/active/list", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:35:47.583Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-02", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:35:48.318Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:35:49.689Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/11", - "statusCode": 200, - "duration": "15ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:35:49.692Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/11/team", - "statusCode": 200, - "duration": "16ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:35:49.703Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/11/safety", - "statusCode": 200, - "duration": "23ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:35:54.817Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/12/safety", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:35:57.799Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-02", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:35:57.815Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-31", - "statusCode": 200, - "duration": "15ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:35:57.817Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-01", - "statusCode": 200, - "duration": "14ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:35:57.819Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-27", - "statusCode": 200, - "duration": "14ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:35:57.823Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-28", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:35:57.826Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-30", - "statusCode": 200, - "duration": "19ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:35:57.828Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-29", - "statusCode": 200, - "duration": "18ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:36:02.448Z] [INFO] ℹ️ 사용자 페이지 권한 조회 요청 - Context: { - "userId": "27" -} -[2026-02-02T01:36:02.454Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:36:02.456Z] [INFO] ℹ️ 사용자 페이지 권한 조회 성공 - Context: { - "userId": "27", - "pageCount": 31 -} -[2026-02-02T01:36:02.458Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/users/27/page-access", - "statusCode": 304, - "duration": "13ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:36:02.489Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:36:02.512Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:36:02.523Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-02", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:36:02.528Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:36:03.447Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:36:04.232Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T01:36:05.478Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:36:05.519Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:36:05.527Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:36:05.535Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:36:05.543Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:36:05.551Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:36:06.470Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:36:07.502Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-02-02", - "created_by_user_id": 27, - "requester": 27, - "isAdmin": false -} -[2026-02-02T01:36:07.507Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-02-02T01:36:07.508Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-02-02", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:36:12.140Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:36:14.955Z] [INFO] ℹ️ 사용자 페이지 권한 조회 요청 - Context: { - "userId": "27" -} -[2026-02-02T01:36:14.959Z] [INFO] ℹ️ 사용자 페이지 권한 조회 성공 - Context: { - "userId": "27", - "pageCount": 31 -} -[2026-02-02T01:36:14.960Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/users/27/page-access", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:36:14.964Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:36:15.031Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:36:15.044Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:36:15.055Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-02", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:36:15.061Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:36:15.955Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:36:17.784Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:36:17.825Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/projects?is_active=1", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:36:17.847Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/safety-checks", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:36:17.933Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:36:17.941Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tasks/active/list", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:36:17.948Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces?is_active=true", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:36:17.953Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/active/list", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:36:17.959Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-02", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:36:18.784Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:36:19.558Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/12/safety", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:36:34.301Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T01:37:04.384Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T01:37:34.468Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T01:38:04.545Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T01:38:34.621Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T01:39:04.710Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T01:39:34.802Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T01:40:04.888Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T01:40:34.956Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T01:41:05.044Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T01:41:35.137Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T01:42:05.228Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T01:42:35.320Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T01:43:05.406Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T01:43:35.502Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T01:44:05.601Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T01:44:35.692Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T01:45:05.788Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T01:45:35.887Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T01:46:05.981Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T01:46:36.074Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T01:47:06.176Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T01:47:36.274Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T01:47:56.716Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2026-02-02T01:47:56.718Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-02-02T01:47:57.136Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-02-02T01:47:57.203Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-02-02T01:47:57.266Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2026-02-02T01:47:57.273Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-02-02T01:48:02.061Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T01:48:07.452Z] [WARN] ⚠️ 인증 실패: 유효하지 않은 토큰 - Context: { - "error": "jwt malformed", - "path": "/", - "ip": "::ffff:192.168.65.1" -} -[2026-02-02T01:48:07.455Z] [WARN] ⚠️ 유효하지 않은 토큰입니다 - Context: { - "code": "AUTHENTICATION_ERROR", - "url": "/api/tbm/weather/conditions", - "method": "GET", - "user": "anonymous" -} -[2026-02-02T01:48:07.457Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/tbm/weather/conditions", - "statusCode": 401, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-02-02T01:48:32.153Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T01:49:02.255Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T01:49:32.312Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T01:50:02.386Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T01:50:32.457Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T01:51:02.529Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T01:51:32.625Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T01:52:02.715Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T01:52:32.794Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T01:53:02.885Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T01:53:32.981Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T01:54:03.068Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T01:54:05.723Z] [WARN] ⚠️ 인증 실패: Authorization 헤더 없음 - Context: { - "path": "/", - "method": "GET", - "ip": "::1" -} -[2026-02-02T01:54:05.825Z] [WARN] ⚠️ Authorization 헤더가 필요합니다 - Context: { - "code": "AUTHENTICATION_ERROR", - "url": "/api/tbm/safety-checks", - "method": "GET", - "user": "anonymous" -} -[2026-02-02T01:54:05.830Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/tbm/safety-checks", - "statusCode": 401, - "duration": "107ms", - "ip": "::1", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-02-02T01:54:15.663Z] [WARN] ⚠️ 사용자명과 비밀번호를 입력해주세요. - Context: { - "code": "VALIDATION_ERROR", - "url": "/api/auth/login", - "method": "POST", - "user": "anonymous" -} -[2026-02-02T01:54:15.664Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 400, - "duration": "2ms", - "ip": "::1", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-02-02T01:54:19.774Z] [WARN] ⚠️ 사용자명과 비밀번호를 입력해주세요. - Context: { - "code": "VALIDATION_ERROR", - "url": "/api/auth/login", - "method": "POST", - "user": "anonymous" -} -[2026-02-02T01:54:19.774Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 400, - "duration": "1ms", - "ip": "::1", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-02-02T01:54:33.158Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T01:55:03.251Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T01:55:18.370Z] [ERROR] ❌ 서버 오류가 발생했습니다. - Context: { - "code": "INTERNAL_ERROR", - "stack": "AppError: 서버 오류가 발생했습니다.\n at errorHandler (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/middlewares/errorHandler.js:51:13)\n at Layer.handle_error (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/router/layer.js:71:5)\n at trim_prefix (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/router/index.js:326:13)\n at /Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/router/index.js:286:9\n at router.process_params (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/router/index.js:346:12)\n at next (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/router/index.js:280:10)\n at Layer.handle_error (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/router/layer.js:67:12)\n at trim_prefix (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/router/index.js:326:13)\n at /Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/router/index.js:286:9\n at router.process_params (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/router/index.js:346:12)", - "url": "/api/auth/login", - "method": "POST", - "user": "anonymous" -} -[2026-02-02T01:55:18.371Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 500, - "duration": "50029ms", - "ip": "::1", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-02-02T01:55:33.339Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T01:55:54.004Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2026-02-02T01:55:54.005Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-02-02T01:55:54.407Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-02-02T01:55:54.482Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-02-02T01:55:54.540Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2026-02-02T01:55:54.545Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-02-02T01:55:59.315Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T01:56:14.496Z] [ERROR] ❌ 서버 오류가 발생했습니다. - Context: { - "code": "INTERNAL_ERROR", - "stack": "AppError: 서버 오류가 발생했습니다.\n at errorHandler (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/middlewares/errorHandler.js:51:13)\n at Layer.handle_error (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/router/layer.js:71:5)\n at trim_prefix (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/router/index.js:326:13)\n at /Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/router/index.js:286:9\n at router.process_params (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/router/index.js:346:12)\n at next (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/router/index.js:280:10)\n at Layer.handle_error (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/router/layer.js:67:12)\n at trim_prefix (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/router/index.js:326:13)\n at /Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/router/index.js:286:9\n at router.process_params (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/router/index.js:346:12)", - "url": "/api/auth/login", - "method": "POST", - "user": "anonymous" -} -[2026-02-02T01:56:14.497Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 500, - "duration": "5ms", - "ip": "::1", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-02-02T01:56:29.407Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T01:56:59.499Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T01:57:29.594Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T01:57:31.763Z] [INFO] ℹ️ 사용자 페이지 권한 조회 요청 - Context: { - "userId": "27" -} -[2026-02-02T01:57:31.779Z] [INFO] ℹ️ 사용자 페이지 권한 조회 요청 - Context: { - "userId": "27" -} -[2026-02-02T01:57:31.782Z] [INFO] ℹ️ MariaDB 연결 성공 - Context: { - "connection": "db:3306", - "database": "hyungi", - "connectionLimit": 10 -} -[2026-02-02T01:57:31.786Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "19ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:57:31.788Z] [INFO] ℹ️ 사용자 페이지 권한 조회 성공 - Context: { - "userId": "27", - "pageCount": 31 -} -[2026-02-02T01:57:31.791Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users/27/page-access", - "statusCode": 200, - "duration": "37ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:57:31.792Z] [INFO] ℹ️ 사용자 페이지 권한 조회 성공 - Context: { - "userId": "27", - "pageCount": 31 -} -[2026-02-02T01:57:31.794Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users/27/page-access", - "statusCode": 200, - "duration": "17ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:57:31.810Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:57:31.819Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:57:31.834Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-02", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:57:31.844Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:57:32.753Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:57:38.147Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:57:43.497Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 200, - "duration": "89ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:57:43.851Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:57:43.929Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:57:43.939Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:57:43.985Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-02", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:57:43.994Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:57:44.851Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:57:52.252Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests?status=pending", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:57:52.283Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:57:52.284Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:57:53.241Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:57:55.323Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:57:55.372Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:57:55.382Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:57:55.395Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-02", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:57:55.402Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:57:56.320Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:57:59.690Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T01:58:00.604Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "14ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:58:00.694Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects?is_active=1", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:58:00.735Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/safety-checks", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:58:00.742Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:58:00.750Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks/active/list", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:58:00.755Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?is_active=true", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:58:00.760Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/active/list", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:58:00.764Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-02", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:58:01.585Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:58:11.336Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/tbm/sessions/12/safety-checks/filtered", - "statusCode": 500, - "duration": "12ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:58:29.781Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T01:58:59.873Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T01:59:14.838Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "54ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:59:14.903Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:59:14.997Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:59:15.014Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-02", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:59:15.019Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:59:15.780Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:59:19.570Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:59:20.505Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:59:26.588Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:59:26.592Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2026-02-02T01:59:26.643Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:59:26.656Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:59:26.689Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-02", - "statusCode": 304, - "duration": "12ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:59:26.715Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 304, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:59:27.569Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:59:32.571Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-02-02T01:59:32.980Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-02-02T01:59:33.066Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-02-02T01:59:33.125Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2026-02-02T01:59:33.130Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-02-02T01:59:37.883Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T02:00:07.972Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T02:00:38.058Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T02:01:08.140Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T02:01:38.249Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T02:02:08.344Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T02:02:38.436Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T02:03:08.528Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T02:03:38.625Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T02:04:08.716Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T02:04:38.810Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T02:05:08.906Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T02:05:38.999Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T02:06:09.087Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T02:06:39.179Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T02:07:09.265Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T02:07:39.361Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T02:08:09.456Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T02:08:39.542Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T02:09:09.636Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T02:09:39.725Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T02:10:09.818Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T02:10:39.899Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T02:11:09.995Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T02:11:40.088Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T02:12:10.183Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T02:12:40.273Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T02:13:10.359Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T02:13:40.448Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T02:14:10.545Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T02:14:40.638Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T02:15:10.727Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T02:15:40.814Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T02:16:10.905Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T02:16:41.013Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T02:17:11.110Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T02:17:41.203Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T02:18:11.306Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T02:18:41.395Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T02:19:11.478Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T02:19:41.567Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T02:20:11.655Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T02:20:41.748Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T02:21:11.845Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T02:21:41.936Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T02:22:12.033Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T02:22:42.127Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T02:23:12.212Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T02:23:42.310Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T02:24:12.413Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T02:24:42.501Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T02:25:12.590Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T02:25:42.686Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T02:26:12.787Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T02:26:42.875Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T02:27:12.983Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T02:27:43.085Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T02:28:13.177Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T02:28:43.238Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T02:29:13.286Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T02:29:43.350Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T02:30:13.429Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T02:30:43.512Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T02:31:13.606Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T02:31:43.669Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T02:32:13.757Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T02:32:43.845Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T02:33:13.930Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T02:33:44.018Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T02:34:14.080Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T02:34:44.141Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T02:35:14.196Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T02:35:44.261Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T02:36:14.343Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T02:36:44.434Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T02:37:14.531Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T02:37:44.625Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T02:38:14.702Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T02:38:44.785Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T02:39:14.870Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T02:39:44.967Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T02:40:15.059Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T02:40:45.141Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T02:41:15.226Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T02:41:45.318Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T02:42:15.419Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T02:42:45.521Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T02:43:15.624Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T02:43:45.720Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T02:44:15.807Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T02:44:45.890Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T02:45:15.988Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T02:45:46.085Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T02:46:16.180Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T02:46:46.266Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T02:47:16.372Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T02:47:46.458Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T02:48:16.564Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T02:48:46.633Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T02:49:16.697Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T02:49:46.788Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T02:50:16.882Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T02:50:46.965Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T02:51:17.045Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T02:51:47.116Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T02:52:17.207Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T02:52:47.297Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T02:53:17.398Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T02:53:47.495Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T02:54:17.605Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T02:54:47.700Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T02:55:17.779Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T02:55:47.870Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T02:56:17.964Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T02:56:48.066Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T02:57:18.155Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T02:57:48.256Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T02:58:18.348Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T02:58:48.450Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T02:59:18.550Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T02:59:48.638Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T03:00:18.730Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T03:00:48.810Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T03:01:18.898Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T03:01:48.996Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T03:02:19.090Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T03:02:49.189Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T03:03:19.277Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T03:03:49.369Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T03:04:19.465Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T03:04:49.573Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T03:05:19.674Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T03:05:49.762Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T03:06:19.853Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T03:06:49.958Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T03:07:20.040Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T03:07:50.143Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T03:08:20.227Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T03:08:50.283Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T03:09:20.385Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T03:09:50.461Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T03:10:20.555Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T03:10:50.663Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T03:11:20.754Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T03:11:50.855Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T03:12:20.938Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T03:12:51.024Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T03:13:21.116Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T03:13:51.205Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T03:14:21.296Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T03:14:51.394Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T03:15:21.485Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T03:15:51.591Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T03:16:21.678Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T03:16:51.771Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T03:17:21.867Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T03:17:51.970Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T03:18:22.064Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T03:18:52.159Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T03:19:22.257Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T03:19:52.347Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T03:20:22.449Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T03:20:52.546Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T03:21:22.641Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T03:21:52.735Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T03:22:22.823Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T03:22:52.913Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T03:23:22.998Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T03:23:53.092Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T03:24:23.182Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T03:24:53.272Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T03:25:23.368Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T03:25:53.469Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T03:26:23.562Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T03:26:53.648Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T03:27:23.741Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T03:27:53.833Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T03:28:23.920Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T03:28:54.009Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T03:29:24.099Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T03:29:54.182Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T03:30:24.272Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T03:30:54.366Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T03:31:24.455Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T03:31:54.547Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T03:32:24.643Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T03:32:54.733Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T03:33:24.821Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T03:33:54.913Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T03:34:25.011Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T03:34:55.097Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T03:35:25.190Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T03:35:55.291Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T03:36:25.392Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T03:36:55.481Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T03:37:25.570Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T03:37:55.658Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T03:38:25.753Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T03:38:55.846Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T03:39:25.934Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T03:39:56.018Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T03:40:26.098Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T03:40:56.152Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T03:41:26.209Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T03:41:56.283Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T03:42:26.356Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T03:42:56.455Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T03:43:26.548Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T03:43:56.658Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T03:44:26.752Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T03:44:56.852Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T03:45:26.934Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T03:45:57.017Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T03:46:27.118Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T03:46:57.201Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T03:47:27.273Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T03:47:57.320Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T03:48:27.385Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T03:48:57.446Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T03:49:27.510Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T03:49:57.591Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T03:50:27.686Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T03:50:57.779Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T03:51:27.862Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T03:51:57.961Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T03:52:28.058Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T03:52:58.139Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T03:53:28.228Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T03:53:58.324Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T03:54:28.427Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T03:54:58.526Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T03:55:28.620Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T03:55:58.721Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T03:56:28.815Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T03:56:58.903Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T03:57:28.991Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T03:57:59.088Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T03:58:29.185Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T03:58:59.278Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T03:59:29.364Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T03:59:55.873Z] [INFO] ℹ️ MariaDB 연결 성공 - Context: { - "connection": "db:3306", - "database": "hyungi", - "connectionLimit": 10 -} -[2026-02-02T03:59:55.881Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "51ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T03:59:55.958Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T03:59:55.973Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T03:59:56.009Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-02", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T03:59:56.026Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T03:59:56.819Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T03:59:59.463Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T04:00:29.572Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T04:00:37.076Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T04:00:37.217Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T04:00:37.298Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 304, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T04:00:37.313Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-02", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T04:00:37.318Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T04:00:38.031Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T04:00:38.966Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "22ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T04:00:39.055Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects?is_active=1", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T04:00:39.098Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/safety-checks", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T04:00:39.107Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T04:00:39.113Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks/active/list", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T04:00:39.119Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?is_active=true", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T04:00:39.124Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/active/list", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T04:00:39.129Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-02", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T04:00:39.820Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T04:00:40.964Z] [WARN] ⚠️ 날씨 API 키가 설정되지 않음. 기본값 반환 -[2026-02-02T04:00:40.965Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 20, - "humidity": 50, - "windSpeed": 2, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": "clear", - "isDefault": true - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T04:00:40.967Z] [INFO] ℹ️ 날씨 기록 저장 완료 - Context: { - "sessionId": "12", - "conditions": [ - "clear" - ] -} -[2026-02-02T04:00:40.973Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/12/safety-checks/filtered", - "statusCode": 200, - "duration": "63ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T04:00:59.671Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T04:01:29.760Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T04:01:34.389Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T04:01:34.538Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T04:01:34.553Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T04:01:34.582Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-02", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T04:01:34.590Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T04:01:35.367Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T04:01:35.742Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests?status=pending", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T04:01:35.941Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T04:01:35.949Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T04:01:36.728Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T04:01:38.097Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T04:01:38.148Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T04:01:38.157Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T04:01:38.182Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-02", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T04:01:38.192Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T04:01:59.849Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T04:02:29.939Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T04:03:00.031Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T04:03:30.130Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T04:04:00.208Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T04:04:30.298Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T04:04:53.101Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "14ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T04:04:53.109Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/safety-checks", - "statusCode": 200, - "duration": "20ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T04:04:53.110Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/conditions", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T04:04:54.090Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T04:05:00.391Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T04:05:30.488Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T04:06:00.558Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T04:06:30.644Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T04:07:00.728Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T04:07:19.706Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/tasks/work-type/undefined", - "method": "GET" -} -[2026-02-02T04:07:19.707Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/tasks/work-type/undefined", - "statusCode": 404, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T04:07:21.942Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/tasks/work-type/undefined", - "method": "GET" -} -[2026-02-02T04:07:21.944Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/tasks/work-type/undefined", - "statusCode": 404, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T04:07:30.817Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T04:08:00.899Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T04:08:18.598Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T04:08:18.601Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/safety-checks", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T04:08:18.602Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/conditions", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T04:08:18.657Z] [WARN] ⚠️ 날씨 API 키가 설정되지 않음. 기본값 반환 -[2026-02-02T04:08:18.659Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 20, - "humidity": 50, - "windSpeed": 2, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": "clear", - "isDefault": true - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T04:08:18.662Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T04:08:19.588Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T04:08:30.974Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T04:08:33.949Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T04:08:34.015Z] [WARN] ⚠️ 날씨 API 키가 설정되지 않음. 기본값 반환 -[2026-02-02T04:08:34.018Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 20, - "humidity": 50, - "windSpeed": 2, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": "clear", - "isDefault": true - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T04:08:34.021Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T04:08:34.027Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T04:08:34.117Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T04:08:34.144Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-02", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T04:08:34.159Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T04:08:34.944Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T04:09:01.066Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T04:09:12.282Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T04:09:12.355Z] [WARN] ⚠️ 날씨 API 키가 설정되지 않음. 기본값 반환 -[2026-02-02T04:09:12.360Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 20, - "humidity": 50, - "windSpeed": 2, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": "clear", - "isDefault": true - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T04:09:12.365Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T04:09:12.366Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T04:09:12.439Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T04:09:12.471Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-02", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T04:09:12.479Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T04:09:13.277Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T04:09:15.764Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/safety-checks", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T04:09:15.765Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T04:09:15.766Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/conditions", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T04:09:15.910Z] [WARN] ⚠️ 날씨 API 키가 설정되지 않음. 기본값 반환 -[2026-02-02T04:09:15.913Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 20, - "humidity": 50, - "windSpeed": 2, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": "clear", - "isDefault": true - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T04:09:15.916Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T04:09:16.751Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T04:09:31.148Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T04:10:01.243Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T04:10:31.338Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T04:11:01.452Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T04:11:31.514Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T04:12:01.616Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T04:12:31.713Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T04:13:01.804Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T04:13:31.903Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T04:14:01.992Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T04:14:32.087Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T04:15:02.182Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T04:15:32.277Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T04:16:02.387Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T04:16:32.479Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T04:17:02.576Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T04:17:32.653Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T04:18:02.732Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T04:18:32.815Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T04:19:02.893Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T04:19:32.972Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T04:20:03.051Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T04:20:33.128Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T04:21:03.201Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T04:21:33.277Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T04:21:40.421Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2026-02-02T04:21:40.423Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-02-02T04:21:41.723Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-02-02T04:21:41.798Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-02-02T04:21:41.873Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2026-02-02T04:21:41.881Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-02-02T04:21:46.607Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T04:21:58.482Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 500, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T04:22:03.141Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/tbm/weather/conditions", - "statusCode": 500, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T04:22:03.147Z] [INFO] ℹ️ MariaDB 연결 성공 - Context: { - "connection": "db:3306", - "database": "hyungi", - "connectionLimit": 10 -} -[2026-02-02T04:22:03.150Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "43ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T04:22:03.155Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/safety-checks", - "statusCode": 200, - "duration": "73ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T04:22:03.306Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 500, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T04:22:04.047Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T04:22:16.698Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T04:22:46.774Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T04:23:16.847Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T04:23:46.913Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T04:24:04.361Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2026-02-02T04:24:04.364Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-02-02T04:24:05.913Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-02-02T04:24:05.991Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-02-02T04:24:06.067Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2026-02-02T04:24:06.074Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-02-02T04:24:10.803Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T04:24:16.515Z] [WARN] ⚠️ 인증 실패: 유효하지 않은 토큰 - Context: { - "error": "invalid signature", - "path": "/", - "ip": "::ffff:185.199.108.133" -} -[2026-02-02T04:24:16.517Z] [WARN] ⚠️ 유효하지 않은 토큰입니다 - Context: { - "code": "AUTHENTICATION_ERROR", - "url": "/api/tbm/weather/current", - "method": "GET", - "user": "anonymous" -} -[2026-02-02T04:24:16.519Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 401, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-02-02T04:24:24.287Z] [INFO] ℹ️ MariaDB 연결 성공 - Context: { - "connection": "db:3306", - "database": "hyungi", - "connectionLimit": 10 -} -[2026-02-02T04:24:24.365Z] [WARN] ⚠️ 아이디 또는 비밀번호가 올바르지 않습니다. - Context: { - "code": "AUTHENTICATION_ERROR", - "url": "/api/auth/login", - "method": "POST", - "user": "anonymous" -} -[2026-02-02T04:24:24.366Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 401, - "duration": "92ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-02-02T04:24:24.380Z] [WARN] ⚠️ 인증 실패: Bearer 토큰 누락 - Context: { - "path": "/", - "method": "GET", - "ip": "::ffff:185.199.108.133" -} -[2026-02-02T04:24:24.381Z] [WARN] ⚠️ Bearer 토큰이 필요합니다 - Context: { - "code": "AUTHENTICATION_ERROR", - "url": "/api/tbm/weather/current", - "method": "GET", - "user": "anonymous" -} -[2026-02-02T04:24:24.381Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 401, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-02-02T04:24:28.152Z] [WARN] ⚠️ 아이디 또는 비밀번호가 올바르지 않습니다. - Context: { - "code": "AUTHENTICATION_ERROR", - "url": "/api/auth/login", - "method": "POST", - "user": "anonymous" -} -[2026-02-02T04:24:28.153Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 401, - "duration": "73ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-02-02T04:24:39.221Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260202", - "baseTime": "0400", - "nx": 57, - "ny": 119 -} -[2026-02-02T04:24:39.943Z] [ERROR] ❌ 날씨 API 호출 실패 - Context: { - "error": "Request failed with status code 401" -} -[2026-02-02T04:24:40.877Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T04:25:10.947Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T04:25:37.135Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2026-02-02T04:25:37.138Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-02-02T04:25:38.316Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-02-02T04:25:38.419Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-02-02T04:25:38.504Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2026-02-02T04:25:38.512Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-02-02T04:25:43.185Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T04:26:13.264Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T04:26:43.339Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T04:27:13.400Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T04:27:43.476Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T04:27:45.995Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2026-02-02T04:27:45.998Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-02-02T04:27:46.996Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-02-02T04:27:47.070Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-02-02T04:27:47.141Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2026-02-02T04:27:47.146Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-02-02T04:27:51.891Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T04:27:54.027Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260202", - "baseTime": "0400", - "nx": 57, - "ny": 119 -} -[2026-02-02T04:27:54.631Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -2.9, - "humidity": 93, - "windSpeed": 0.5, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-02T04:28:09.077Z] [INFO] ℹ️ MariaDB 연결 성공 - Context: { - "connection": "db:3306", - "database": "hyungi", - "connectionLimit": 10 -} -[2026-02-02T04:28:09.096Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260202", - "baseTime": "0400", - "nx": 57, - "ny": 119 -} -[2026-02-02T04:28:09.192Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "164ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T04:28:09.196Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/safety-checks", - "statusCode": 200, - "duration": "272ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T04:28:09.197Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/conditions", - "statusCode": 200, - "duration": "259ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T04:28:09.652Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -2.9, - "humidity": 93, - "windSpeed": 0.5, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-02T04:28:09.657Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -2.9, - "humidity": 93, - "windSpeed": 0.5, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T04:28:09.660Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "572ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T04:28:09.908Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T04:28:21.967Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T04:28:28.763Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T04:28:28.797Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260202", - "baseTime": "0400", - "nx": 57, - "ny": 119 -} -[2026-02-02T04:28:28.821Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T04:28:28.890Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T04:28:28.955Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -2.9, - "humidity": 93, - "windSpeed": 0.5, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-02T04:28:28.956Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -2.9, - "humidity": 93, - "windSpeed": 0.5, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T04:28:28.958Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 304, - "duration": "165ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T04:28:28.986Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-02", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T04:28:28.998Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T04:28:29.673Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T04:28:52.047Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T04:29:22.123Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T04:29:52.188Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T04:30:22.271Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T04:30:52.351Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T04:31:22.420Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T04:31:52.490Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T04:32:22.558Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T04:32:52.620Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T04:33:22.690Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T04:33:52.763Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T04:34:22.839Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T04:34:52.908Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T04:35:22.980Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T04:35:53.050Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T04:36:23.130Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T04:36:53.205Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T04:37:23.284Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T04:37:53.362Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T04:38:23.438Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T04:38:28.803Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260202", - "baseTime": "0400", - "nx": 57, - "ny": 119 -} -[2026-02-02T04:38:29.135Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -2.9, - "humidity": 93, - "windSpeed": 0.5, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-02T04:38:29.139Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -2.9, - "humidity": 93, - "windSpeed": 0.5, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T04:38:29.141Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 304, - "duration": "342ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T04:38:53.507Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T04:39:23.582Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T04:39:53.664Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T04:40:23.750Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T04:40:53.824Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T04:41:23.893Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T04:41:53.961Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T04:42:24.045Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T04:42:54.120Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T04:43:24.199Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T04:43:54.273Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T04:44:24.355Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T04:44:54.432Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T04:45:24.510Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T04:45:54.577Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T04:46:24.650Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T04:46:54.713Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T04:47:24.784Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T04:47:54.857Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T04:48:24.947Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T04:48:28.802Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260202", - "baseTime": "0400", - "nx": 57, - "ny": 119 -} -[2026-02-02T04:48:29.188Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -2.9, - "humidity": 93, - "windSpeed": 0.5, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-02T04:48:29.193Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -2.9, - "humidity": 93, - "windSpeed": 0.5, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T04:48:29.197Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 304, - "duration": "397ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T04:48:55.051Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T04:49:25.124Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T04:49:55.199Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T04:50:25.300Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T04:50:55.384Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T04:51:25.470Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T04:51:55.543Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T04:52:25.626Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T04:52:55.720Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T04:53:25.808Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T04:53:55.899Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T04:54:25.993Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T04:54:56.085Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T04:55:26.183Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T04:55:56.270Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T04:56:26.359Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T04:56:56.434Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T04:57:26.553Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T04:57:56.650Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T04:58:26.751Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T04:58:56.841Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T04:59:26.937Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T04:59:57.038Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T05:00:27.154Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T05:00:57.252Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T05:01:27.395Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T05:01:57.490Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T05:02:27.593Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T05:02:57.705Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T05:03:27.801Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T05:03:57.909Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T05:04:28.006Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T05:04:58.100Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T05:05:28.162Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T05:05:58.235Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T05:06:28.313Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T05:06:58.426Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T05:07:28.551Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T05:07:58.662Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T05:08:28.758Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T05:08:58.870Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T05:09:28.978Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T05:09:59.074Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T05:10:29.167Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T05:10:59.287Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T05:11:29.472Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T05:11:59.579Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T05:12:29.668Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T05:12:59.761Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T05:13:29.869Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T05:13:59.944Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T05:14:30.029Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T05:15:00.125Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T05:15:30.213Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T05:16:00.316Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T05:16:30.419Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T05:17:00.511Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T05:17:30.599Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T05:18:00.694Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T05:18:30.765Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T05:19:00.860Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T05:19:30.958Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T05:20:01.042Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T05:20:31.131Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T05:20:55.765Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260202", - "baseTime": "0500", - "nx": 57, - "ny": 119 -} -[2026-02-02T05:20:56.242Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -3.2, - "humidity": 94, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-02T05:20:56.249Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -3.2, - "humidity": 94, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T05:20:56.252Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "493ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:21:00.383Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:21:00.536Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260202", - "baseTime": "0500", - "nx": 57, - "ny": 119 -} -[2026-02-02T05:21:00.546Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:21:00.591Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:21:00.626Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-02", - "statusCode": 200, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:21:00.655Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "22ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:21:01.242Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T05:21:01.376Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:21:02.766Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -3.2, - "humidity": 94, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-02T05:21:02.770Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -3.2, - "humidity": 94, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T05:21:02.774Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "2240ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:21:31.346Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T05:21:47.526Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "33ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:21:47.592Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260202", - "baseTime": "0500", - "nx": 57, - "ny": 119 -} -[2026-02-02T05:21:47.610Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects?is_active=1", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:21:47.730Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/safety-checks", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:21:47.743Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:21:47.757Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks/active/list", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:21:47.765Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?is_active=true", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:21:47.772Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/active/list", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:21:47.780Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-02", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:21:48.473Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:21:48.640Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -3.2, - "humidity": 94, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-02T05:21:48.643Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -3.2, - "humidity": 94, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T05:21:48.645Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 304, - "duration": "1056ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:21:52.382Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:21:52.433Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260202", - "baseTime": "0500", - "nx": 57, - "ny": 119 -} -[2026-02-02T05:21:52.452Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:21:52.527Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:21:52.543Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-02", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:21:52.609Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:21:53.255Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -3.2, - "humidity": 94, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-02T05:21:53.259Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -3.2, - "humidity": 94, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T05:21:53.263Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 304, - "duration": "834ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:21:53.373Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:22:00.949Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "25ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:22:01.014Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260202", - "baseTime": "0500", - "nx": 57, - "ny": 119 -} -[2026-02-02T05:22:01.024Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/projects?is_active=1", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:22:01.084Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/safety-checks", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:22:01.092Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:22:01.105Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tasks/active/list", - "statusCode": 304, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:22:01.175Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces?is_active=true", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:22:01.190Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/active/list", - "statusCode": 304, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:22:01.195Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-02", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:22:01.358Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -3.2, - "humidity": 94, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-02T05:22:01.362Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -3.2, - "humidity": 94, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T05:22:01.365Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 304, - "duration": "355ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:22:01.456Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T05:22:01.902Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:22:31.549Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T05:23:01.653Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T05:23:31.727Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T05:24:01.813Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T05:24:31.917Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T05:25:02.024Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T05:25:32.132Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T05:26:02.216Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T05:26:19.676Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:26:19.778Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260202", - "baseTime": "0500", - "nx": 57, - "ny": 119 -} -[2026-02-02T05:26:19.793Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects?is_active=1", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:26:19.804Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/safety-checks", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:26:19.811Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:26:19.827Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks/active/list", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:26:19.837Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?is_active=true", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:26:19.843Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/active/list", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:26:19.852Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-02", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:26:20.721Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:26:21.322Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -3.2, - "humidity": 94, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-02T05:26:21.326Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -3.2, - "humidity": 94, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T05:26:21.329Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "1556ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:26:23.268Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:26:23.326Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260202", - "baseTime": "0500", - "nx": 57, - "ny": 119 -} -[2026-02-02T05:26:23.351Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:26:23.404Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -3.2, - "humidity": 94, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-02T05:26:23.405Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -3.2, - "humidity": 94, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T05:26:23.407Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 304, - "duration": "84ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:26:23.448Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:26:23.523Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-02", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:26:23.534Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:26:24.259Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:26:32.288Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T05:26:34.497Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:26:34.645Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260202", - "baseTime": "0500", - "nx": 57, - "ny": 119 -} -[2026-02-02T05:26:34.658Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:26:35.440Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:26:36.843Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -3.2, - "humidity": 94, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-02T05:26:36.849Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -3.2, - "humidity": 94, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T05:26:36.852Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 304, - "duration": "2209ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:26:42.440Z] [INFO] ℹ️ 사용자 목록 조회 요청 - Context: { - "requestedBy": "admin" -} -[2026-02-02T05:26:42.441Z] [INFO] ℹ️ 사용자 목록 조회 성공 - Context: { - "count": 2 -} -[2026-02-02T05:26:42.442Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:26:42.595Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260202", - "baseTime": "0500", - "nx": 57, - "ny": 119 -} -[2026-02-02T05:26:42.667Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -3.2, - "humidity": 94, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-02T05:26:42.670Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -3.2, - "humidity": 94, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T05:26:42.672Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 304, - "duration": "79ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:26:43.441Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:26:44.070Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/pages", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:26:44.079Z] [INFO] ℹ️ 사용자 페이지 권한 조회 요청 - Context: { - "userId": "27" -} -[2026-02-02T05:26:44.084Z] [INFO] ℹ️ 사용자 페이지 권한 조회 성공 - Context: { - "userId": "27", - "pageCount": 31 -} -[2026-02-02T05:26:44.087Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users/27/page-access", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:27:00.286Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:27:00.442Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260202", - "baseTime": "0500", - "nx": 57, - "ny": 119 -} -[2026-02-02T05:27:00.452Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:27:00.558Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:27:00.625Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-02", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:27:00.640Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:27:01.278Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:27:01.821Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -3.2, - "humidity": 94, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-02T05:27:01.826Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -3.2, - "humidity": 94, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T05:27:01.829Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 304, - "duration": "1390ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:27:02.394Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T05:27:07.433Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260202", - "baseTime": "0500", - "nx": 57, - "ny": 119 -} -[2026-02-02T05:27:07.448Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:27:07.454Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/attendance/records?date=2026-02-02", - "method": "GET" -} -[2026-02-02T05:27:07.454Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/attendance/records?date=2026-02-02", - "statusCode": 404, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:27:07.456Z] [INFO] ℹ️ 출근 체크 목록 조회 요청 - Context: { - "date": "2026-02-02" -} -[2026-02-02T05:27:07.458Z] [INFO] ℹ️ 출근 체크 목록 조회 성공 - Context: { - "date": "2026-02-02", - "count": 10 -} -[2026-02-02T05:27:07.459Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/checkin-list?date=2026-02-02", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:27:07.561Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -3.2, - "humidity": 94, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-02T05:27:07.564Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -3.2, - "humidity": 94, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T05:27:07.566Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 304, - "duration": "135ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:27:08.257Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:27:15.739Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:27:15.807Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260202", - "baseTime": "0500", - "nx": 57, - "ny": 119 -} -[2026-02-02T05:27:15.825Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:27:15.858Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 304, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:27:15.909Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-02", - "statusCode": 304, - "duration": "26ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:27:15.940Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 304, - "duration": "22ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:27:16.717Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:27:17.206Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -3.2, - "humidity": 94, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-02T05:27:17.209Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -3.2, - "humidity": 94, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T05:27:17.212Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 304, - "duration": "1411ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:27:17.772Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260202", - "baseTime": "0500", - "nx": 57, - "ny": 119 -} -[2026-02-02T05:27:17.780Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "16ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:27:18.807Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -3.2, - "humidity": 94, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-02T05:27:18.810Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -3.2, - "humidity": 94, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T05:27:18.813Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 304, - "duration": "1043ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:27:20.461Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:27:20.894Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:27:20.951Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260202", - "baseTime": "0500", - "nx": 57, - "ny": 119 -} -[2026-02-02T05:27:20.965Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:27:20.974Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:27:21.003Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-02", - "statusCode": 304, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:27:21.041Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 304, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:27:21.093Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -3.2, - "humidity": 94, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-02T05:27:21.096Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -3.2, - "humidity": 94, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T05:27:21.097Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 304, - "duration": "150ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:27:21.895Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:27:32.493Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T05:27:55.174Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "15ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:27:55.323Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260202", - "baseTime": "0500", - "nx": 57, - "ny": 119 -} -[2026-02-02T05:27:55.335Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/projects?is_active=1", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:27:55.398Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/safety-checks", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:27:55.407Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:27:55.412Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tasks/active/list", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:27:55.416Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces?is_active=true", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:27:55.421Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/active/list", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:27:55.425Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-02", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:27:55.480Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -3.2, - "humidity": 94, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-02T05:27:55.482Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -3.2, - "humidity": 94, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T05:27:55.484Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 304, - "duration": "164ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:27:56.166Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:27:59.524Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-02", - "statusCode": 304, - "duration": "15ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:27:59.533Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-01", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:27:59.536Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-27", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:27:59.539Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-31", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:27:59.546Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-30", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:27:59.548Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-28", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:27:59.550Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-29", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:28:02.588Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T05:28:03.752Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-02", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:28:07.131Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-01", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:28:07.158Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-31", - "statusCode": 304, - "duration": "23ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:28:07.160Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-02", - "statusCode": 304, - "duration": "22ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:28:07.161Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-30", - "statusCode": 304, - "duration": "21ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:28:07.165Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-29", - "statusCode": 304, - "duration": "22ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:28:07.166Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-28", - "statusCode": 304, - "duration": "18ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:28:07.168Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-27", - "statusCode": 304, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:28:13.444Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/12/safety-checks/filtered", - "statusCode": 200, - "duration": "18ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:28:18.216Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:28:18.415Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260202", - "baseTime": "0500", - "nx": 57, - "ny": 119 -} -[2026-02-02T05:28:18.459Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:28:18.481Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:28:18.492Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -3.2, - "humidity": 94, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-02T05:28:18.494Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -3.2, - "humidity": 94, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T05:28:18.496Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 304, - "duration": "85ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:28:18.505Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-02", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:28:18.510Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:28:19.211Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:28:32.692Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T05:28:51.229Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:28:51.370Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260202", - "baseTime": "0500", - "nx": 57, - "ny": 119 -} -[2026-02-02T05:28:51.384Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:28:51.394Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:28:51.407Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-02", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:28:51.414Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:28:51.462Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -3.2, - "humidity": 94, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-02T05:28:51.465Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -3.2, - "humidity": 94, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T05:28:51.466Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 304, - "duration": "99ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:28:52.218Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:29:00.848Z] [INFO] ℹ️ 사용자 목록 조회 요청 - Context: { - "requestedBy": "admin" -} -[2026-02-02T05:29:00.851Z] [INFO] ℹ️ 사용자 목록 조회 성공 - Context: { - "count": 2 -} -[2026-02-02T05:29:00.852Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/users", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:29:01.027Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260202", - "baseTime": "0500", - "nx": 57, - "ny": 119 -} -[2026-02-02T05:29:01.535Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -3.2, - "humidity": 94, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-02T05:29:01.538Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -3.2, - "humidity": 94, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T05:29:01.541Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 304, - "duration": "516ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:29:01.844Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:29:02.797Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T05:29:06.901Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:29:06.946Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260202", - "baseTime": "0500", - "nx": 57, - "ny": 119 -} -[2026-02-02T05:29:06.967Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 304, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:29:06.984Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:29:07.007Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-02", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:29:07.026Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -3.2, - "humidity": 94, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-02T05:29:07.032Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 304, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:29:07.035Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -3.2, - "humidity": 94, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T05:29:07.039Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 304, - "duration": "98ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:29:07.893Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:29:32.907Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T05:30:03.011Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T05:30:11.079Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "24ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:30:11.159Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260202", - "baseTime": "0500", - "nx": 57, - "ny": 119 -} -[2026-02-02T05:30:11.179Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:30:11.247Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:30:11.272Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -3.2, - "humidity": 94, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-02T05:30:11.278Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -3.2, - "humidity": 94, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T05:30:11.282Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "125ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:30:11.311Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-02", - "statusCode": 200, - "duration": "15ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:30:11.361Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "41ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:30:12.030Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:30:33.121Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T05:31:03.216Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T05:31:05.536Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:31:05.612Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260202", - "baseTime": "0500", - "nx": 57, - "ny": 119 -} -[2026-02-02T05:31:05.627Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:31:05.636Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:31:05.661Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-02", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:31:05.683Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -3.2, - "humidity": 94, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-02T05:31:05.688Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -3.2, - "humidity": 94, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T05:31:05.691Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "81ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:31:05.693Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:31:06.512Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:31:33.304Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T05:31:56.142Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:31:56.238Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260202", - "baseTime": "0500", - "nx": 57, - "ny": 119 -} -[2026-02-02T05:31:56.269Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects?is_active=1", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:31:56.365Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/safety-checks", - "statusCode": 200, - "duration": "34ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:31:56.379Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:31:56.388Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks/active/list", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:31:56.482Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?is_active=true", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:31:56.497Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/active/list", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:31:56.502Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-02", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:31:57.109Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:31:58.282Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -3.2, - "humidity": 94, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-02T05:31:58.286Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -3.2, - "humidity": 94, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T05:31:58.290Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 304, - "duration": "2060ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:31:59.772Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:31:59.875Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260202", - "baseTime": "0500", - "nx": 57, - "ny": 119 -} -[2026-02-02T05:31:59.891Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:31:59.901Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:31:59.926Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-02", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:31:59.937Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:32:00.062Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -3.2, - "humidity": 94, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-02T05:32:00.063Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -3.2, - "humidity": 94, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T05:32:00.063Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 304, - "duration": "189ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:32:00.744Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:32:01.112Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:32:01.215Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260202", - "baseTime": "0500", - "nx": 57, - "ny": 119 -} -[2026-02-02T05:32:01.237Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:32:01.260Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:32:01.274Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:32:01.371Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:32:01.388Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:32:02.094Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:32:02.414Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -3.2, - "humidity": 94, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-02T05:32:02.416Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -3.2, - "humidity": 94, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T05:32:02.418Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 304, - "duration": "1207ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:32:03.407Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T05:32:06.525Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:32:06.575Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260202", - "baseTime": "0500", - "nx": 57, - "ny": 119 -} -[2026-02-02T05:32:06.592Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 304, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:32:06.607Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:32:06.631Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-02", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:32:06.644Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:32:06.756Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -3.2, - "humidity": 94, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-02T05:32:06.758Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -3.2, - "humidity": 94, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T05:32:06.760Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 304, - "duration": "187ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:32:07.516Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:32:11.071Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:32:11.104Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260202", - "baseTime": "0500", - "nx": 57, - "ny": 119 -} -[2026-02-02T05:32:11.211Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -3.2, - "humidity": 94, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-02T05:32:11.214Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -3.2, - "humidity": 94, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T05:32:11.218Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 304, - "duration": "116ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:32:11.942Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:32:12.068Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:32:12.776Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:32:12.824Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260202", - "baseTime": "0500", - "nx": 57, - "ny": 119 -} -[2026-02-02T05:32:12.845Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:32:12.856Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:32:12.873Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-02", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:32:12.885Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:32:13.360Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -3.2, - "humidity": 94, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-02T05:32:13.363Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -3.2, - "humidity": 94, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T05:32:13.367Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 304, - "duration": "546ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:32:13.773Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:32:33.496Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T05:33:03.588Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T05:33:33.679Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T05:34:03.785Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T05:34:33.870Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T05:35:03.951Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T05:35:34.047Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T05:36:04.145Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T05:36:34.263Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T05:36:36.414Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "31ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:36:36.509Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260202", - "baseTime": "0500", - "nx": 57, - "ny": 119 -} -[2026-02-02T05:36:36.533Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:36:36.551Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:36:36.606Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-02", - "statusCode": 200, - "duration": "28ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:36:36.618Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:36:37.034Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -3.2, - "humidity": 94, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-02T05:36:37.037Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -3.2, - "humidity": 94, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T05:36:37.039Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "533ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:36:37.363Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:36:40.523Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260202", - "baseTime": "0500", - "nx": 57, - "ny": 119 -} -[2026-02-02T05:36:40.542Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:36:40.959Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -3.2, - "humidity": 94, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-02T05:36:40.964Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -3.2, - "humidity": 94, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T05:36:40.968Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 304, - "duration": "449ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:36:43.022Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:36:46.522Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:36:46.595Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260202", - "baseTime": "0500", - "nx": 57, - "ny": 119 -} -[2026-02-02T05:36:46.637Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 304, - "duration": "24ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:36:46.652Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:36:46.675Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-02", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:36:46.689Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:36:46.792Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -3.2, - "humidity": 94, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-02T05:36:46.794Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -3.2, - "humidity": 94, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T05:36:46.795Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 304, - "duration": "205ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:36:47.513Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:37:04.363Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T05:37:34.446Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T05:38:04.541Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T05:38:34.632Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T05:38:39.114Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260202", - "baseTime": "0500", - "nx": 57, - "ny": 119 -} -[2026-02-02T05:38:39.131Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:38:39.198Z] [INFO] ℹ️ 휴가 유형 목록 조회 요청 -[2026-02-02T05:38:39.203Z] [INFO] ℹ️ 휴가 유형 목록 조회 성공 - Context: { - "count": 4 -} -[2026-02-02T05:38:39.204Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/vacation-types", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:38:39.215Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/vacation-requests/pending", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:38:39.222Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/vacation-requests", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:38:39.244Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -3.2, - "humidity": 94, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-02T05:38:39.245Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -3.2, - "humidity": 94, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T05:38:39.246Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 304, - "duration": "136ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:38:39.958Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:38:42.964Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:38:43.005Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260202", - "baseTime": "0500", - "nx": 57, - "ny": 119 -} -[2026-02-02T05:38:43.019Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:38:43.031Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:38:43.067Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-02", - "statusCode": 304, - "duration": "19ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:38:43.082Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 304, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:38:43.093Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -3.2, - "humidity": 94, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-02T05:38:43.095Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -3.2, - "humidity": 94, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T05:38:43.098Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 304, - "duration": "96ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:38:43.952Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:39:04.729Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T05:39:34.816Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T05:39:49.188Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:39:49.191Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260202", - "baseTime": "0500", - "nx": 57, - "ny": 119 -} -[2026-02-02T05:39:49.206Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/attendance/records?start_date=2026-01-26&end_date=2026-02-02", - "method": "GET" -} -[2026-02-02T05:39:49.207Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/attendance/records?start_date=2026-01-26&end_date=2026-02-02", - "statusCode": 404, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:39:49.308Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -3.2, - "humidity": 94, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-02T05:39:49.313Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -3.2, - "humidity": 94, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T05:39:49.319Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 304, - "duration": "130ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:39:50.065Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:39:50.284Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:39:50.334Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260202", - "baseTime": "0500", - "nx": 57, - "ny": 119 -} -[2026-02-02T05:39:50.345Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:39:50.353Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:39:50.374Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-02", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:39:50.385Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:39:50.490Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -3.2, - "humidity": 94, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-02T05:39:50.492Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -3.2, - "humidity": 94, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T05:39:50.494Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 304, - "duration": "162ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:39:51.277Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:39:54.317Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:39:54.368Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260202", - "baseTime": "0500", - "nx": 57, - "ny": 119 -} -[2026-02-02T05:39:54.375Z] [INFO] ℹ️ 월별 캘린더 데이터 조회 요청 - Context: { - "year": 2026, - "month": 2 -} -[2026-02-02T05:39:54.384Z] [ERROR] ❌ 월별 캘린더 데이터 조회 실패 - Context: { - "year": 2026, - "month": 2, - "error": "Table 'hyungi.monthly_summary' doesn't exist" -} -[2026-02-02T05:39:54.388Z] [ERROR] ❌ 월별 캘린더 데이터 조회 중 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 월별 캘린더 데이터 조회 중 오류가 발생했습니다\n at /usr/src/app/controllers/monthlyStatusController.js:80:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "url": "/api/monthly-status/calendar?year=2026&month=2", - "method": "GET", - "user": "anonymous" -} -[2026-02-02T05:39:54.389Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/monthly-status/calendar?year=2026&month=2", - "statusCode": 500, - "duration": "17ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:39:54.414Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-02-01", - "requester": 1, - "isAdmin": false -} -[2026-02-02T05:39:54.416Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-02-03", - "requester": 1, - "isAdmin": false -} -[2026-02-02T05:39:54.418Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-31", - "requester": 1, - "isAdmin": false -} -[2026-02-02T05:39:54.420Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-02-02", - "requester": 1, - "isAdmin": false -} -[2026-02-02T05:39:54.421Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-02-02T05:39:54.422Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-02-01&view_all=true", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:39:54.422Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-02-02T05:39:54.423Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-02-03&view_all=true", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:39:54.424Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-02-04", - "requester": 1, - "isAdmin": false -} -[2026-02-02T05:39:54.424Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-02-02T05:39:54.424Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-31&view_all=true", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:39:54.425Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 2 -} -[2026-02-02T05:39:54.425Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-02-02&view_all=true", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:39:54.425Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-02-02T05:39:54.425Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-02-04&view_all=true", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:39:54.467Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -3.2, - "humidity": 94, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-02T05:39:54.468Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -3.2, - "humidity": 94, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T05:39:54.468Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 304, - "duration": "102ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:39:54.600Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-02-05", - "requester": 1, - "isAdmin": false -} -[2026-02-02T05:39:54.603Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-02-08", - "requester": 1, - "isAdmin": false -} -[2026-02-02T05:39:54.604Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-02-09", - "requester": 1, - "isAdmin": false -} -[2026-02-02T05:39:54.607Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-02-06", - "requester": 1, - "isAdmin": false -} -[2026-02-02T05:39:54.609Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-02-07", - "requester": 1, - "isAdmin": false -} -[2026-02-02T05:39:54.611Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-02-02T05:39:54.612Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-02-05&view_all=true", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:39:54.613Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-02-02T05:39:54.615Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-02-08&view_all=true", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:39:54.616Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-02-02T05:39:54.617Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-02-09&view_all=true", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:39:54.617Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-02-02T05:39:54.618Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-02-06&view_all=true", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:39:54.619Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-02-02T05:39:54.620Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-02-07&view_all=true", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:39:54.733Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-02-12", - "requester": 1, - "isAdmin": false -} -[2026-02-02T05:39:54.735Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-02-10", - "requester": 1, - "isAdmin": false -} -[2026-02-02T05:39:54.737Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-02-11", - "requester": 1, - "isAdmin": false -} -[2026-02-02T05:39:54.739Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-02-13", - "requester": 1, - "isAdmin": false -} -[2026-02-02T05:39:54.740Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-02-14", - "requester": 1, - "isAdmin": false -} -[2026-02-02T05:39:54.741Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-02-02T05:39:54.742Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-02-12&view_all=true", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:39:54.743Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-02-02T05:39:54.744Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-02-10&view_all=true", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:39:54.745Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-02-02T05:39:54.746Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-02-11&view_all=true", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:39:54.747Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-02-02T05:39:54.748Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-02-13&view_all=true", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:39:54.749Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-02-02T05:39:54.750Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-02-14&view_all=true", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:39:54.870Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-02-15", - "requester": 1, - "isAdmin": false -} -[2026-02-02T05:39:54.874Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-02-16", - "requester": 1, - "isAdmin": false -} -[2026-02-02T05:39:54.876Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-02-17", - "requester": 1, - "isAdmin": false -} -[2026-02-02T05:39:54.878Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-02-18", - "requester": 1, - "isAdmin": false -} -[2026-02-02T05:39:54.880Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-02-19", - "requester": 1, - "isAdmin": false -} -[2026-02-02T05:39:54.881Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-02-02T05:39:54.881Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-02-15&view_all=true", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:39:54.882Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-02-02T05:39:54.882Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-02-16&view_all=true", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:39:54.884Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-02-02T05:39:54.885Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-02-17&view_all=true", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:39:54.887Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-02-02T05:39:54.888Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-02-18&view_all=true", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:39:54.888Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-02-02T05:39:54.889Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-02-19&view_all=true", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:39:55.009Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-02-20", - "requester": 1, - "isAdmin": false -} -[2026-02-02T05:39:55.013Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-02-21", - "requester": 1, - "isAdmin": false -} -[2026-02-02T05:39:55.016Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-02-22", - "requester": 1, - "isAdmin": false -} -[2026-02-02T05:39:55.018Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-02-23", - "requester": 1, - "isAdmin": false -} -[2026-02-02T05:39:55.019Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-02-24", - "requester": 1, - "isAdmin": false -} -[2026-02-02T05:39:55.020Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-02-02T05:39:55.021Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-02-20&view_all=true", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:39:55.021Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-02-02T05:39:55.022Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-02-21&view_all=true", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:39:55.022Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-02-02T05:39:55.023Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-02-22&view_all=true", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:39:55.024Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-02-02T05:39:55.025Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-02-23&view_all=true", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:39:55.025Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-02-02T05:39:55.026Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-02-24&view_all=true", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:39:55.141Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-02-25", - "requester": 1, - "isAdmin": false -} -[2026-02-02T05:39:55.144Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-02-26", - "requester": 1, - "isAdmin": false -} -[2026-02-02T05:39:55.147Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-02-27", - "requester": 1, - "isAdmin": false -} -[2026-02-02T05:39:55.149Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-02-02T05:39:55.150Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-02-25&view_all=true", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:39:55.151Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-02-02T05:39:55.152Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-02-26&view_all=true", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:39:55.152Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-02-02T05:39:55.153Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-02-27&view_all=true", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:39:55.242Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:39:55.286Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260202", - "baseTime": "0500", - "nx": 57, - "ny": 119 -} -[2026-02-02T05:39:55.297Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:39:55.306Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:39:55.323Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-02", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:39:55.336Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:39:55.369Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -3.2, - "humidity": 94, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-02T05:39:55.371Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -3.2, - "humidity": 94, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T05:39:55.372Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 304, - "duration": "89ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:39:56.238Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:39:59.949Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/active/list", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:40:00.006Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 304, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:40:00.013Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "17ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:40:00.019Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-02", - "statusCode": 304, - "duration": "20ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:40:00.036Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 304, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:40:00.928Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:40:04.896Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T05:40:16.975Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues/categories/type/nonconformity", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:40:27.582Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:40:27.702Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260202", - "baseTime": "0500", - "nx": 57, - "ny": 119 -} -[2026-02-02T05:40:27.716Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:40:27.806Z] [ERROR] ❌ 날씨 API 호출 실패 - Context: { - "error": "Request failed with status code 429" -} -[2026-02-02T05:40:27.815Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 304, - "duration": "16ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:40:27.817Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 20, - "humidity": 50, - "windSpeed": 2, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": "clear", - "isDefault": true - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T05:40:27.819Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "120ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:40:27.825Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-02", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:40:27.831Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:40:28.582Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:40:35.005Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T05:41:05.096Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T05:41:35.194Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T05:42:05.291Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T05:42:35.381Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T05:43:05.462Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T05:43:35.555Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T05:44:05.650Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T05:44:35.768Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T05:44:57.343Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "40ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:44:57.409Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260202", - "baseTime": "0500", - "nx": 57, - "ny": 119 -} -[2026-02-02T05:44:57.430Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260202", - "baseTime": "0500", - "nx": 57, - "ny": 119 -} -[2026-02-02T05:44:57.435Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects?is_active=1", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:44:57.497Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/safety-checks", - "statusCode": 200, - "duration": "16ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:44:57.513Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:44:57.587Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks/active/list", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:44:57.604Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?is_active=true", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:44:57.608Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/active/list", - "statusCode": 304, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:44:57.612Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-02", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:44:57.783Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -3.2, - "humidity": 94, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-02T05:44:57.786Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -3.2, - "humidity": 94, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T05:44:57.789Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "389ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:44:58.291Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:44:58.833Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -3.2, - "humidity": 94, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-02T05:44:58.835Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -3.2, - "humidity": 94, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T05:44:58.839Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "1411ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:45:05.906Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T05:45:11.676Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "19ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:45:11.802Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260202", - "baseTime": "0500", - "nx": 57, - "ny": 119 -} -[2026-02-02T05:45:11.838Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260202", - "baseTime": "0500", - "nx": 57, - "ny": 119 -} -[2026-02-02T05:45:11.854Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/projects?is_active=1", - "statusCode": 304, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:45:11.869Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/safety-checks", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:45:11.908Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 304, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:45:11.919Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tasks/active/list", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:45:11.929Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces?is_active=true", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:45:12.009Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/active/list", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:45:12.010Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -3.2, - "humidity": 94, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-02T05:45:12.011Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -3.2, - "humidity": 94, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-02T05:45:12.011Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -3.2, - "humidity": 94, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T05:45:12.012Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -3.2, - "humidity": 94, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T05:45:12.013Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 304, - "duration": "239ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:45:12.015Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 304, - "duration": "179ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:45:12.019Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-02", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:45:12.649Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:45:36.004Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T05:46:06.103Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T05:46:36.201Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T05:47:06.284Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T05:47:36.378Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T05:48:06.458Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T05:48:36.547Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T05:49:06.634Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T05:49:36.725Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T05:50:06.814Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T05:50:36.925Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T05:51:07.015Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T05:51:37.034Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:51:37.160Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260202", - "baseTime": "0500", - "nx": 57, - "ny": 119 -} -[2026-02-02T05:51:37.191Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 304, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:51:37.216Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:51:37.238Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T05:51:37.245Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-02", - "statusCode": 304, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:51:37.267Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 304, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:51:38.005Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:51:38.644Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -3.2, - "humidity": 94, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-02T05:51:38.649Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -3.2, - "humidity": 94, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T05:51:38.653Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 304, - "duration": "1497ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:51:43.058Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests?status=pending", - "statusCode": 200, - "duration": "15ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:51:43.099Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260202", - "baseTime": "0500", - "nx": 57, - "ny": 119 -} -[2026-02-02T05:51:43.127Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 304, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:51:43.131Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 304, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:51:44.039Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:51:44.637Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -3.2, - "humidity": 94, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-02T05:51:44.641Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -3.2, - "humidity": 94, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T05:51:44.644Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 304, - "duration": "1549ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:51:46.027Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:51:46.084Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260202", - "baseTime": "0500", - "nx": 57, - "ny": 119 -} -[2026-02-02T05:51:46.095Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:51:46.106Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:51:46.127Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-02", - "statusCode": 304, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:51:46.143Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:51:47.020Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:51:47.839Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -3.2, - "humidity": 94, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-02T05:51:47.842Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -3.2, - "humidity": 94, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T05:51:47.846Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 304, - "duration": "1764ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:52:07.336Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T05:52:37.417Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T05:53:07.509Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T05:53:37.606Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T05:54:07.710Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T05:54:37.805Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T05:55:07.890Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T05:55:37.989Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T05:56:08.088Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T05:56:38.184Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T05:57:08.284Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "6ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T05:57:38.377Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T05:58:08.479Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T05:58:38.565Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T05:59:08.655Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T05:59:38.758Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T06:00:08.858Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T06:00:38.961Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T06:01:09.052Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T06:01:39.147Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T06:01:46.125Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260202", - "baseTime": "0500", - "nx": 57, - "ny": 119 -} -[2026-02-02T06:01:46.534Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -3.2, - "humidity": 94, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-02T06:01:46.536Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -3.2, - "humidity": 94, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T06:01:46.538Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 304, - "duration": "417ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T06:02:09.234Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T06:02:39.348Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T06:03:00.452Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T06:03:00.594Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260202", - "baseTime": "0500", - "nx": 57, - "ny": 119 -} -[2026-02-02T06:03:00.600Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T06:03:00.614Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T06:03:00.632Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-02", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T06:03:00.643Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T06:03:00.708Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -3.2, - "humidity": 94, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-02T06:03:00.710Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -3.2, - "humidity": 94, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T06:03:00.711Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "118ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T06:03:01.455Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T06:03:05.163Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T06:03:05.330Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260202", - "baseTime": "0500", - "nx": 57, - "ny": 119 -} -[2026-02-02T06:03:05.340Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260202", - "baseTime": "0500", - "nx": 57, - "ny": 119 -} -[2026-02-02T06:03:05.353Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects?is_active=1", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T06:03:05.403Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/safety-checks", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T06:03:05.414Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -3.2, - "humidity": 94, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-02T06:03:05.415Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -3.2, - "humidity": 94, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T06:03:05.416Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 304, - "duration": "88ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T06:03:05.425Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T06:03:05.430Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks/active/list", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T06:03:05.434Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?is_active=true", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T06:03:05.438Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/active/list", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T06:03:05.442Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-02", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T06:03:05.511Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -3.2, - "humidity": 94, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-02T06:03:05.513Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -3.2, - "humidity": 94, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T06:03:05.515Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 304, - "duration": "179ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T06:03:06.150Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T06:03:09.412Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T06:03:39.485Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T06:04:09.561Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T06:04:34.163Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "37ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T06:04:34.231Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260202", - "baseTime": "0500", - "nx": 57, - "ny": 119 -} -[2026-02-02T06:04:34.256Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T06:04:34.280Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T06:04:34.307Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-02", - "statusCode": 304, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T06:04:34.333Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 304, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T06:04:35.027Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -3.2, - "humidity": 94, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-02T06:04:35.031Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -3.2, - "humidity": 94, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T06:04:35.034Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 304, - "duration": "807ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T06:04:35.058Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T06:04:39.646Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T06:05:09.748Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T06:05:39.842Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T06:06:09.931Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T06:06:40.023Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T06:07:10.114Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T06:07:40.215Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T06:08:10.309Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T06:08:40.401Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T06:09:10.519Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T06:09:16.664Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "27ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T06:09:16.730Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260202", - "baseTime": "0500", - "nx": 57, - "ny": 119 -} -[2026-02-02T06:09:16.744Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T06:09:16.774Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "18ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T06:09:16.804Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-02", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T06:09:16.817Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -3.2, - "humidity": 94, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-02T06:09:16.820Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -3.2, - "humidity": 94, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T06:09:16.821Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T06:09:16.823Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "94ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T06:09:17.613Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T06:09:26.486Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260202", - "baseTime": "0500", - "nx": 57, - "ny": 119 -} -[2026-02-02T06:09:26.502Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260202", - "baseTime": "0500", - "nx": 57, - "ny": 119 -} -[2026-02-02T06:09:26.532Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "73ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T06:09:26.582Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects?is_active=1", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T06:09:26.620Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/safety-checks", - "statusCode": 200, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T06:09:26.635Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T06:09:26.644Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks/active/list", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T06:09:26.730Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?is_active=true", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T06:09:26.746Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/active/list", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T06:09:26.754Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-02", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T06:09:27.464Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T06:09:27.801Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -3.2, - "humidity": 94, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-02T06:09:27.803Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -3.2, - "humidity": 94, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-02T06:09:27.807Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -3.2, - "humidity": 94, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T06:09:27.809Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -3.2, - "humidity": 94, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T06:09:27.811Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 304, - "duration": "1328ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T06:09:27.812Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 304, - "duration": "1316ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T06:09:35.059Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T06:09:35.162Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260202", - "baseTime": "0500", - "nx": 57, - "ny": 119 -} -[2026-02-02T06:09:35.186Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260202", - "baseTime": "0500", - "nx": 57, - "ny": 119 -} -[2026-02-02T06:09:35.204Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T06:09:35.219Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T06:09:35.238Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T06:09:35.260Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T06:09:35.279Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T06:09:35.360Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -3.2, - "humidity": 94, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-02T06:09:35.362Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -3.2, - "humidity": 94, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-02T06:09:35.363Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -3.2, - "humidity": 94, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T06:09:35.364Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -3.2, - "humidity": 94, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T06:09:35.366Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 304, - "duration": "188ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T06:09:35.369Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 304, - "duration": "213ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T06:09:36.040Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T06:09:36.042Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T06:09:40.634Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T06:10:10.705Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T06:10:40.782Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T06:11:10.871Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T06:11:40.957Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T06:12:11.062Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T06:12:41.164Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T06:13:11.259Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T06:13:41.353Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T06:14:11.446Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T06:14:41.532Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T06:15:11.641Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T06:15:41.734Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T06:16:11.822Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T06:16:41.917Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T06:17:12.033Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T06:17:42.189Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T06:18:12.306Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T06:18:42.398Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T06:19:12.464Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T06:19:35.191Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260202", - "baseTime": "0600", - "nx": 57, - "ny": 119 -} -[2026-02-02T06:19:35.204Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260202", - "baseTime": "0600", - "nx": 57, - "ny": 119 -} -[2026-02-02T06:19:35.312Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -4.5, - "humidity": 93, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-02T06:19:35.319Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -4.5, - "humidity": 93, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T06:19:35.322Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "120ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T06:19:36.326Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -4.5, - "humidity": 93, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-02T06:19:36.329Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -4.5, - "humidity": 93, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T06:19:36.332Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "1146ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T06:19:42.535Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T06:20:12.633Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T06:20:42.739Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T06:21:12.832Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T06:21:42.929Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T06:22:13.047Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T06:22:43.123Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T06:23:13.211Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T06:23:43.304Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T06:24:13.385Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T06:24:43.526Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T06:25:13.607Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T06:25:43.760Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T06:25:49.888Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T06:25:50.016Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260202", - "baseTime": "0600", - "nx": 57, - "ny": 119 -} -[2026-02-02T06:25:50.080Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 304, - "duration": "34ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T06:25:50.098Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T06:25:50.144Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-02", - "statusCode": 304, - "duration": "23ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T06:25:50.201Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 304, - "duration": "23ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T06:25:50.250Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -4.5, - "humidity": 93, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-02T06:25:50.252Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -4.5, - "humidity": 93, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T06:25:50.254Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 304, - "duration": "246ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T06:25:50.874Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T06:25:51.594Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T06:25:51.638Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260202", - "baseTime": "0600", - "nx": 57, - "ny": 119 -} -[2026-02-02T06:25:51.653Z] [INFO] ℹ️ 월별 캘린더 데이터 조회 요청 - Context: { - "year": 2026, - "month": 2 -} -[2026-02-02T06:25:51.666Z] [ERROR] ❌ 월별 캘린더 데이터 조회 실패 - Context: { - "year": 2026, - "month": 2, - "error": "Table 'hyungi.monthly_summary' doesn't exist" -} -[2026-02-02T06:25:51.668Z] [ERROR] ❌ 월별 캘린더 데이터 조회 중 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 월별 캘린더 데이터 조회 중 오류가 발생했습니다\n at /usr/src/app/controllers/monthlyStatusController.js:80:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "url": "/api/monthly-status/calendar?year=2026&month=2", - "method": "GET", - "user": "anonymous" -} -[2026-02-02T06:25:51.671Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/monthly-status/calendar?year=2026&month=2", - "statusCode": 500, - "duration": "25ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T06:25:51.699Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-02-01", - "requester": 1, - "isAdmin": false -} -[2026-02-02T06:25:51.700Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-31", - "requester": 1, - "isAdmin": false -} -[2026-02-02T06:25:51.701Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-02-02", - "requester": 1, - "isAdmin": false -} -[2026-02-02T06:25:51.702Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-02-03", - "requester": 1, - "isAdmin": false -} -[2026-02-02T06:25:51.703Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-02-02T06:25:51.703Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-02-01&view_all=true", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T06:25:51.704Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-02-02T06:25:51.704Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-31&view_all=true", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T06:25:51.705Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-02-04", - "requester": 1, - "isAdmin": false -} -[2026-02-02T06:25:51.706Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 2 -} -[2026-02-02T06:25:51.708Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-02-02&view_all=true", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T06:25:51.709Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-02-02T06:25:51.709Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-02-03&view_all=true", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T06:25:51.714Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-02-02T06:25:51.715Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-02-04&view_all=true", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T06:25:51.790Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -4.5, - "humidity": 93, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-02T06:25:51.791Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -4.5, - "humidity": 93, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T06:25:51.793Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 304, - "duration": "160ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T06:25:51.859Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-02-07", - "requester": 1, - "isAdmin": false -} -[2026-02-02T06:25:51.860Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-02-05", - "requester": 1, - "isAdmin": false -} -[2026-02-02T06:25:51.860Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-02-06", - "requester": 1, - "isAdmin": false -} -[2026-02-02T06:25:51.862Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-02-08", - "requester": 1, - "isAdmin": false -} -[2026-02-02T06:25:51.862Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-02-09", - "requester": 1, - "isAdmin": false -} -[2026-02-02T06:25:51.863Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-02-02T06:25:51.863Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-02-07&view_all=true", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T06:25:51.864Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-02-02T06:25:51.865Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-02-05&view_all=true", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T06:25:51.865Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-02-02T06:25:51.865Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-02-06&view_all=true", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T06:25:51.866Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-02-02T06:25:51.866Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-02-08&view_all=true", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T06:25:51.866Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-02-02T06:25:51.867Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-02-09&view_all=true", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T06:25:51.978Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-02-10", - "requester": 1, - "isAdmin": false -} -[2026-02-02T06:25:51.980Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-02-11", - "requester": 1, - "isAdmin": false -} -[2026-02-02T06:25:51.983Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-02-12", - "requester": 1, - "isAdmin": false -} -[2026-02-02T06:25:51.984Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-02-13", - "requester": 1, - "isAdmin": false -} -[2026-02-02T06:25:51.985Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-02-14", - "requester": 1, - "isAdmin": false -} -[2026-02-02T06:25:51.985Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-02-02T06:25:51.986Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-02-10&view_all=true", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T06:25:51.986Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-02-02T06:25:51.987Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-02-11&view_all=true", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T06:25:51.988Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-02-02T06:25:51.988Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-02-12&view_all=true", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T06:25:51.988Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-02-02T06:25:51.989Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-02-13&view_all=true", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T06:25:51.989Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-02-02T06:25:51.990Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-02-14&view_all=true", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T06:25:52.112Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-02-15", - "requester": 1, - "isAdmin": false -} -[2026-02-02T06:25:52.114Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-02-16", - "requester": 1, - "isAdmin": false -} -[2026-02-02T06:25:52.115Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-02-17", - "requester": 1, - "isAdmin": false -} -[2026-02-02T06:25:52.117Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-02-02T06:25:52.117Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-02-15&view_all=true", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T06:25:52.119Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-02-18", - "requester": 1, - "isAdmin": false -} -[2026-02-02T06:25:52.120Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-02-19", - "requester": 1, - "isAdmin": false -} -[2026-02-02T06:25:52.121Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-02-02T06:25:52.123Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-02-16&view_all=true", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T06:25:52.123Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-02-02T06:25:52.124Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-02-17&view_all=true", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T06:25:52.125Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-02-02T06:25:52.125Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-02-18&view_all=true", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T06:25:52.126Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-02-02T06:25:52.127Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-02-19&view_all=true", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T06:25:52.236Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-02-20", - "requester": 1, - "isAdmin": false -} -[2026-02-02T06:25:52.239Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-02-02T06:25:52.240Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-02-20&view_all=true", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T06:25:52.241Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-02-21", - "requester": 1, - "isAdmin": false -} -[2026-02-02T06:25:52.242Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-02-22", - "requester": 1, - "isAdmin": false -} -[2026-02-02T06:25:52.242Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-02-02T06:25:52.243Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-02-21&view_all=true", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T06:25:52.244Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-02-02T06:25:52.245Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-02-22&view_all=true", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T06:25:52.245Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-02-23", - "requester": 1, - "isAdmin": false -} -[2026-02-02T06:25:52.246Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-02-24", - "requester": 1, - "isAdmin": false -} -[2026-02-02T06:25:52.246Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-02-02T06:25:52.247Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-02-23&view_all=true", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T06:25:52.247Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-02-02T06:25:52.247Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-02-24&view_all=true", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T06:25:52.360Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-02-25", - "requester": 1, - "isAdmin": false -} -[2026-02-02T06:25:52.362Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-02-26", - "requester": 1, - "isAdmin": false -} -[2026-02-02T06:25:52.363Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-02-27", - "requester": 1, - "isAdmin": false -} -[2026-02-02T06:25:52.363Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-02-02T06:25:52.364Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-02-25&view_all=true", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T06:25:52.365Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-02-02T06:25:52.365Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-02-26&view_all=true", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T06:25:52.366Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-02-02T06:25:52.367Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-02-27&view_all=true", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T06:25:52.582Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T06:25:52.585Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T06:25:53.001Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T06:25:53.040Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260202", - "baseTime": "0600", - "nx": 57, - "ny": 119 -} -[2026-02-02T06:25:53.049Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260202", - "baseTime": "0600", - "nx": 57, - "ny": 119 -} -[2026-02-02T06:25:53.081Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T06:25:53.096Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T06:25:53.113Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T06:25:53.131Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T06:25:53.153Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T06:25:53.228Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -4.5, - "humidity": 93, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-02T06:25:53.229Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -4.5, - "humidity": 93, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T06:25:53.230Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 304, - "duration": "184ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T06:25:53.268Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -4.5, - "humidity": 93, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-02T06:25:53.269Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -4.5, - "humidity": 93, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T06:25:53.270Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 304, - "duration": "232ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T06:25:53.980Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T06:25:53.982Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T06:25:56.099Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues?category_type=nonconformity", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T06:25:56.103Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues/stats/summary?category_type=nonconformity", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T06:25:56.136Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260202", - "baseTime": "0600", - "nx": 57, - "ny": 119 -} -[2026-02-02T06:25:56.283Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -4.5, - "humidity": 93, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-02T06:25:56.284Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -4.5, - "humidity": 93, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T06:25:56.286Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 304, - "duration": "154ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T06:25:57.079Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T06:26:00.160Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/active/list", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T06:26:00.206Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260202", - "baseTime": "0600", - "nx": 57, - "ny": 119 -} -[2026-02-02T06:26:00.239Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "23ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T06:26:00.244Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 304, - "duration": "21ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T06:26:00.247Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-02", - "statusCode": 304, - "duration": "17ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T06:26:00.262Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 304, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T06:26:00.323Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -4.5, - "humidity": 93, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-02T06:26:00.324Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -4.5, - "humidity": 93, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T06:26:00.326Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 304, - "duration": "121ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T06:26:01.146Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T06:26:03.098Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues/stats/summary?category_type=safety", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T06:26:03.112Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues?category_type=safety", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T06:26:03.207Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260202", - "baseTime": "0600", - "nx": 57, - "ny": 119 -} -[2026-02-02T06:26:03.297Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -4.5, - "humidity": 93, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-02T06:26:03.300Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -4.5, - "humidity": 93, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T06:26:03.304Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 304, - "duration": "102ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T06:26:04.090Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T06:26:04.202Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/active/list", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T06:26:04.256Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260202", - "baseTime": "0600", - "nx": 57, - "ny": 119 -} -[2026-02-02T06:26:04.267Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T06:26:04.271Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 304, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T06:26:04.273Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-02", - "statusCode": 304, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T06:26:04.286Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T06:26:04.336Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -4.5, - "humidity": 93, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-02T06:26:04.337Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -4.5, - "humidity": 93, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T06:26:04.339Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 304, - "duration": "85ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T06:26:05.198Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T06:26:13.878Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T06:26:43.991Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T06:27:14.097Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T06:27:44.187Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T06:28:14.490Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T06:28:44.585Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T06:28:59.736Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/active/list", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T06:28:59.884Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260202", - "baseTime": "0600", - "nx": 57, - "ny": 119 -} -[2026-02-02T06:28:59.898Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T06:28:59.911Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T06:28:59.919Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-02", - "statusCode": 200, - "duration": "15ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T06:28:59.939Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T06:29:00.085Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -4.5, - "humidity": 93, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-02T06:29:00.091Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -4.5, - "humidity": 93, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T06:29:00.094Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "246ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T06:29:00.728Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T06:29:14.698Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T06:29:44.812Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T06:30:14.917Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T06:30:45.009Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T06:31:15.099Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T06:31:45.209Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T06:32:15.336Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T06:32:45.421Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T06:33:15.528Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T06:33:45.636Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T06:34:15.732Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T06:34:45.846Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T06:35:15.943Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T06:35:46.040Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T06:36:16.128Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T06:36:46.209Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T06:37:16.288Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T06:37:46.380Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T06:38:16.488Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T06:38:46.590Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T06:39:07.408Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260202", - "baseTime": "0600", - "nx": 57, - "ny": 119 -} -[2026-02-02T06:39:07.542Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -4.5, - "humidity": 93, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-02T06:39:07.547Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -4.5, - "humidity": 93, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T06:39:07.550Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 304, - "duration": "150ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T06:39:16.683Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T06:39:46.746Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T06:40:16.841Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T06:40:46.926Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T06:41:17.017Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T06:41:47.106Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T06:42:17.197Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T06:42:47.288Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T06:43:17.397Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T06:43:47.504Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T06:44:17.623Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T06:44:47.720Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T06:45:17.810Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T06:45:47.927Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T06:46:18.031Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T06:46:48.146Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T06:47:18.241Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T06:47:48.362Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T06:48:18.456Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T06:48:48.643Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T06:49:07.425Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260202", - "baseTime": "0600", - "nx": 57, - "ny": 119 -} -[2026-02-02T06:49:07.548Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -4.5, - "humidity": 93, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-02T06:49:07.555Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -4.5, - "humidity": 93, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T06:49:07.557Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 304, - "duration": "137ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T06:49:18.762Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T06:49:48.859Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T06:50:18.956Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T06:50:49.058Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T06:51:19.150Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T06:51:49.252Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T06:52:19.347Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T06:52:49.441Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T06:53:19.540Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T06:53:49.650Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T06:54:19.775Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T06:54:49.886Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T06:55:19.996Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T06:55:50.118Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T06:56:20.289Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T06:56:50.432Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "5ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T06:57:20.560Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T06:57:33.465Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/active/list", - "statusCode": 304, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T06:57:33.649Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260202", - "baseTime": "0600", - "nx": 57, - "ny": 119 -} -[2026-02-02T06:57:33.657Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "29ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T06:57:33.666Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 304, - "duration": "32ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T06:57:33.672Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-02", - "statusCode": 304, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T06:57:33.695Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 304, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T06:57:33.938Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -4.5, - "humidity": 93, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-02T06:57:33.941Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -4.5, - "humidity": 93, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T06:57:33.946Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 304, - "duration": "306ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T06:57:34.460Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T06:57:50.649Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T06:58:20.714Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T07:08:51.711Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T07:09:21.810Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T07:09:51.891Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T07:20:37.791Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T07:21:07.888Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T07:21:37.964Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T07:22:08.023Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T07:22:38.090Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T07:23:08.150Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T07:23:38.229Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T07:24:08.302Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T07:24:38.402Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T07:25:08.500Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T07:25:38.581Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T07:26:08.678Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T07:26:38.766Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T07:27:08.872Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T07:27:38.964Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T07:28:09.056Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T07:28:39.157Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T07:29:09.243Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T07:29:39.323Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T07:30:09.422Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T07:30:39.510Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T07:31:09.599Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T07:31:39.688Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T07:32:09.779Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T07:32:39.862Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T07:33:09.965Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T07:33:40.059Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T07:34:10.152Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T07:34:40.242Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T07:35:10.333Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T07:35:40.422Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T07:36:10.519Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T07:36:40.620Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T07:37:10.708Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T07:37:40.815Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T07:38:10.900Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T07:38:40.993Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T07:39:11.084Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T07:39:41.187Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T07:40:11.283Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T07:40:41.381Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T07:41:11.464Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T07:41:41.531Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T07:42:11.618Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T07:42:41.699Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T07:43:11.788Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T07:43:41.875Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T07:44:11.965Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T07:44:42.056Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T07:45:12.157Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T07:45:42.241Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T07:46:12.321Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T07:46:42.410Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T07:47:12.503Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T07:47:42.593Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T07:48:12.688Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T07:48:42.785Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T07:49:12.897Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T07:49:42.987Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T07:50:13.074Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T07:50:43.175Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T07:51:13.256Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T07:51:43.350Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T07:52:13.441Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T07:52:43.533Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T07:53:13.638Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T07:53:43.745Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T07:54:13.825Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T07:54:43.906Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T07:55:13.997Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T07:55:44.090Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T07:56:14.184Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T07:56:44.267Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T07:57:14.360Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T07:57:44.452Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T07:58:14.546Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T07:58:44.631Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T07:59:14.722Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T07:59:44.820Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T08:00:14.918Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T08:00:45.010Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T08:01:15.101Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T08:01:45.199Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T08:02:15.284Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T08:02:45.372Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T08:03:15.459Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T08:03:45.547Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T08:04:15.635Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T08:04:45.727Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T08:05:15.815Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T08:05:45.900Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T08:06:15.998Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T08:06:46.083Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T08:07:16.167Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T08:07:46.259Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T08:08:16.347Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T08:08:46.435Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T08:09:16.530Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T08:09:46.621Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T08:10:16.710Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T08:10:46.806Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T08:11:16.894Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T08:11:46.988Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T08:12:17.078Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T08:12:47.162Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T08:13:17.247Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T08:13:47.350Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T08:14:17.439Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T08:14:47.529Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T08:15:17.620Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T08:15:47.707Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T08:16:17.797Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T08:16:47.889Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T08:17:17.956Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T08:17:48.054Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T08:18:18.108Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T08:18:48.190Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T08:19:18.259Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T08:19:48.342Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T08:20:18.408Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T08:20:48.500Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T08:21:18.579Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T08:21:48.672Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T08:22:18.771Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T08:22:48.852Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T08:23:18.944Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T08:23:49.041Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T08:24:19.140Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T08:24:49.226Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T08:25:19.313Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T08:25:49.417Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T08:26:19.515Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T08:26:49.609Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T08:27:19.701Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T08:27:49.788Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T08:28:19.894Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T08:28:49.970Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T08:29:20.061Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T08:29:50.161Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T08:30:20.252Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T08:30:50.341Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T08:31:20.418Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T08:31:50.470Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T08:32:20.538Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T08:32:50.621Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T08:33:20.693Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T08:33:50.775Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T08:34:20.880Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T08:34:50.974Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T08:35:21.070Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T08:35:51.162Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T08:36:21.278Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T08:36:51.376Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T08:37:21.464Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T08:37:51.549Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T08:38:21.646Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T08:38:51.747Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T08:39:21.845Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T08:39:51.935Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T08:40:22.030Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T08:40:52.124Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T08:41:22.213Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T08:41:52.307Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T08:42:22.405Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T08:42:52.509Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T08:43:22.597Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T08:43:52.690Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T08:44:22.775Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T08:44:52.856Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T08:45:22.954Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T08:45:53.048Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T08:46:23.144Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T08:46:53.235Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T08:47:23.335Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T08:47:53.424Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T08:48:23.511Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T08:48:53.605Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T08:49:23.704Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T08:49:53.796Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T08:50:23.895Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T08:50:53.978Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T08:51:24.059Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T08:51:54.141Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T08:52:24.215Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T08:52:54.277Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T08:53:24.351Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T08:53:54.442Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T08:54:24.535Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T08:54:54.619Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T08:55:24.709Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T08:55:54.803Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T08:56:24.901Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T08:56:54.992Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T08:57:25.095Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T08:57:55.185Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T08:58:25.278Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T08:58:55.375Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T08:59:25.465Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T08:59:55.565Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T09:00:25.659Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T09:00:55.757Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T09:01:25.853Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T09:01:55.944Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T09:02:26.049Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T09:02:56.143Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T09:03:26.236Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T09:03:56.328Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T09:04:26.430Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T09:04:56.523Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T09:05:26.622Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T09:05:56.729Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T09:06:26.819Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T09:06:56.915Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T09:07:27.008Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T09:07:57.099Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T09:08:27.211Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T09:08:57.300Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T09:09:27.385Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T09:09:57.476Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T09:10:27.569Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T09:10:57.670Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T09:11:27.755Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T09:11:57.853Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T09:12:27.952Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T09:12:58.050Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T09:13:28.147Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T09:13:58.236Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T09:14:28.340Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T09:14:58.429Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T09:15:28.533Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T09:15:58.631Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T09:16:28.737Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T09:16:58.825Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T09:17:28.920Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T09:17:59.015Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T09:18:29.108Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T09:18:59.197Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T09:19:29.302Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T09:19:59.400Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T09:20:29.495Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T09:20:59.590Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T09:21:29.682Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T09:21:59.785Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T09:22:29.881Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T09:22:59.984Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T09:23:30.065Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T09:24:00.167Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T09:24:30.257Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T09:25:00.355Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T09:25:30.461Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T09:26:00.567Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T09:26:30.667Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T09:27:00.762Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T09:27:30.854Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T09:44:05.693Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T09:44:35.776Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T09:45:05.882Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T09:45:35.981Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T09:46:06.082Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T09:46:36.181Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T09:47:06.269Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T09:47:36.359Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T09:48:06.455Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T09:48:36.545Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T09:49:06.641Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T09:49:36.743Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T09:50:06.824Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T09:50:36.915Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T09:51:07.027Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T09:51:37.117Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T09:52:07.204Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T09:52:37.304Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T09:53:07.398Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T09:53:37.497Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T09:54:07.592Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T09:54:37.688Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T09:55:07.788Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T09:55:37.875Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T09:56:07.973Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T09:56:38.072Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T09:57:08.159Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T09:57:38.251Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T09:58:08.343Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T09:58:38.434Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T09:59:08.526Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T09:59:38.609Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T10:00:08.711Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T10:00:38.807Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T10:01:08.908Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T10:01:38.993Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T10:02:09.087Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T10:02:39.182Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T10:03:09.288Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T10:03:39.376Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T10:04:09.465Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T10:04:39.556Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T10:05:09.648Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T10:05:39.750Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T10:06:09.847Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T10:06:39.943Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T10:07:10.038Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T10:07:40.129Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T10:08:10.239Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T10:08:40.321Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T10:09:10.409Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T10:09:40.499Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T10:10:10.594Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T10:10:40.685Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T10:11:10.735Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T10:11:40.788Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T10:12:10.853Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T10:12:40.913Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T10:13:10.972Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T10:13:41.023Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T10:14:11.074Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T10:14:41.126Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T10:15:11.178Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T10:15:41.234Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T10:16:11.292Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T10:16:41.349Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T10:17:11.402Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T10:17:41.454Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T10:18:11.517Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T10:18:41.567Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T10:19:11.623Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T10:19:41.666Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T10:20:11.724Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T10:20:41.790Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T10:21:11.854Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T10:21:41.909Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T10:22:11.975Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T10:22:42.029Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T10:23:12.095Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T10:23:42.162Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T10:24:12.233Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T10:24:42.284Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T10:25:12.338Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T10:25:42.416Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T10:26:12.495Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T10:26:42.554Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T10:27:12.622Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T10:27:42.688Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T10:28:12.746Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T10:28:42.800Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T10:29:12.852Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T10:29:42.903Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T10:30:12.965Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T10:30:43.020Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T10:31:13.070Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T10:31:43.144Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T10:32:13.202Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T10:32:43.255Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T10:33:13.308Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T10:33:43.360Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T10:34:13.413Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T10:34:43.467Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T10:35:13.519Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T10:35:43.570Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T10:36:13.629Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T10:36:43.697Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T10:37:13.774Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T10:37:43.855Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T10:38:13.944Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T10:38:44.041Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T10:39:14.147Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T10:39:44.243Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T10:40:14.334Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T10:40:44.427Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T10:41:14.509Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T10:41:44.603Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T10:42:14.687Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T10:42:44.770Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T10:43:14.862Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T10:43:44.959Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T10:44:15.052Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T10:44:45.142Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T10:45:15.234Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T10:45:45.332Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T10:46:15.434Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T10:46:45.521Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T10:47:15.621Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T10:48:05.981Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T10:48:36.144Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T11:00:11.464Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T11:00:41.515Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T11:01:11.572Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T11:01:41.646Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T11:02:11.730Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T11:02:41.820Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T11:03:11.912Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T11:03:42.017Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T11:04:12.121Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T11:04:42.212Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T11:05:12.306Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T11:05:42.394Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T11:06:12.491Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T11:06:42.589Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T11:07:12.671Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T11:07:42.770Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T11:08:12.875Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T11:08:42.977Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T11:09:13.076Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T11:09:43.185Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T11:10:13.292Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T11:10:43.383Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T11:11:13.470Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T11:11:43.559Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T11:12:13.646Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T11:12:43.735Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T11:13:13.845Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T11:13:43.929Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T11:14:14.034Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T11:14:44.141Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T11:15:14.236Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T11:15:44.332Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T11:16:14.417Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T11:16:44.522Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T11:17:14.619Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T11:17:44.717Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T11:18:14.821Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T11:18:44.890Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T11:19:14.970Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T11:19:45.055Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T11:20:15.132Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T11:20:45.197Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T11:21:15.282Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T11:21:45.348Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T11:22:15.448Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T11:22:45.546Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T11:23:15.637Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T11:23:45.744Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T11:24:15.843Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T11:24:45.941Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T11:25:16.038Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T11:25:46.134Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T11:26:16.237Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T11:26:46.332Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T11:27:16.433Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T11:27:46.529Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T11:28:16.614Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T11:28:46.703Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T11:29:16.787Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T11:29:46.877Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T11:30:16.970Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T11:30:47.068Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T11:31:17.157Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T11:31:47.247Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T11:32:17.342Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T11:32:47.435Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T11:33:17.530Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T11:33:47.621Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T11:34:17.709Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T11:34:47.800Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T11:35:17.887Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T11:35:47.978Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T11:36:18.068Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T11:36:48.154Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T11:37:18.249Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T11:37:48.340Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T11:38:18.440Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T11:38:48.529Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T11:39:18.611Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T11:39:48.703Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T11:40:18.784Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T11:40:48.886Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T11:41:18.981Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T11:41:49.077Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T11:42:19.168Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T11:42:49.258Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T11:43:19.355Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T11:43:49.446Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T11:44:19.533Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T11:44:49.626Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T11:45:19.707Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T11:45:49.805Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T11:46:19.916Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T11:46:50.012Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T11:47:20.104Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T11:47:50.197Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T11:48:20.290Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T11:48:50.379Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T11:49:20.471Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T11:49:50.564Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T11:50:20.658Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T11:50:50.749Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T11:51:20.838Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T11:51:50.921Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T11:52:21.001Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T11:52:51.095Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T11:53:21.201Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T11:53:51.297Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T11:54:21.396Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T11:54:51.498Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T11:55:21.587Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T11:55:51.687Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T11:56:21.787Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T11:56:51.877Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T11:57:21.975Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T11:57:52.059Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T11:58:22.155Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T11:58:52.248Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T11:59:22.332Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T11:59:52.430Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T12:00:22.526Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T12:00:52.623Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T12:01:22.710Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T12:01:52.817Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T12:02:22.922Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T12:02:53.012Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T12:03:23.093Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T12:03:53.191Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T12:19:42.363Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T12:20:12.424Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T12:20:42.485Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T12:21:12.539Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T12:21:42.600Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T12:22:12.676Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T12:22:42.763Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T12:23:12.850Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T12:23:42.958Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T12:24:13.049Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T12:24:43.148Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T12:25:13.237Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T12:25:43.337Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T12:26:13.433Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T12:26:43.520Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T12:27:13.612Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T12:27:43.712Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T12:28:13.796Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T12:28:43.869Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T12:29:13.970Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T12:29:44.069Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T12:30:14.166Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T12:30:44.268Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T12:31:14.360Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T12:31:44.454Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T12:32:14.547Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T12:32:44.633Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T12:33:14.727Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T12:33:44.833Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T12:34:14.920Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T12:34:45.015Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T12:35:15.096Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T12:35:45.173Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T12:36:15.257Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T12:36:45.339Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T12:37:15.432Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T12:37:45.534Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T12:38:15.618Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T12:38:45.705Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T12:39:15.787Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T12:39:45.862Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T12:40:15.949Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T12:40:46.027Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T12:41:16.125Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T12:41:46.207Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T12:42:16.280Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T12:42:46.360Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T12:43:16.464Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T12:43:46.568Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T12:44:16.661Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T12:44:46.776Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T12:45:16.859Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T12:45:46.956Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T12:46:17.049Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T12:46:47.142Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T12:47:17.234Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T12:47:47.326Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T12:48:17.414Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T12:48:47.510Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T12:49:17.622Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T12:49:47.721Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T12:50:17.819Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T12:50:47.919Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T12:51:17.998Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T12:51:48.082Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T12:52:18.174Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T12:52:48.273Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T12:53:18.366Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T12:53:48.472Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T12:54:18.566Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T12:54:48.655Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T12:55:18.743Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T12:55:48.836Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T12:56:18.940Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T12:56:49.031Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T12:57:19.123Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T12:57:49.212Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T12:58:19.305Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T12:58:49.395Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T12:59:19.488Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T12:59:49.578Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T13:00:19.671Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T13:00:49.763Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T13:01:19.858Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T13:01:49.951Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T13:02:20.048Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T13:02:50.139Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T13:03:20.247Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T13:03:50.349Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T13:04:20.443Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T13:04:50.533Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T13:05:20.631Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T13:05:50.721Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T13:06:20.815Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T13:06:50.916Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T13:07:21.007Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T13:07:51.112Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T13:08:21.201Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T13:08:51.293Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T13:09:21.391Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T13:09:51.482Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T13:10:21.574Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T13:10:51.667Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T13:11:21.766Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T13:11:51.858Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T13:12:21.957Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T13:12:52.049Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T13:13:22.145Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T13:13:52.242Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T13:14:22.349Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T13:14:52.442Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T13:15:22.545Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T13:15:52.655Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T13:16:22.742Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T13:16:52.835Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T13:17:22.923Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T13:17:53.022Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T13:18:23.112Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T13:18:53.208Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T13:19:23.298Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T13:19:53.388Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T13:20:23.480Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T13:20:53.565Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T13:21:23.653Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T13:21:53.743Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T13:22:23.831Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T13:22:53.930Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T13:23:24.021Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T13:23:54.122Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T13:39:36.676Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T13:40:06.756Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T13:40:36.850Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T13:41:06.941Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T13:41:37.031Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T13:42:07.114Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T13:42:37.213Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T13:43:07.313Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T13:43:37.411Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T13:44:07.506Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T13:44:37.594Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T13:45:07.685Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T13:45:37.741Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T13:46:07.796Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T13:46:37.849Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T13:47:07.911Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T13:47:37.988Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T13:48:08.086Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T13:48:38.187Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T13:49:08.287Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T13:49:38.383Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T13:50:08.471Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T13:50:38.559Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T13:51:08.642Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T13:51:38.746Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T13:52:08.845Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T13:52:38.930Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T13:53:09.033Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T13:53:39.126Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T13:54:09.216Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T13:54:39.313Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T13:55:09.408Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T13:55:39.499Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T13:56:09.594Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T13:56:39.686Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T13:57:09.788Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T13:57:39.890Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T13:58:09.983Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T13:58:40.081Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T13:59:10.177Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T13:59:40.274Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T14:00:10.355Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T14:00:40.435Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T14:01:10.540Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T14:01:40.648Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T14:02:10.738Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T14:02:40.838Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T14:03:10.924Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T14:03:41.021Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T14:04:11.105Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T14:04:41.188Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T14:05:11.266Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T14:05:41.340Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T14:06:11.417Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T14:06:41.490Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T14:07:11.583Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T14:07:41.682Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T14:08:11.777Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T14:08:41.879Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T14:09:11.968Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T14:09:42.063Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T14:10:12.142Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T14:10:42.228Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T14:11:12.313Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T14:11:42.396Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T14:12:12.502Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T14:12:42.586Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T14:13:12.680Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T14:13:42.754Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T14:14:12.851Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T14:14:42.937Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T14:15:13.032Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T14:15:43.124Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T14:16:13.225Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T14:16:43.310Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T14:17:13.409Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T14:17:43.499Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T14:18:13.600Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T14:18:43.691Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T14:19:13.787Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T14:19:43.872Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T14:20:13.970Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T14:20:44.054Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T14:21:14.147Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T14:21:44.234Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T14:22:14.336Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T14:22:44.434Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T14:23:14.531Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T14:23:44.621Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T14:24:14.730Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T14:24:44.824Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T14:25:14.915Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T14:25:45.002Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T14:26:15.080Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T14:26:45.171Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T14:27:15.271Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T14:27:45.362Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T14:28:15.457Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T14:28:45.546Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T14:29:15.647Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T14:29:45.737Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T14:30:15.832Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T14:30:45.924Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T14:31:16.023Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T14:31:46.129Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T14:32:16.221Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T14:32:46.311Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T14:33:16.405Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T14:33:46.502Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T14:34:16.601Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T14:34:46.696Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T14:35:16.785Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T14:35:46.875Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T14:36:16.968Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T14:36:47.064Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T14:37:17.157Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T14:37:47.244Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T14:38:17.327Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T14:38:47.417Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T14:39:17.507Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T14:39:47.605Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T14:40:17.699Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T14:40:47.792Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T14:41:17.877Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T14:41:47.923Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T14:42:18.006Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T14:42:48.092Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T14:43:18.182Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T14:43:48.274Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T14:44:18.363Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T14:44:48.451Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T14:45:18.547Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T14:45:48.640Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T14:46:18.736Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T14:46:48.827Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T14:47:18.924Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T15:05:01.998Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T15:05:32.095Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T15:06:02.192Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T15:06:32.296Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T15:07:02.392Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T15:07:32.478Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T15:08:02.560Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T15:08:32.659Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T15:09:02.758Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T15:09:32.843Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T15:10:02.932Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T15:10:33.022Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T15:11:03.135Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T15:11:33.244Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T15:12:03.357Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T15:12:33.450Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T15:13:03.546Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T15:13:33.632Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T15:14:03.720Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T15:14:33.816Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T15:15:03.914Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T15:15:34.012Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T15:16:04.109Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T15:16:34.197Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T15:17:04.285Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T15:17:34.379Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T15:18:04.483Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T15:18:34.569Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T15:19:04.667Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T15:19:34.764Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T15:20:04.860Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T15:20:34.956Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T15:21:05.049Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T15:21:35.148Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T15:22:05.248Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T15:22:35.344Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T15:23:05.425Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T15:23:35.528Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T15:24:05.617Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T15:24:35.709Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T15:25:05.806Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T15:25:35.901Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T15:26:05.985Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T15:26:36.067Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T15:27:06.154Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T15:27:36.243Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T15:28:06.331Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T15:28:36.417Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T15:29:06.503Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T15:29:36.602Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T15:30:06.699Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T15:30:36.781Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T15:31:06.875Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T15:31:36.971Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T15:32:07.056Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T15:32:37.148Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T15:33:07.245Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T15:33:37.333Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T15:34:07.422Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T15:34:37.512Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T15:35:07.610Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T15:35:37.705Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T15:36:07.810Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T15:36:37.909Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T15:37:08.002Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T15:37:38.096Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T15:38:08.192Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T15:38:38.282Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T15:39:08.384Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T15:39:38.483Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T15:40:08.558Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T15:40:38.659Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T15:41:08.742Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T15:41:38.802Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T15:42:08.859Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T15:42:38.924Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T15:43:08.999Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T15:43:39.078Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T15:44:09.159Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T15:44:39.242Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T15:45:09.337Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T15:45:39.429Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T15:46:09.520Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T15:46:39.604Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T15:47:09.714Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T15:47:39.793Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T15:48:09.886Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T15:48:39.968Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T15:49:10.067Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T15:49:40.168Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T15:50:10.248Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T15:50:40.339Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T15:51:10.435Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T15:51:40.527Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T15:52:10.632Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T15:52:40.723Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T15:53:10.816Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T15:53:40.916Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T15:54:11.004Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T15:54:41.115Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T15:55:11.209Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T15:55:41.301Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T15:56:11.393Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T15:56:41.488Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T15:57:11.575Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T15:57:41.666Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T15:58:11.761Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T15:58:41.855Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T15:59:11.941Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T15:59:42.036Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T16:00:12.137Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T16:00:42.226Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T16:01:12.299Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T16:01:42.395Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T16:02:12.485Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T16:02:42.572Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T16:03:12.639Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T16:03:42.704Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T16:04:12.792Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T16:04:42.895Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T16:05:12.984Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T16:05:43.078Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T16:06:13.167Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T16:06:43.257Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T16:07:13.341Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T16:07:43.431Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T16:24:42.098Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T16:25:12.196Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T16:25:42.301Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T16:26:12.406Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T16:26:42.499Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T16:27:12.593Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T16:27:42.696Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T16:28:12.795Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T16:28:42.896Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T16:29:12.998Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T16:29:43.099Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T16:30:13.205Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T16:30:43.297Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T16:31:13.387Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T16:31:43.484Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T16:32:13.573Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T16:32:43.660Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T16:33:13.752Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T16:33:43.850Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T16:34:13.939Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T16:34:44.038Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T16:35:14.135Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T16:35:44.219Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T16:36:14.314Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T16:36:44.401Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T16:37:14.505Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T16:37:44.590Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T16:38:14.687Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T16:38:44.782Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T16:39:14.880Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T16:39:44.953Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T16:40:15.059Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T16:40:45.122Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T16:41:15.221Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T16:41:45.295Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T16:42:15.399Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T16:42:45.479Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T16:43:15.576Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T16:43:45.674Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T16:44:15.757Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T16:44:45.845Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T16:45:15.938Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T16:45:46.032Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T16:46:16.117Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T16:46:46.208Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T16:47:16.296Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T16:47:46.399Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T16:48:16.499Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T16:48:46.593Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T16:49:16.683Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T16:49:46.786Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T16:50:16.874Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T16:50:46.962Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T16:51:17.050Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T16:51:47.133Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T16:52:17.226Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T16:52:47.327Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T16:53:17.418Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T16:53:47.501Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T16:54:17.564Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T16:54:47.631Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T16:55:17.700Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T16:55:47.770Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T16:56:17.852Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T16:56:47.938Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T16:57:18.043Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T16:57:48.135Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T16:58:18.241Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T16:58:48.351Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T16:59:18.437Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T16:59:48.545Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T17:00:18.641Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T17:00:48.729Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T17:01:18.825Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T17:01:48.901Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T17:02:18.982Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T17:02:49.075Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T17:03:19.171Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T17:03:49.261Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T17:04:19.358Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T17:04:49.469Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T17:05:19.559Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T17:05:49.657Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T17:06:19.758Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T17:06:49.852Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T17:07:19.952Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T17:07:50.053Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T17:08:20.134Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T17:08:50.239Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T17:09:20.320Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T17:09:50.399Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T17:10:20.483Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T17:10:50.576Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T17:11:20.673Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T17:11:50.763Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T17:12:20.848Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T17:12:50.922Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T17:13:21.010Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T17:13:51.087Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T17:14:21.174Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T17:14:51.239Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T17:15:21.323Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T17:15:51.421Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T17:16:21.512Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T17:16:51.597Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T17:17:21.691Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T17:17:51.781Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T17:18:21.875Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T17:18:51.975Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T17:19:22.074Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T17:19:52.182Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T17:20:22.268Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T17:20:52.367Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T17:21:22.470Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T17:21:52.565Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T17:22:22.650Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T17:22:52.739Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T17:23:22.815Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T17:23:52.911Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T17:24:22.996Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T17:24:53.087Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T17:25:23.178Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T17:25:53.259Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T17:26:23.361Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T17:26:53.444Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T17:27:23.556Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T17:44:47.470Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T17:45:17.552Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T17:45:47.637Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T17:46:17.726Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T17:46:47.813Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T17:47:17.916Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T17:47:48.010Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T17:48:18.105Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T17:48:48.201Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T17:49:18.298Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T17:49:48.397Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T17:50:18.493Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T17:50:48.580Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T17:51:18.672Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T17:51:48.761Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T17:52:18.853Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T17:52:48.949Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T17:53:19.029Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T17:53:49.113Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T17:54:19.204Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T17:54:49.303Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T17:55:19.391Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T17:55:49.482Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T17:56:19.574Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T17:56:49.656Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T17:57:19.752Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T17:57:49.840Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T17:58:19.934Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T17:58:50.026Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T17:59:20.106Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T17:59:50.210Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T18:00:20.303Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T18:00:50.399Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T18:01:20.497Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T18:01:50.597Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T18:02:20.691Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T18:02:50.788Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T18:03:20.877Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T18:03:50.968Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T18:04:21.064Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T18:04:51.157Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T18:05:21.247Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T18:05:51.345Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T18:06:21.432Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T18:06:51.530Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T18:07:21.628Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T18:07:51.733Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T18:08:21.830Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T18:08:51.928Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T18:09:22.008Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T18:09:52.091Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T18:10:22.198Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T18:10:52.289Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T18:11:22.381Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T18:11:52.495Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T18:12:22.590Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T18:12:52.681Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T18:13:22.781Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T18:13:52.876Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T18:14:22.972Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T18:14:53.074Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T18:15:23.166Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T18:15:53.250Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T18:16:23.330Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T18:16:53.411Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T18:17:23.500Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T18:17:53.591Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T18:18:23.671Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T18:18:53.768Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T18:19:23.862Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T18:19:53.948Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T18:20:24.029Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T18:20:54.085Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T18:21:24.149Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T18:21:54.228Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T18:22:24.304Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T18:22:54.386Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T18:23:24.480Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T18:23:54.577Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T18:24:24.674Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T18:24:54.784Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T18:25:24.879Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T18:25:54.976Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T18:26:25.060Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T18:26:55.150Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T18:27:25.239Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T18:27:55.329Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T18:28:25.418Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T18:28:55.512Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T18:29:25.611Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T18:29:55.707Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T18:30:25.816Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T18:30:55.906Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T18:31:26.007Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T18:31:56.094Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T18:32:26.175Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T18:32:56.263Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T18:33:26.351Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T18:33:56.442Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T18:34:26.530Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T18:34:56.629Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T18:35:26.724Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T18:35:56.802Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T18:36:26.899Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T18:36:57.001Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T18:37:27.080Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T18:37:57.181Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T18:38:27.284Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T18:38:57.376Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T18:39:27.474Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T18:39:57.563Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T18:40:27.642Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T18:40:57.731Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T18:41:27.813Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T18:41:57.890Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T18:42:27.967Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T18:42:58.057Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T18:43:28.155Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T18:43:58.250Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T18:44:28.347Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T18:44:58.446Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T18:45:28.540Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T18:45:58.629Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T18:46:28.726Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T18:46:58.816Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T18:47:28.904Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T19:03:10.278Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T19:03:40.376Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T19:04:10.465Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T19:04:40.574Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T19:05:10.670Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T19:05:40.753Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T19:06:10.852Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T19:06:40.943Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T19:07:11.033Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T19:07:41.128Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T19:08:11.222Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T19:08:41.292Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T19:09:11.387Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T19:09:41.453Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T19:10:11.516Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T19:10:41.568Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T19:11:11.630Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T19:11:41.677Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T19:12:11.749Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T19:12:41.833Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T19:13:11.921Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T19:13:42.014Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T19:14:12.117Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T19:14:42.207Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T19:15:12.303Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T19:15:42.411Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T19:16:12.502Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T19:16:42.594Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T19:17:12.687Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T19:17:42.795Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T19:18:12.884Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T19:18:42.973Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T19:19:13.071Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T19:19:43.164Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T19:20:13.266Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T19:20:43.354Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T19:21:13.444Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T19:21:43.565Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T19:22:13.661Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T19:22:43.754Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T19:23:13.848Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T19:23:43.941Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T19:24:14.028Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T19:24:44.117Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T19:25:14.209Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T19:25:44.287Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T19:26:14.387Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T19:26:44.478Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T19:27:14.579Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T19:27:44.662Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T19:28:14.744Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T19:28:44.849Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T19:29:14.936Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T19:29:45.014Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T19:30:15.093Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T19:30:45.170Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T19:31:15.257Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T19:31:45.338Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T19:32:15.426Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T19:32:45.514Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T19:33:15.612Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T19:33:45.717Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T19:34:15.810Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T19:34:45.909Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T19:35:15.995Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T19:35:46.090Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T19:36:16.174Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T19:36:46.265Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T19:37:16.362Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T19:37:46.458Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T19:38:16.554Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T19:38:46.653Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T19:39:16.742Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T19:39:46.832Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T19:40:16.930Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T19:40:47.022Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T19:41:17.110Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T19:41:47.196Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T19:42:17.291Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T19:42:47.385Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T19:43:17.482Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T19:43:47.572Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T19:44:17.669Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T19:44:47.783Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T19:45:17.880Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T19:45:47.971Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T19:46:18.064Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T19:46:48.163Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T19:47:18.255Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T19:47:48.357Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T19:48:18.442Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T19:48:48.533Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T19:49:18.620Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T19:49:48.722Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T19:50:18.815Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T19:50:48.903Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T19:51:19.014Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T19:51:49.105Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T19:52:19.198Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T19:52:49.297Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T19:53:19.381Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T19:53:49.480Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T19:54:19.571Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T19:54:49.661Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T19:55:19.743Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T19:55:49.837Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T19:56:19.929Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T19:56:50.022Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T19:57:20.104Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T19:57:50.191Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T19:58:20.297Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T19:58:50.390Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T19:59:20.490Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T19:59:50.585Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T20:00:20.676Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T20:00:50.765Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T20:01:20.871Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T20:01:50.962Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T20:02:21.056Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T20:02:51.146Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T20:03:21.243Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T20:03:51.338Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T20:04:21.430Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T20:04:51.517Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T20:05:21.621Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T20:21:03.819Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T20:21:33.909Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T20:22:03.996Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T20:22:34.088Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T20:23:04.168Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T20:23:34.262Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T20:24:04.339Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T20:24:34.427Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T20:25:04.516Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T20:25:34.587Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T20:26:04.661Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T20:26:34.736Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T20:27:04.831Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T20:27:34.924Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T20:28:05.008Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T20:28:35.103Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T20:29:05.189Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T20:29:35.281Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T20:30:05.378Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T20:30:35.481Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T20:31:05.566Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T20:31:35.650Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T20:32:05.740Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T20:32:35.835Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T20:33:05.926Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T20:33:36.022Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T20:34:06.108Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T20:34:36.205Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T20:35:06.303Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T20:35:36.404Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T20:36:06.503Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T20:36:36.605Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T20:37:06.693Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T20:37:36.798Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T20:38:06.895Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T20:38:36.978Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T20:39:07.066Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T20:39:37.156Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T20:40:07.261Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T20:40:37.343Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T20:41:07.452Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T20:41:37.556Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T20:42:07.651Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T20:42:37.740Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T20:43:07.837Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T20:43:37.923Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T20:44:08.011Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T20:44:38.098Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T20:45:08.183Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T20:45:38.280Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T20:46:08.368Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T20:46:38.460Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T20:47:08.559Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T20:47:38.652Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T20:48:08.753Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T20:48:38.851Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T20:49:08.949Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T20:49:39.039Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T20:50:09.141Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T20:50:39.237Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T20:51:09.336Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T20:51:39.429Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T20:52:09.506Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T20:52:39.610Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T20:53:09.702Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T20:53:39.781Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T20:54:09.877Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T20:54:39.969Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T20:55:10.054Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T20:55:40.149Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T20:56:10.247Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T20:56:40.346Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T20:57:10.442Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T20:57:40.544Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T20:58:10.648Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T20:58:40.734Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T20:59:10.823Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T20:59:40.913Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T21:00:11.008Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T21:00:41.105Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T21:01:11.184Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T21:01:41.282Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T21:02:11.375Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T21:02:41.463Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T21:03:11.562Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T21:03:41.658Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T21:04:11.753Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T21:04:41.844Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T21:05:11.937Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T21:05:42.037Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T21:06:12.119Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T21:06:42.221Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T21:07:12.309Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T21:07:42.410Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T21:08:12.505Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T21:08:42.588Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T21:09:12.687Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T21:09:42.782Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T21:10:12.870Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T21:10:42.964Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T21:11:13.058Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T21:11:43.155Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T21:12:13.246Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T21:12:43.333Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T21:13:13.414Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T21:13:43.479Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T21:14:13.535Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T21:14:43.593Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T21:15:13.645Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T21:15:43.711Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T21:16:13.784Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T21:16:43.874Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T21:17:13.961Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T21:17:44.052Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T21:18:14.145Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T21:18:44.195Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T21:19:14.243Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T21:19:44.294Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T21:20:14.371Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T21:20:44.423Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T21:21:14.490Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T21:21:44.547Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T21:22:14.615Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T21:22:44.673Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T21:23:14.730Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T21:23:44.783Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T21:24:14.839Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T21:24:44.951Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T21:32:54.448Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T21:33:24.719Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T21:33:54.797Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T21:34:24.870Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T21:34:54.948Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T21:35:25.033Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T21:35:55.124Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T21:36:25.234Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T21:36:55.319Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T21:37:25.404Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T21:37:55.499Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T21:38:25.605Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T21:38:55.698Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T21:39:25.789Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T21:39:55.882Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T21:40:25.971Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T21:40:56.073Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T21:41:26.167Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T21:41:56.260Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T21:42:26.331Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T21:42:56.425Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T21:43:26.515Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T21:43:56.601Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T21:44:26.672Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T21:44:56.743Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T21:45:26.837Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T21:45:56.936Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T21:46:27.033Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T21:46:57.126Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T21:47:27.213Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T21:47:57.302Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T21:48:27.395Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T21:48:57.470Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T21:49:27.562Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T21:49:57.666Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T21:50:27.749Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T21:50:57.846Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T21:51:27.934Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T21:51:58.015Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T21:52:28.108Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T21:52:58.214Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T21:53:28.317Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T21:53:58.411Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T21:54:28.507Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T21:54:58.599Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T21:55:06.332Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T21:55:06.411Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260202", - "baseTime": "2100", - "nx": 57, - "ny": 119 -} -[2026-02-02T21:55:06.433Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T21:55:06.488Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T21:55:06.504Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-02", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T21:55:06.514Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T21:55:07.317Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T21:55:07.582Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -4.4, - "humidity": 71, - "windSpeed": 0.2, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-02T21:55:07.590Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -4.4, - "humidity": 71, - "windSpeed": 0.2, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T21:55:07.595Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "1186ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T21:55:13.497Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/active/list", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T21:55:13.536Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260202", - "baseTime": "2100", - "nx": 57, - "ny": 119 -} -[2026-02-02T21:55:13.558Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 304, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T21:55:13.565Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "19ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T21:55:13.584Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-02", - "statusCode": 304, - "duration": "34ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T21:55:13.604Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 304, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T21:55:14.485Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T21:55:14.826Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -4.4, - "humidity": 71, - "windSpeed": 0.2, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-02T21:55:14.832Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -4.4, - "humidity": 71, - "windSpeed": 0.2, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T21:55:14.837Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 304, - "duration": "1303ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T21:55:28.695Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T21:55:55.162Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues/stats/summary?category_type=nonconformity", - "statusCode": 200, - "duration": "24ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T21:55:55.169Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues?category_type=nonconformity", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T21:55:55.188Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260202", - "baseTime": "2100", - "nx": 57, - "ny": 119 -} -[2026-02-02T21:55:55.352Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -4.4, - "humidity": 71, - "windSpeed": 0.2, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-02T21:55:55.355Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -4.4, - "humidity": 71, - "windSpeed": 0.2, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T21:55:55.359Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 304, - "duration": "172ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T21:55:56.126Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T21:55:58.794Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T21:55:59.156Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues/stats/summary?category_type=safety", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T21:55:59.161Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues?category_type=safety", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T21:55:59.190Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260202", - "baseTime": "2100", - "nx": 57, - "ny": 119 -} -[2026-02-02T21:56:00.143Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T21:56:00.364Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -4.4, - "humidity": 71, - "windSpeed": 0.2, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-02T21:56:00.368Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -4.4, - "humidity": 71, - "windSpeed": 0.2, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T21:56:00.373Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 304, - "duration": "1185ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T21:56:02.984Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/active/list", - "statusCode": 304, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T21:56:03.027Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260202", - "baseTime": "2100", - "nx": 57, - "ny": 119 -} -[2026-02-02T21:56:03.033Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T21:56:03.040Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T21:56:03.044Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-02", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T21:56:03.046Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues/categories/type/safety", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T21:56:03.054Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T21:56:03.970Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T21:56:04.165Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -4.4, - "humidity": 71, - "windSpeed": 0.2, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-02T21:56:04.168Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -4.4, - "humidity": 71, - "windSpeed": 0.2, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T21:56:04.169Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 304, - "duration": "1146ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T21:56:28.891Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T21:56:58.990Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T21:57:29.081Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T21:57:59.173Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T21:58:29.261Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T21:58:59.343Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T21:59:04.432Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/active/list", - "statusCode": 200, - "duration": "15ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T21:59:04.461Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260202", - "baseTime": "2100", - "nx": 57, - "ny": 119 -} -[2026-02-02T21:59:04.483Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T21:59:04.494Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues/categories/type/safety", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T21:59:04.496Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "23ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T21:59:04.501Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-02", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T21:59:04.510Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T21:59:04.741Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -4.4, - "humidity": 71, - "windSpeed": 0.2, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-02T21:59:04.742Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -4.4, - "humidity": 71, - "windSpeed": 0.2, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T21:59:04.743Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "283ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T21:59:05.402Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T21:59:07.983Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/active/list", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T21:59:08.025Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260202", - "baseTime": "2100", - "nx": 57, - "ny": 119 -} -[2026-02-02T21:59:08.043Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "16ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T21:59:08.049Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 304, - "duration": "20ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T21:59:08.052Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-02", - "statusCode": 304, - "duration": "18ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T21:59:08.077Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T21:59:08.105Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -4.4, - "humidity": 71, - "windSpeed": 0.2, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-02T21:59:08.107Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -4.4, - "humidity": 71, - "windSpeed": 0.2, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T21:59:08.109Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 304, - "duration": "85ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T21:59:08.989Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T21:59:29.442Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T21:59:34.977Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T21:59:35.016Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260202", - "baseTime": "2100", - "nx": 57, - "ny": 119 -} -[2026-02-02T21:59:35.026Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T21:59:35.030Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T21:59:35.038Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-02", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T21:59:35.042Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T21:59:35.169Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -4.4, - "humidity": 71, - "windSpeed": 0.2, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-02T21:59:35.173Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -4.4, - "humidity": 71, - "windSpeed": 0.2, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T21:59:35.178Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 304, - "duration": "163ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T21:59:35.966Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T21:59:38.711Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T21:59:38.744Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260202", - "baseTime": "2100", - "nx": 57, - "ny": 119 -} -[2026-02-02T21:59:38.750Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260202", - "baseTime": "2100", - "nx": 57, - "ny": 119 -} -[2026-02-02T21:59:38.770Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects?is_active=1", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T21:59:38.784Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/safety-checks", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T21:59:38.798Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T21:59:38.819Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks/active/list", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T21:59:38.835Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?is_active=true", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T21:59:38.842Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/active/list", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T21:59:38.850Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-03", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T21:59:39.328Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -4.4, - "humidity": 71, - "windSpeed": 0.2, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-02T21:59:39.333Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -4.4, - "humidity": 71, - "windSpeed": 0.2, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-02T21:59:39.335Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -4.4, - "humidity": 71, - "windSpeed": 0.2, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T21:59:39.337Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 304, - "duration": "590ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T21:59:39.339Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -4.4, - "humidity": 71, - "windSpeed": 0.2, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T21:59:39.342Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 304, - "duration": "599ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T21:59:39.690Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T21:59:47.714Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 304, - "duration": "28ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T21:59:47.734Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 304, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T21:59:59.546Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T22:00:29.647Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T22:00:39.252Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/active/list", - "statusCode": 304, - "duration": "16ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:00:39.297Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260202", - "baseTime": "2100", - "nx": 57, - "ny": 119 -} -[2026-02-02T22:00:39.311Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:00:39.312Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:00:39.315Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-02", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:00:39.322Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:00:39.751Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -4.4, - "humidity": 71, - "windSpeed": 0.2, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-02T22:00:39.756Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -4.4, - "humidity": 71, - "windSpeed": 0.2, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T22:00:39.760Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 304, - "duration": "469ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:00:40.223Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:00:44.025Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/active/list", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:00:44.072Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260202", - "baseTime": "2100", - "nx": 57, - "ny": 119 -} -[2026-02-02T22:00:44.078Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:00:44.085Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:00:44.087Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-02", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:00:44.099Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:00:44.865Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -4.4, - "humidity": 71, - "windSpeed": 0.2, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-02T22:00:44.870Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -4.4, - "humidity": 71, - "windSpeed": 0.2, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T22:00:44.875Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "803ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:00:45.020Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:00:59.754Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T22:01:29.855Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T22:01:59.952Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T22:02:30.082Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T22:03:00.202Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T22:03:30.298Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T22:03:53.718Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/active/list", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:03:53.749Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260202", - "baseTime": "2100", - "nx": 57, - "ny": 119 -} -[2026-02-02T22:03:53.758Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:03:53.761Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:03:53.763Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-02", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:03:53.774Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:03:53.969Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -4.4, - "humidity": 71, - "windSpeed": 0.2, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-02T22:03:53.972Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -4.4, - "humidity": 71, - "windSpeed": 0.2, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T22:03:53.974Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "226ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:03:54.713Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:04:00.403Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T22:04:30.523Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T22:04:37.466Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:04:37.485Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces", - "statusCode": 200, - "duration": "21ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:04:37.539Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260202", - "baseTime": "2100", - "nx": 57, - "ny": 119 -} -[2026-02-02T22:04:37.575Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/11", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:04:37.576Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/10", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:04:37.577Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/2", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:04:37.583Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/7", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:04:37.585Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/4", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:04:37.586Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/8", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:04:37.590Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/1", - "statusCode": 200, - "duration": "24ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:04:37.592Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/9", - "statusCode": 200, - "duration": "23ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:04:37.606Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/6", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:04:37.609Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/5", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:04:37.612Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/3", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:04:37.615Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/12", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:04:38.115Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -4.4, - "humidity": 71, - "windSpeed": 0.2, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-02T22:04:38.120Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -4.4, - "humidity": 71, - "windSpeed": 0.2, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T22:04:38.124Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 304, - "duration": "587ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:04:38.423Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:04:49.532Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/2", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:04:49.542Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/10", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:04:49.544Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/9", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:04:49.551Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/1", - "statusCode": 304, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:04:49.556Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/11", - "statusCode": 304, - "duration": "18ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:04:49.559Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/8", - "statusCode": 304, - "duration": "19ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:04:49.563Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/7", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:04:49.570Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/4", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:04:49.575Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/3", - "statusCode": 304, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:04:49.576Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/12", - "statusCode": 304, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:04:49.577Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/6", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:04:49.579Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/5", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:04:49.585Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:05:00.655Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T22:05:30.745Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T22:06:00.851Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "5ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T22:06:30.958Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "6ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T22:06:34.447Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "25ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:06:34.459Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces", - "statusCode": 200, - "duration": "26ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:06:34.502Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260202", - "baseTime": "2100", - "nx": 57, - "ny": 119 -} -[2026-02-02T22:06:34.509Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/2", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:06:34.511Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/8", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:06:34.512Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/10", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:06:34.513Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/9", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:06:34.516Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/1", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:06:34.518Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/11", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:06:34.520Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/3", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:06:34.521Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/4", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:06:34.522Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/7", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:06:34.524Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/12", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:06:34.526Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/6", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:06:34.529Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/5", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:06:34.587Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -4.4, - "humidity": 71, - "windSpeed": 0.2, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-02T22:06:34.589Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -4.4, - "humidity": 71, - "windSpeed": 0.2, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T22:06:34.590Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "89ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:06:35.411Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:06:36.295Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/2", - "statusCode": 304, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:06:36.300Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/10", - "statusCode": 304, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:06:36.302Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/9", - "statusCode": 304, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:06:36.303Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/1", - "statusCode": 304, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:06:36.306Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/11", - "statusCode": 304, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:06:36.307Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/8", - "statusCode": 304, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:06:36.318Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/7", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:06:36.319Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/4", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:06:36.320Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/3", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:06:36.321Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/12", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:06:36.323Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/6", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:06:36.326Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/5", - "statusCode": 304, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:06:36.330Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:06:39.194Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/active/list", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:06:39.256Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260202", - "baseTime": "2100", - "nx": 57, - "ny": 119 -} -[2026-02-02T22:06:39.271Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:06:39.275Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 304, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:06:39.278Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-02", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:06:39.290Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:06:39.347Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -4.4, - "humidity": 71, - "windSpeed": 0.2, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-02T22:06:39.349Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -4.4, - "humidity": 71, - "windSpeed": 0.2, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T22:06:39.351Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 304, - "duration": "100ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:06:40.180Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:06:54.642Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues/categories/type/nonconformity", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:06:56.863Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues/items/category/2", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:07:01.068Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T22:07:03.525Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues/items/category/3", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:07:05.781Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/work-issues/items/category/2", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:07:06.192Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues/items/category/1", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:07:08.119Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/work-issues/items/category/2", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:07:31.162Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T22:08:01.260Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T22:08:31.357Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T22:09:01.529Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "12ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T22:09:31.628Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T22:10:01.728Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T22:10:31.835Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T22:11:01.924Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T22:11:32.021Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T22:11:36.429Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/active/list", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:11:36.502Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260202", - "baseTime": "2200", - "nx": 57, - "ny": 119 -} -[2026-02-02T22:11:36.520Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:11:36.522Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "38ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:11:36.524Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-02", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:11:36.532Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:11:37.406Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:11:37.729Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -4.7, - "humidity": 75, - "windSpeed": 0.1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-02T22:11:37.734Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -4.7, - "humidity": 75, - "windSpeed": 0.1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T22:11:37.737Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "1243ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:11:46.093Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues/categories/type/nonconformity", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:11:47.813Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues/items/category/3", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:12:02.130Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T22:12:32.224Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T22:13:02.304Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T22:13:32.393Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T22:13:48.137Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/active/list", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:13:48.228Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260202", - "baseTime": "2200", - "nx": 57, - "ny": 119 -} -[2026-02-02T22:13:48.234Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:13:48.239Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:13:48.242Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-02", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:13:48.248Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:13:48.442Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -4.7, - "humidity": 75, - "windSpeed": 0.1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-02T22:13:48.446Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -4.7, - "humidity": 75, - "windSpeed": 0.1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T22:13:48.449Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "223ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:13:49.136Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:13:58.010Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues/categories/type/nonconformity", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:13:59.066Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues/items/category/3", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:14:02.532Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T22:14:32.633Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T22:15:02.724Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T22:15:32.808Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T22:16:02.899Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T22:16:21.243Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/active/list", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:16:21.304Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260202", - "baseTime": "2200", - "nx": 57, - "ny": 119 -} -[2026-02-02T22:16:21.311Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:16:21.318Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:16:21.319Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-02", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:16:21.349Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:16:21.376Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -4.7, - "humidity": 75, - "windSpeed": 0.1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-02T22:16:21.377Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -4.7, - "humidity": 75, - "windSpeed": 0.1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T22:16:21.378Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "77ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:16:22.241Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:16:25.824Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues/categories/type/nonconformity", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:16:26.955Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues/items/category/3", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:16:32.998Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T22:16:33.576Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/work-issues", - "statusCode": 201, - "duration": "26ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:16:35.337Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues/stats/summary?category_type=nonconformity", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:16:35.351Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues?category_type=nonconformity", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:16:35.392Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260202", - "baseTime": "2200", - "nx": 57, - "ny": 119 -} -[2026-02-02T22:16:35.468Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -4.7, - "humidity": 75, - "windSpeed": 0.1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-02T22:16:35.470Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -4.7, - "humidity": 75, - "windSpeed": 0.1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T22:16:35.472Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 304, - "duration": "82ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:16:36.325Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:16:41.344Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260202", - "baseTime": "2200", - "nx": 57, - "ny": 119 -} -[2026-02-02T22:16:41.430Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -4.7, - "humidity": 75, - "windSpeed": 0.1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-02T22:16:41.433Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -4.7, - "humidity": 75, - "windSpeed": 0.1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T22:16:41.436Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 304, - "duration": "95ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:16:42.292Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:17:03.088Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T22:17:21.449Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:17:21.534Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260202", - "baseTime": "2200", - "nx": 57, - "ny": 119 -} -[2026-02-02T22:17:21.552Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:17:21.558Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:17:21.567Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-02", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:17:21.573Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:17:21.779Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -4.7, - "humidity": 75, - "windSpeed": 0.1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-02T22:17:21.783Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -4.7, - "humidity": 75, - "windSpeed": 0.1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T22:17:21.785Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 304, - "duration": "261ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:17:22.438Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:17:33.196Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T22:17:38.503Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/work-issues/stats/summary?category_type=nonconformity", - "statusCode": 304, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:17:38.509Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/work-issues?category_type=nonconformity", - "statusCode": 304, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:17:38.549Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260202", - "baseTime": "2200", - "nx": 57, - "ny": 119 -} -[2026-02-02T22:17:38.732Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -4.7, - "humidity": 75, - "windSpeed": 0.1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-02T22:17:38.735Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -4.7, - "humidity": 75, - "windSpeed": 0.1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T22:17:38.739Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 304, - "duration": "193ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:17:39.489Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:18:03.280Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T22:18:33.370Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T22:19:03.487Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T22:19:33.585Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T22:20:02.161Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260202", - "baseTime": "2200", - "nx": 57, - "ny": 119 -} -[2026-02-02T22:20:02.273Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -4.7, - "humidity": 75, - "windSpeed": 0.1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-02T22:20:02.279Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -4.7, - "humidity": 75, - "windSpeed": 0.1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T22:20:02.282Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 304, - "duration": "130ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:20:03.018Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:20:03.703Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T22:20:05.702Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users/me", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:20:05.720Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260202", - "baseTime": "2200", - "nx": 57, - "ny": 119 -} -[2026-02-02T22:20:05.731Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues/1", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:20:05.779Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/work-issues/1/status-logs", - "method": "GET" -} -[2026-02-02T22:20:05.780Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/work-issues/1/status-logs", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:20:06.705Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:20:06.804Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -4.7, - "humidity": 75, - "windSpeed": 0.1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-02T22:20:06.807Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -4.7, - "humidity": 75, - "windSpeed": 0.1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T22:20:06.810Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "1091ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:20:33.793Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T22:21:03.882Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T22:21:33.967Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T22:22:04.039Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T22:22:34.108Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T22:23:04.189Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T22:23:34.248Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T22:24:04.323Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T22:24:34.419Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T22:25:04.491Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T22:25:34.570Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T22:26:04.633Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T22:26:34.692Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T22:27:04.762Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T22:27:34.821Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T22:28:04.903Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T22:28:34.979Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T22:29:05.079Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T22:29:35.164Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T22:30:05.228Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T22:30:05.725Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260202", - "baseTime": "2200", - "nx": 57, - "ny": 119 -} -[2026-02-02T22:30:07.394Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -4.7, - "humidity": 75, - "windSpeed": 0.1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-02T22:30:07.396Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -4.7, - "humidity": 75, - "windSpeed": 0.1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T22:30:07.397Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 304, - "duration": "1676ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:30:35.314Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T22:30:39.337Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues/stats/summary?category_type=nonconformity", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:30:39.343Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues?category_type=nonconformity", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:30:39.355Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260202", - "baseTime": "2200", - "nx": 57, - "ny": 119 -} -[2026-02-02T22:30:39.458Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -4.7, - "humidity": 75, - "windSpeed": 0.1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-02T22:30:39.460Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -4.7, - "humidity": 75, - "windSpeed": 0.1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T22:30:39.461Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 304, - "duration": "108ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:30:40.269Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:30:43.794Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues/stats/summary?category_type=safety", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:30:43.795Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues?category_type=safety", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:30:43.819Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260202", - "baseTime": "2200", - "nx": 57, - "ny": 119 -} -[2026-02-02T22:30:43.981Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -4.7, - "humidity": 75, - "windSpeed": 0.1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-02T22:30:43.983Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -4.7, - "humidity": 75, - "windSpeed": 0.1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T22:30:43.985Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 304, - "duration": "168ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:30:44.779Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:31:04.937Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260202", - "baseTime": "2200", - "nx": 57, - "ny": 119 -} -[2026-02-02T22:31:04.948Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260202", - "baseTime": "2200", - "nx": 57, - "ny": 119 -} -[2026-02-02T22:31:04.953Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "49ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:31:04.964Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:31:04.971Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:31:04.978Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:31:04.985Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:31:05.001Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:31:05.142Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -4.7, - "humidity": 75, - "windSpeed": 0.1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-02T22:31:05.143Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -4.7, - "humidity": 75, - "windSpeed": 0.1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T22:31:05.144Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 304, - "duration": "201ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:31:05.404Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T22:31:05.881Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:31:05.882Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:31:06.139Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -4.7, - "humidity": 75, - "windSpeed": 0.1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-02T22:31:06.141Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -4.7, - "humidity": 75, - "windSpeed": 0.1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T22:31:06.143Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 304, - "duration": "1207ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:31:35.479Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T22:32:05.570Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T22:32:35.653Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T22:33:05.734Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T22:33:35.804Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T22:34:05.871Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T22:34:35.951Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T22:35:06.032Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T22:35:15.290Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "27ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:35:15.332Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260202", - "baseTime": "2200", - "nx": 57, - "ny": 119 -} -[2026-02-02T22:35:15.339Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260202", - "baseTime": "2200", - "nx": 57, - "ny": 119 -} -[2026-02-02T22:35:15.349Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects?is_active=1", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:35:15.359Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/safety-checks", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:35:15.370Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:35:15.381Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks/active/list", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:35:15.394Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?is_active=true", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:35:15.401Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/active/list", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:35:15.409Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-03", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:35:15.494Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -4.7, - "humidity": 75, - "windSpeed": 0.1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-02T22:35:15.496Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -4.7, - "humidity": 75, - "windSpeed": 0.1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-02T22:35:15.498Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -4.7, - "humidity": 75, - "windSpeed": 0.1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T22:35:15.499Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -4.7, - "humidity": 75, - "windSpeed": 0.1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T22:35:15.501Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 304, - "duration": "174ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:35:15.502Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 304, - "duration": "166ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:35:16.247Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:35:27.876Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:35:27.891Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:35:36.104Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T22:35:47.267Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:35:47.278Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:35:52.957Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/tbm/sessions", - "statusCode": 201, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:35:52.970Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/tbm/sessions/13/team/batch", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:35:52.977Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-03", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:36:01.610Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/active/list", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:36:01.655Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260202", - "baseTime": "2200", - "nx": 57, - "ny": 119 -} -[2026-02-02T22:36:01.665Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:36:01.667Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:36:01.670Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-02", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:36:01.678Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:36:02.024Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -4.7, - "humidity": 75, - "windSpeed": 0.1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-02T22:36:02.027Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -4.7, - "humidity": 75, - "windSpeed": 0.1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T22:36:02.029Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 304, - "duration": "377ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:36:02.596Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:36:06.181Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T22:36:36.252Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T22:37:06.322Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T22:37:36.397Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T22:38:06.488Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T22:38:36.553Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T22:39:06.625Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T22:39:23.588Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:39:23.622Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260202", - "baseTime": "2200", - "nx": 57, - "ny": 119 -} -[2026-02-02T22:39:23.641Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 304, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:39:23.734Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:39:23.749Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-02", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:39:23.755Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:39:23.857Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -4.7, - "humidity": 75, - "windSpeed": 0.1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-02T22:39:23.859Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -4.7, - "humidity": 75, - "windSpeed": 0.1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T22:39:23.866Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 304, - "duration": "246ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:39:24.532Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:39:36.710Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T22:40:06.787Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T22:40:15.944Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:40:16.018Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260202", - "baseTime": "2200", - "nx": 57, - "ny": 119 -} -[2026-02-02T22:40:16.039Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "15ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:40:16.046Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:40:16.071Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-02", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:40:16.093Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:40:16.246Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -4.7, - "humidity": 75, - "windSpeed": 0.1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-02T22:40:16.248Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -4.7, - "humidity": 75, - "windSpeed": 0.1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T22:40:16.249Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "237ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:40:16.914Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:40:17.731Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/active/list", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:40:17.774Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260202", - "baseTime": "2200", - "nx": 57, - "ny": 119 -} -[2026-02-02T22:40:17.787Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:40:17.799Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 304, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:40:17.807Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-02", - "statusCode": 304, - "duration": "15ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:40:17.851Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:40:18.422Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -4.7, - "humidity": 75, - "windSpeed": 0.1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-02T22:40:18.423Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -4.7, - "humidity": 75, - "windSpeed": 0.1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T22:40:18.424Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 304, - "duration": "652ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:40:18.718Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:40:36.880Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T22:41:06.981Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T22:41:37.069Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T22:42:07.162Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T22:42:22.818Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/active/list", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:42:22.857Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260202", - "baseTime": "2200", - "nx": 57, - "ny": 119 -} -[2026-02-02T22:42:22.875Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:42:22.880Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:42:22.881Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-02", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:42:22.890Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:42:23.637Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -4.7, - "humidity": 75, - "windSpeed": 0.1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-02T22:42:23.641Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -4.7, - "humidity": 75, - "windSpeed": 0.1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T22:42:23.645Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "791ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:42:23.808Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:42:37.275Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T22:42:38.945Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:42:38.998Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260202", - "baseTime": "2200", - "nx": 57, - "ny": 119 -} -[2026-02-02T22:42:39.008Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:42:39.029Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:42:39.049Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-03", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:42:39.062Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:42:39.938Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:42:40.425Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -4.7, - "humidity": 75, - "windSpeed": 0.1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-02T22:42:40.429Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -4.7, - "humidity": 75, - "windSpeed": 0.1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T22:42:40.432Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 304, - "duration": "1442ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:43:07.380Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T22:43:37.480Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T22:44:07.575Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T22:44:21.071Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:44:21.131Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260202", - "baseTime": "2200", - "nx": 57, - "ny": 119 -} -[2026-02-02T22:44:21.145Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:44:21.198Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -4.7, - "humidity": 75, - "windSpeed": 0.1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-02T22:44:21.200Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -4.7, - "humidity": 75, - "windSpeed": 0.1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T22:44:21.200Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "74ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:44:21.219Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:44:21.246Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-03", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:44:21.252Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:44:22.064Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:44:22.781Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/active/list", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:44:22.820Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260202", - "baseTime": "2200", - "nx": 57, - "ny": 119 -} -[2026-02-02T22:44:22.832Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:44:22.839Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:44:22.840Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-03", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:44:22.893Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:44:22.930Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -4.7, - "humidity": 75, - "windSpeed": 0.1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-02T22:44:22.931Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -4.7, - "humidity": 75, - "windSpeed": 0.1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T22:44:22.934Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 304, - "duration": "116ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:44:23.776Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:44:31.350Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues/categories/type/nonconformity", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:44:33.023Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues/items/category/3", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:44:37.675Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T22:44:48.560Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/work-issues", - "statusCode": 201, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:44:50.332Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues/stats/summary?category_type=nonconformity", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:44:50.341Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues?category_type=nonconformity", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:44:50.373Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260202", - "baseTime": "2200", - "nx": 57, - "ny": 119 -} -[2026-02-02T22:44:50.453Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -4.7, - "humidity": 75, - "windSpeed": 0.1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-02T22:44:50.455Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -4.7, - "humidity": 75, - "windSpeed": 0.1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T22:44:50.456Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 304, - "duration": "85ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:44:51.324Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:45:00.586Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:45:00.613Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260202", - "baseTime": "2200", - "nx": 57, - "ny": 119 -} -[2026-02-02T22:45:00.619Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260202", - "baseTime": "2200", - "nx": 57, - "ny": 119 -} -[2026-02-02T22:45:00.630Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:45:00.657Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:45:00.668Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:45:00.675Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:45:00.685Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:45:00.693Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues?start_date=2026-02-03&end_date=2026-02-03", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:45:00.695Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -4.7, - "humidity": 75, - "windSpeed": 0.1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-02T22:45:00.696Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -4.7, - "humidity": 75, - "windSpeed": 0.1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T22:45:00.698Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 304, - "duration": "89ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:45:00.702Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues?start_date=2026-02-02&end_date=2026-02-02", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:45:00.711Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues?start_date=2026-01-30&end_date=2026-01-30", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:45:00.720Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues?start_date=2026-01-29&end_date=2026-01-29", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:45:00.728Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues?start_date=2026-01-25&end_date=2026-01-25", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:45:00.737Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -4.7, - "humidity": 75, - "windSpeed": 0.1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-02T22:45:00.738Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -4.7, - "humidity": 75, - "windSpeed": 0.1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T22:45:00.739Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 304, - "duration": "122ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:45:01.556Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:45:01.559Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:45:07.765Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T22:45:37.837Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T22:46:07.939Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T22:46:38.022Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T22:47:08.092Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T22:47:38.180Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T22:48:08.256Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T22:48:38.346Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T22:49:08.443Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T22:49:38.532Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T22:50:08.618Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T22:50:38.708Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T22:51:08.792Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T22:51:30.117Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "16ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:51:30.164Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260202", - "baseTime": "2200", - "nx": 57, - "ny": 119 -} -[2026-02-02T22:51:30.180Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260202", - "baseTime": "2200", - "nx": 57, - "ny": 119 -} -[2026-02-02T22:51:30.186Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:51:30.195Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:51:30.200Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:51:30.205Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:51:30.211Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:51:30.217Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues?start_date=2026-02-03&end_date=2026-02-03", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:51:30.222Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues?start_date=2026-02-02&end_date=2026-02-02", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:51:30.226Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues?start_date=2026-01-30&end_date=2026-01-30", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:51:30.231Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues?start_date=2026-01-29&end_date=2026-01-29", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:51:30.235Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues?start_date=2026-01-25&end_date=2026-01-25", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:51:30.336Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -4.7, - "humidity": 75, - "windSpeed": 0.1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-02T22:51:30.338Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -4.7, - "humidity": 75, - "windSpeed": 0.1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T22:51:30.339Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "181ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:51:31.095Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:51:31.099Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:51:31.389Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -4.7, - "humidity": 75, - "windSpeed": 0.1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-02T22:51:31.391Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -4.7, - "humidity": 75, - "windSpeed": 0.1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T22:51:31.393Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "1215ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:51:38.898Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T22:52:09.005Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T22:52:39.105Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T22:52:58.872Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "33ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:52:58.919Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260202", - "baseTime": "2200", - "nx": 57, - "ny": 119 -} -[2026-02-02T22:52:58.924Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260202", - "baseTime": "2200", - "nx": 57, - "ny": 119 -} -[2026-02-02T22:52:58.928Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:52:58.935Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:52:58.943Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:52:58.952Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:52:58.979Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:52:58.985Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues?start_date=2026-02-03&end_date=2026-02-03", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:52:58.990Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues?start_date=2026-02-02&end_date=2026-02-02", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:52:58.995Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues?start_date=2026-01-30&end_date=2026-01-30", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:52:58.999Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues?start_date=2026-01-29&end_date=2026-01-29", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:52:59.004Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues?start_date=2026-01-25&end_date=2026-01-25", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:52:59.201Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -4.7, - "humidity": 75, - "windSpeed": 0.1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-02T22:52:59.203Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -4.7, - "humidity": 75, - "windSpeed": 0.1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T22:52:59.206Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "289ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:52:59.817Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:52:59.819Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:53:00.211Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -4.7, - "humidity": 75, - "windSpeed": 0.1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-02T22:53:00.214Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -4.7, - "humidity": 75, - "windSpeed": 0.1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T22:53:00.217Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "1294ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T22:53:09.204Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T22:53:39.309Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T22:54:09.401Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T22:54:39.495Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T22:55:09.590Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T22:55:39.677Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T22:56:09.776Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T22:56:39.864Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T22:57:09.959Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T22:57:40.057Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T22:58:10.144Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T22:58:40.238Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T22:59:10.318Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T22:59:40.429Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T23:00:10.542Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T23:00:40.663Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "7ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T23:01:10.762Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T23:01:40.846Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T23:02:10.941Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T23:02:41.036Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T23:02:58.948Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260202", - "baseTime": "2200", - "nx": 57, - "ny": 119 -} -[2026-02-02T23:02:58.958Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260202", - "baseTime": "2200", - "nx": 57, - "ny": 119 -} -[2026-02-02T23:02:59.170Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -4.7, - "humidity": 75, - "windSpeed": 0.1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-02T23:02:59.179Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -4.7, - "humidity": 75, - "windSpeed": 0.1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T23:02:59.182Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 304, - "duration": "239ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:03:00.137Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -4.7, - "humidity": 75, - "windSpeed": 0.1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-02T23:03:00.141Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -4.7, - "humidity": 75, - "windSpeed": 0.1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T23:03:00.146Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 304, - "duration": "1190ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:03:11.124Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T23:03:41.208Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T23:04:11.301Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T23:04:41.390Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T23:05:11.484Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T23:05:41.578Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T23:06:11.675Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T23:06:41.758Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T23:07:09.098Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:07:09.099Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:07:09.099Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:07:09.137Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260202", - "baseTime": "2200", - "nx": 57, - "ny": 119 -} -[2026-02-02T23:07:09.905Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -4.7, - "humidity": 75, - "windSpeed": 0.1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-02T23:07:09.909Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -4.7, - "humidity": 75, - "windSpeed": 0.1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T23:07:09.912Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 304, - "duration": "778ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:07:10.072Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:07:11.845Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T23:07:41.950Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T23:08:12.065Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T23:08:42.148Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T23:09:12.238Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T23:09:42.331Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T23:10:12.418Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T23:10:42.549Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T23:11:12.630Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T23:11:42.730Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T23:12:12.859Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T23:12:43.011Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T23:13:13.100Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T23:13:43.232Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T23:14:13.331Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T23:14:43.423Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T23:15:13.517Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T23:15:43.613Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T23:16:13.696Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T23:16:43.788Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T23:17:07.368Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2026-02-02T23:17:07.370Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-02-02T23:17:07.816Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-02-02T23:17:07.898Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-02-02T23:17:07.972Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2026-02-02T23:17:07.979Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-02-02T23:17:09.199Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260202", - "baseTime": "2300", - "nx": 57, - "ny": 119 -} -[2026-02-02T23:17:09.442Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -5.4, - "humidity": 76, - "windSpeed": 0.1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-02T23:17:09.455Z] [INFO] ℹ️ MariaDB 연결 성공 - Context: { - "connection": "db:3306", - "database": "hyungi", - "connectionLimit": 10 -} -[2026-02-02T23:17:09.459Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -5.4, - "humidity": 76, - "windSpeed": 0.1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T23:17:09.461Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "294ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:17:12.726Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T23:17:42.827Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T23:18:12.911Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T23:18:43.002Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T23:19:13.100Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T23:19:43.190Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T23:20:13.285Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T23:20:43.379Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T23:21:13.484Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T23:21:43.583Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T23:22:13.676Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T23:22:43.762Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T23:23:13.849Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T23:23:43.930Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T23:24:14.016Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T23:24:44.103Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T23:25:14.201Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T23:25:44.338Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T23:26:14.468Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T23:26:44.597Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T23:27:09.160Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260202", - "baseTime": "2300", - "nx": 57, - "ny": 119 -} -[2026-02-02T23:27:09.632Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -5.4, - "humidity": 76, - "windSpeed": 0.1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-02T23:27:09.640Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -5.4, - "humidity": 76, - "windSpeed": 0.1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T23:27:09.643Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 304, - "duration": "493ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:27:14.674Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T23:27:44.753Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T23:28:14.858Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T23:28:44.934Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T23:28:47.463Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:28:47.467Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:28:47.503Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260202", - "baseTime": "2300", - "nx": 57, - "ny": 119 -} -[2026-02-02T23:28:48.457Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:28:49.146Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -5.4, - "humidity": 76, - "windSpeed": 0.1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-02T23:28:49.152Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -5.4, - "humidity": 76, - "windSpeed": 0.1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T23:28:49.156Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "1654ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:28:56.940Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260202", - "baseTime": "2300", - "nx": 57, - "ny": 119 -} -[2026-02-02T23:28:57.019Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:28:57.022Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/types", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:28:57.026Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces", - "statusCode": 200, - "duration": "15ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:28:57.038Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -5.4, - "humidity": 76, - "windSpeed": 0.1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-02T23:28:57.039Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -5.4, - "humidity": 76, - "windSpeed": 0.1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T23:28:57.040Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 304, - "duration": "105ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:28:57.905Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:28:58.625Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:28:58.630Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 304, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:28:58.672Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260202", - "baseTime": "2300", - "nx": 57, - "ny": 119 -} -[2026-02-02T23:28:59.255Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -5.4, - "humidity": 76, - "windSpeed": 0.1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-02T23:28:59.259Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -5.4, - "humidity": 76, - "windSpeed": 0.1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T23:28:59.263Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 304, - "duration": "596ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:28:59.619Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:29:10.783Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "15ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:29:10.804Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260202", - "baseTime": "2300", - "nx": 57, - "ny": 119 -} -[2026-02-02T23:29:10.810Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260202", - "baseTime": "2300", - "nx": 57, - "ny": 119 -} -[2026-02-02T23:29:10.818Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:29:10.822Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:29:10.827Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:29:10.833Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:29:10.841Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:29:10.848Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues?start_date=2026-02-03&end_date=2026-02-03", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:29:10.857Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues?start_date=2026-02-02&end_date=2026-02-02", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:29:10.863Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues?start_date=2026-01-30&end_date=2026-01-30", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:29:10.871Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues?start_date=2026-01-29&end_date=2026-01-29", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:29:10.878Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues?start_date=2026-01-25&end_date=2026-01-25", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:29:10.929Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -5.4, - "humidity": 76, - "windSpeed": 0.1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-02T23:29:10.930Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -5.4, - "humidity": 76, - "windSpeed": 0.1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T23:29:10.931Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 304, - "duration": "129ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:29:11.766Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:29:11.769Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:29:12.932Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -5.4, - "humidity": 76, - "windSpeed": 0.1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-02T23:29:12.936Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -5.4, - "humidity": 76, - "windSpeed": 0.1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T23:29:12.941Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 304, - "duration": "2133ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:29:15.021Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T23:29:45.110Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T23:30:15.196Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T23:30:45.291Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T23:31:15.387Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T23:31:45.470Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T23:32:15.560Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T23:32:45.638Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T23:33:15.731Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T23:33:45.814Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T23:34:15.901Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T23:34:45.981Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T23:35:16.042Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T23:35:46.107Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T23:36:16.178Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T23:36:46.263Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T23:37:16.377Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T23:37:27.282Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 304, - "duration": "23ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:37:27.492Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260202", - "baseTime": "2300", - "nx": 57, - "ny": 119 -} -[2026-02-02T23:37:27.503Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260202", - "baseTime": "2300", - "nx": 57, - "ny": 119 -} -[2026-02-02T23:37:27.510Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:37:27.529Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:37:27.535Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:37:27.539Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:37:27.544Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:37:27.550Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/work-issues?start_date=2026-02-03&end_date=2026-02-03", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:37:27.555Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/work-issues?start_date=2026-02-02&end_date=2026-02-02", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:37:27.559Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/work-issues?start_date=2026-01-30&end_date=2026-01-30", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:37:27.563Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/work-issues?start_date=2026-01-29&end_date=2026-01-29", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:37:27.567Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/work-issues?start_date=2026-01-25&end_date=2026-01-25", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:37:27.740Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -5.4, - "humidity": 76, - "windSpeed": 0.1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-02T23:37:27.742Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -5.4, - "humidity": 76, - "windSpeed": 0.1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T23:37:27.745Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 304, - "duration": "245ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:37:28.256Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:37:28.258Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:37:28.678Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -5.4, - "humidity": 76, - "windSpeed": 0.1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-02T23:37:28.682Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -5.4, - "humidity": 76, - "windSpeed": 0.1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T23:37:28.685Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 304, - "duration": "1195ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:37:46.470Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T23:38:16.575Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T23:38:46.700Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T23:38:51.551Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/active/list", - "statusCode": 200, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:38:51.617Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260202", - "baseTime": "2300", - "nx": 57, - "ny": 119 -} -[2026-02-02T23:38:51.624Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:38:51.630Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-03", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:38:51.632Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:38:51.678Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:38:51.714Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -5.4, - "humidity": 76, - "windSpeed": 0.1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-02T23:38:51.715Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -5.4, - "humidity": 76, - "windSpeed": 0.1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T23:38:51.716Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 304, - "duration": "102ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:38:52.539Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:38:56.064Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues/categories/type/nonconformity", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:38:57.480Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues/items/category/1", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:39:13.310Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/work-issues", - "statusCode": 201, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:39:15.454Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues/stats/summary?category_type=nonconformity", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:39:15.457Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues?category_type=nonconformity", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:39:15.491Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260202", - "baseTime": "2300", - "nx": 57, - "ny": 119 -} -[2026-02-02T23:39:15.710Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -5.4, - "humidity": 76, - "windSpeed": 0.1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-02T23:39:15.714Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -5.4, - "humidity": 76, - "windSpeed": 0.1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T23:39:15.717Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 304, - "duration": "228ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:39:16.443Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:39:16.795Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T23:39:24.397Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:39:24.432Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260202", - "baseTime": "2300", - "nx": 57, - "ny": 119 -} -[2026-02-02T23:39:24.439Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260202", - "baseTime": "2300", - "nx": 57, - "ny": 119 -} -[2026-02-02T23:39:24.444Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:39:24.465Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:39:24.476Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:39:24.487Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:39:24.494Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:39:24.503Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues?start_date=2026-02-03&end_date=2026-02-03", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:39:24.510Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/work-issues?start_date=2026-02-02&end_date=2026-02-02", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:39:24.518Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/work-issues?start_date=2026-01-30&end_date=2026-01-30", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:39:24.527Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/work-issues?start_date=2026-01-29&end_date=2026-01-29", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:39:24.536Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/work-issues?start_date=2026-01-25&end_date=2026-01-25", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:39:24.542Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -5.4, - "humidity": 76, - "windSpeed": 0.1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-02T23:39:24.542Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -5.4, - "humidity": 76, - "windSpeed": 0.1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-02T23:39:24.544Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -5.4, - "humidity": 76, - "windSpeed": 0.1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T23:39:24.546Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -5.4, - "humidity": 76, - "windSpeed": 0.1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T23:39:24.547Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 304, - "duration": "118ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:39:24.549Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 304, - "duration": "111ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:39:25.378Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:39:25.380Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:39:33.237Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:39:33.323Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260202", - "baseTime": "2300", - "nx": 57, - "ny": 119 -} -[2026-02-02T23:39:33.335Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260202", - "baseTime": "2300", - "nx": 57, - "ny": 119 -} -[2026-02-02T23:39:33.339Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:39:33.343Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:39:33.348Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:39:33.354Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:39:33.360Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:39:33.366Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues?start_date=2026-02-03&end_date=2026-02-03", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:39:33.375Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues?start_date=2026-02-02&end_date=2026-02-02", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:39:33.380Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues?start_date=2026-01-30&end_date=2026-01-30", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:39:33.384Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues?start_date=2026-01-29&end_date=2026-01-29", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:39:33.389Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues?start_date=2026-01-25&end_date=2026-01-25", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:39:33.410Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -5.4, - "humidity": 76, - "windSpeed": 0.1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-02T23:39:33.411Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -5.4, - "humidity": 76, - "windSpeed": 0.1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T23:39:33.412Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "78ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:39:33.414Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -5.4, - "humidity": 76, - "windSpeed": 0.1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-02T23:39:33.415Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -5.4, - "humidity": 76, - "windSpeed": 0.1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T23:39:33.416Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "95ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:39:34.232Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:39:34.235Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:39:46.892Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T23:40:16.996Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T23:40:47.100Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T23:41:17.199Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T23:41:47.284Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T23:42:17.374Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T23:42:47.470Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T23:42:58.513Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "59ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:42:58.555Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260202", - "baseTime": "2300", - "nx": 57, - "ny": 119 -} -[2026-02-02T23:42:58.559Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260202", - "baseTime": "2300", - "nx": 57, - "ny": 119 -} -[2026-02-02T23:42:58.564Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:42:58.569Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:42:58.574Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:42:58.579Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:42:58.585Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:42:58.594Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues?start_date=2026-02-03&end_date=2026-02-03", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:42:58.671Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues?start_date=2026-02-02&end_date=2026-02-02", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:42:58.680Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues?start_date=2026-01-30&end_date=2026-01-30", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:42:58.685Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues?start_date=2026-01-29&end_date=2026-01-29", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:42:58.690Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues?start_date=2026-01-25&end_date=2026-01-25", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:42:58.709Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -5.4, - "humidity": 76, - "windSpeed": 0.1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-02T23:42:58.711Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -5.4, - "humidity": 76, - "windSpeed": 0.1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T23:42:58.712Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "154ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:42:59.451Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:42:59.454Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:42:59.759Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -5.4, - "humidity": 76, - "windSpeed": 0.1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-02T23:42:59.763Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -5.4, - "humidity": 76, - "windSpeed": 0.1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T23:42:59.767Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "1214ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:43:17.561Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T23:43:47.691Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T23:44:17.793Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T23:44:47.891Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T23:45:17.985Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T23:45:48.074Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T23:46:07.100Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "20ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:46:07.173Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260202", - "baseTime": "2300", - "nx": 57, - "ny": 119 -} -[2026-02-02T23:46:07.180Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260202", - "baseTime": "2300", - "nx": 57, - "ny": 119 -} -[2026-02-02T23:46:07.194Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:46:07.202Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:46:07.209Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:46:07.233Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:46:07.241Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:46:07.248Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues?start_date=2026-02-03&end_date=2026-02-03", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:46:07.251Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -5.4, - "humidity": 76, - "windSpeed": 0.1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-02T23:46:07.252Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -5.4, - "humidity": 76, - "windSpeed": 0.1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T23:46:07.254Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "82ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:46:07.255Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues?start_date=2026-02-02&end_date=2026-02-02", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:46:07.257Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -5.4, - "humidity": 76, - "windSpeed": 0.1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-02T23:46:07.258Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -5.4, - "humidity": 76, - "windSpeed": 0.1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T23:46:07.260Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "82ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:46:07.263Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues?start_date=2026-01-30&end_date=2026-01-30", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:46:07.269Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues?start_date=2026-01-29&end_date=2026-01-29", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:46:07.275Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues?start_date=2026-01-25&end_date=2026-01-25", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:46:08.063Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:46:08.065Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:46:18.181Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T23:46:24.743Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:46:24.759Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260202", - "baseTime": "2300", - "nx": 57, - "ny": 119 -} -[2026-02-02T23:46:24.770Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260202", - "baseTime": "2300", - "nx": 57, - "ny": 119 -} -[2026-02-02T23:46:24.774Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:46:24.780Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:46:24.790Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:46:24.799Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:46:24.811Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:46:24.817Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues?start_date=2026-02-03&end_date=2026-02-03", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:46:24.826Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues?start_date=2026-02-02&end_date=2026-02-02", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:46:24.845Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues?start_date=2026-01-30&end_date=2026-01-30", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:46:24.849Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues?start_date=2026-01-29&end_date=2026-01-29", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:46:24.855Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues?start_date=2026-01-25&end_date=2026-01-25", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:46:25.154Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -5.4, - "humidity": 76, - "windSpeed": 0.1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-02T23:46:25.157Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -5.4, - "humidity": 76, - "windSpeed": 0.1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T23:46:25.160Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "390ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:46:25.742Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:46:25.744Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:46:25.851Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -5.4, - "humidity": 76, - "windSpeed": 0.1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-02T23:46:25.853Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -5.4, - "humidity": 76, - "windSpeed": 0.1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T23:46:25.857Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "1100ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:46:48.286Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T23:46:54.447Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports/from-tbm", - "statusCode": 201, - "duration": "24ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:46:54.459Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/daily-work-reports/994/defects", - "method": "PUT" -} -[2026-02-02T23:46:54.461Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "PUT", - "url": "/api/daily-work-reports/994/defects", - "statusCode": 404, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:47:18.391Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T23:47:48.491Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T23:48:18.576Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T23:48:48.674Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T23:49:18.764Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T23:49:48.864Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T23:49:50.902Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2026-02-02T23:49:50.903Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-02-02T23:49:51.366Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-02-02T23:49:51.441Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-02-02T23:49:51.514Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2026-02-02T23:49:51.520Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-02-02T23:49:56.220Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T23:50:26.306Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T23:50:56.360Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T23:51:26.413Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T23:51:52.158Z] [INFO] ℹ️ MariaDB 연결 성공 - Context: { - "connection": "db:3306", - "database": "hyungi", - "connectionLimit": 10 -} -[2026-02-02T23:51:52.168Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "64ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:51:52.229Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260202", - "baseTime": "2300", - "nx": 57, - "ny": 119 -} -[2026-02-02T23:51:52.257Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260202", - "baseTime": "2300", - "nx": 57, - "ny": 119 -} -[2026-02-02T23:51:52.267Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:51:52.273Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:51:52.278Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:51:52.284Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:51:52.291Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:51:52.298Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues?start_date=2026-02-03&end_date=2026-02-03", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:51:52.304Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues?start_date=2026-02-02&end_date=2026-02-02", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:51:52.309Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues?start_date=2026-01-30&end_date=2026-01-30", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:51:52.314Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues?start_date=2026-01-29&end_date=2026-01-29", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:51:52.319Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues?start_date=2026-01-25&end_date=2026-01-25", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:51:52.393Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -5.4, - "humidity": 76, - "windSpeed": 0.1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-02T23:51:52.396Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -5.4, - "humidity": 76, - "windSpeed": 0.1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T23:51:52.398Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "144ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:51:53.097Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:51:53.101Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:51:53.396Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -5.4, - "humidity": 76, - "windSpeed": 0.1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-02T23:51:53.401Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -5.4, - "humidity": 76, - "windSpeed": 0.1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-02T23:51:53.407Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "1204ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T23:51:56.484Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T23:52:26.579Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T23:52:56.670Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T23:53:26.770Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T23:53:56.859Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T23:54:26.968Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T23:54:57.049Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T23:55:27.167Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T23:55:57.250Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T23:56:27.332Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T23:56:57.424Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T23:57:27.522Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T23:57:57.607Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T23:58:27.689Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T23:58:57.771Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T23:59:27.870Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-02T23:59:43.242Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2026-02-02T23:59:43.243Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-02-02T23:59:43.668Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-02-02T23:59:43.736Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-02-02T23:59:43.813Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2026-02-02T23:59:43.820Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-02-02T23:59:48.565Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T00:00:18.641Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T00:00:45.223Z] [WARN] ⚠️ 인증 실패: 유효하지 않은 토큰 - Context: { - "error": "jwt malformed", - "path": "/", - "ip": "::ffff:185.199.108.133" -} -[2026-02-03T00:00:45.227Z] [WARN] ⚠️ 유효하지 않은 토큰입니다 - Context: { - "code": "AUTHENTICATION_ERROR", - "url": "/api/work-issues/categories/type/nonconformity", - "method": "GET", - "user": "anonymous" -} -[2026-02-03T00:00:45.230Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/work-issues/categories/type/nonconformity", - "statusCode": 401, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-02-03T00:00:48.718Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T00:01:18.811Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T00:01:48.894Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T00:01:52.367Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "2300", - "nx": 57, - "ny": 119 -} -[2026-02-03T00:01:52.394Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "2300", - "nx": 57, - "ny": 119 -} -[2026-02-03T00:01:53.650Z] [ERROR] ❌ 날씨 API 호출 실패 - Context: { - "error": "API 오류: NO_DATA" -} -[2026-02-03T00:01:53.671Z] [INFO] ℹ️ MariaDB 연결 성공 - Context: { - "connection": "db:3306", - "database": "hyungi", - "connectionLimit": 10 -} -[2026-02-03T00:01:53.676Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 20, - "humidity": 50, - "windSpeed": 2, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": "clear", - "isDefault": true - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T00:01:53.678Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "1351ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:01:54.540Z] [ERROR] ❌ 날씨 API 호출 실패 - Context: { - "error": "API 오류: NO_DATA" -} -[2026-02-03T00:01:54.546Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 20, - "humidity": 50, - "windSpeed": 2, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": "clear", - "isDefault": true - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T00:01:54.549Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "2157ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:02:18.980Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T00:02:36.674Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "2300", - "nx": 57, - "ny": 119 -} -[2026-02-03T00:02:36.682Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "2300", - "nx": 57, - "ny": 119 -} -[2026-02-03T00:02:36.707Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "54ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:02:36.724Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:02:36.733Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:02:36.747Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:02:36.782Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:02:36.789Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues/categories/type/nonconformity", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:02:36.804Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues/items", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:02:36.814Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:02:36.823Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues?start_date=2026-02-03&end_date=2026-02-03", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:02:36.830Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues?start_date=2026-02-02&end_date=2026-02-02", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:02:36.831Z] [ERROR] ❌ 날씨 API 호출 실패 - Context: { - "error": "API 오류: NO_DATA" -} -[2026-02-03T00:02:36.834Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 20, - "humidity": 50, - "windSpeed": 2, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": "clear", - "isDefault": true - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T00:02:36.835Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "155ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:02:36.838Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues?start_date=2026-01-30&end_date=2026-01-30", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:02:36.866Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues?start_date=2026-01-29&end_date=2026-01-29", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:02:36.873Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues?start_date=2026-01-25&end_date=2026-01-25", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:02:37.594Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:02:37.597Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:02:38.183Z] [ERROR] ❌ 날씨 API 호출 실패 - Context: { - "error": "API 오류: NO_DATA" -} -[2026-02-03T00:02:38.187Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 20, - "humidity": 50, - "windSpeed": 2, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": "clear", - "isDefault": true - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T00:02:38.190Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "1517ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:02:49.083Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T00:03:14.987Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 304, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:03:14.991Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 304, - "duration": "16ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:03:15.031Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "2300", - "nx": 57, - "ny": 119 -} -[2026-02-03T00:03:15.957Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:03:16.057Z] [ERROR] ❌ 날씨 API 호출 실패 - Context: { - "error": "API 오류: NO_DATA" -} -[2026-02-03T00:03:16.064Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 20, - "humidity": 50, - "windSpeed": 2, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": "clear", - "isDefault": true - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T00:03:16.068Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 304, - "duration": "1041ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:03:19.166Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T00:03:21.060Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/work-issues/categories/type/nonconformity", - "statusCode": 304, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:03:21.087Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "2300", - "nx": 57, - "ny": 119 -} -[2026-02-03T00:03:21.102Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/work-issues/items", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:03:21.794Z] [ERROR] ❌ 날씨 API 호출 실패 - Context: { - "error": "API 오류: NO_DATA" -} -[2026-02-03T00:03:21.797Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 20, - "humidity": 50, - "windSpeed": 2, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": "clear", - "isDefault": true - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T00:03:21.800Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 304, - "duration": "716ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:03:22.051Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:03:22.057Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:03:24.199Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues/categories/type/safety", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:03:24.213Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/work-issues/items", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:03:25.109Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/work-issues/categories/type/nonconformity", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:03:25.120Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/work-issues/items", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:03:31.910Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/work-issues/categories/type/nonconformity", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:03:31.924Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/work-issues/items", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:03:48.430Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:03:48.476Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "2300", - "nx": 57, - "ny": 119 -} -[2026-02-03T00:03:48.490Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:03:48.501Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:03:48.553Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-03", - "statusCode": 200, - "duration": "27ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:03:48.566Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:03:48.574Z] [ERROR] ❌ 날씨 API 호출 실패 - Context: { - "error": "API 오류: NO_DATA" -} -[2026-02-03T00:03:48.576Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 20, - "humidity": 50, - "windSpeed": 2, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": "clear", - "isDefault": true - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T00:03:48.578Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 304, - "duration": "107ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:03:49.267Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T00:03:49.405Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:04:19.363Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T00:04:32.594Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "19ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:04:32.646Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "2300", - "nx": 57, - "ny": 119 -} -[2026-02-03T00:04:32.654Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:04:32.660Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:04:32.672Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-03", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:04:32.681Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:04:33.007Z] [ERROR] ❌ 날씨 API 호출 실패 - Context: { - "error": "API 오류: NO_DATA" -} -[2026-02-03T00:04:33.011Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 20, - "humidity": 50, - "windSpeed": 2, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": "clear", - "isDefault": true - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T00:04:33.014Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "370ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:04:33.568Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:04:49.446Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T00:05:19.544Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T00:05:38.329Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "2300", - "nx": 57, - "ny": 119 -} -[2026-02-03T00:05:39.548Z] [ERROR] ❌ 날씨 API 호출 실패 - Context: { - "error": "API 오류: NO_DATA" -} -[2026-02-03T00:05:49.629Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T00:06:19.708Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T00:06:23.664Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2026-02-03T00:06:23.665Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-02-03T00:06:24.138Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-02-03T00:06:24.210Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-02-03T00:06:24.278Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2026-02-03T00:06:24.283Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-02-03T00:06:29.025Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T00:06:31.982Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "0800", - "nx": 57, - "ny": 119 -} -[2026-02-03T00:06:33.052Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -4.8, - "humidity": 68, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T00:06:58.477Z] [INFO] ℹ️ MariaDB 연결 성공 - Context: { - "connection": "db:3306", - "database": "hyungi", - "connectionLimit": 10 -} -[2026-02-03T00:06:58.524Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "0800", - "nx": 57, - "ny": 119 -} -[2026-02-03T00:06:58.572Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "166ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:06:58.601Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:06:58.607Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:06:58.654Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-03", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:06:58.680Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:06:58.792Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -4.8, - "humidity": 68, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T00:06:58.798Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -4.8, - "humidity": 68, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T00:06:58.801Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "323ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:06:59.115Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T00:06:59.382Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:07:02.629Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:07:02.660Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "0800", - "nx": 57, - "ny": 119 -} -[2026-02-03T00:07:02.669Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "0800", - "nx": 57, - "ny": 119 -} -[2026-02-03T00:07:02.677Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects?is_active=1", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:07:02.721Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/safety-checks", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:07:02.727Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:07:02.735Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks/active/list", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:07:02.743Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?is_active=true", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:07:02.751Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/active/list", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:07:02.757Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-03", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:07:03.113Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -4.8, - "humidity": 68, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T00:07:03.118Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -4.8, - "humidity": 68, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T00:07:03.122Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -4.8, - "humidity": 68, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T00:07:03.126Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 304, - "duration": "468ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:07:03.130Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -4.8, - "humidity": 68, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T00:07:03.131Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 304, - "duration": "465ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:07:03.608Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:07:06.128Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:07:06.274Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "0800", - "nx": 57, - "ny": 119 -} -[2026-02-03T00:07:06.281Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "0800", - "nx": 57, - "ny": 119 -} -[2026-02-03T00:07:06.288Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:07:06.311Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:07:06.317Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:07:06.334Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:07:06.339Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues/categories/type/nonconformity", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:07:06.346Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues/items", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:07:06.354Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:07:06.365Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues?start_date=2026-02-03&end_date=2026-02-03", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:07:06.368Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -4.8, - "humidity": 68, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T00:07:06.370Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -4.8, - "humidity": 68, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T00:07:06.371Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 304, - "duration": "100ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:07:06.374Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues?start_date=2026-02-02&end_date=2026-02-02", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:07:06.380Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues?start_date=2026-01-30&end_date=2026-01-30", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:07:06.386Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues?start_date=2026-01-29&end_date=2026-01-29", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:07:06.391Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues?start_date=2026-01-25&end_date=2026-01-25", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:07:07.121Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:07:07.124Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:07:07.403Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -4.8, - "humidity": 68, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T00:07:07.407Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -4.8, - "humidity": 68, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T00:07:07.410Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 304, - "duration": "1132ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:07:29.214Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T00:07:59.314Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T00:08:29.412Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T00:08:59.492Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T00:09:29.590Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T00:09:47.541Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/active/list", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:09:47.588Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "0800", - "nx": 57, - "ny": 119 -} -[2026-02-03T00:09:47.615Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:09:47.617Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-03", - "statusCode": 304, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:09:47.623Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 304, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:09:47.656Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:09:47.749Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -4.8, - "humidity": 68, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T00:09:47.757Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -4.8, - "humidity": 68, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T00:09:47.763Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 304, - "duration": "181ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:09:48.531Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:09:57.141Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/work-issues/categories/type/nonconformity", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:09:58.765Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues/items/category/2", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:09:59.671Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T00:10:10.457Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/work-issues", - "statusCode": 201, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:10:12.535Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues/stats/summary?category_type=nonconformity", - "statusCode": 200, - "duration": "15ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:10:12.543Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues?category_type=nonconformity", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:10:12.572Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "0900", - "nx": 57, - "ny": 119 -} -[2026-02-03T00:10:12.689Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -3.9, - "humidity": 65, - "windSpeed": 0.2, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T00:10:12.690Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -3.9, - "humidity": 65, - "windSpeed": 0.2, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T00:10:12.692Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "124ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:10:13.515Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:10:16.005Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/active/list", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:10:16.046Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "0900", - "nx": 57, - "ny": 119 -} -[2026-02-03T00:10:16.064Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:10:16.066Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:10:16.067Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-03", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:10:16.073Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:10:16.117Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -3.9, - "humidity": 65, - "windSpeed": 0.2, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T00:10:16.118Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -3.9, - "humidity": 65, - "windSpeed": 0.2, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T00:10:16.120Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 304, - "duration": "78ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:10:17.001Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:10:21.704Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues/categories/type/safety", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:10:23.757Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues/items/category/6", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:10:29.750Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T00:10:39.811Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/work-issues", - "statusCode": 201, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:10:41.696Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues/stats/summary?category_type=safety", - "statusCode": 200, - "duration": "18ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:10:41.701Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues?category_type=safety", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:10:41.827Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "0900", - "nx": 57, - "ny": 119 -} -[2026-02-03T00:10:41.993Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -3.9, - "humidity": 65, - "windSpeed": 0.2, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T00:10:41.996Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -3.9, - "humidity": 65, - "windSpeed": 0.2, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T00:10:41.999Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 304, - "duration": "174ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:10:42.666Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:10:50.246Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "18ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:10:50.255Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "0900", - "nx": 57, - "ny": 119 -} -[2026-02-03T00:10:50.264Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "0900", - "nx": 57, - "ny": 119 -} -[2026-02-03T00:10:50.292Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:10:50.333Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 304, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:10:50.343Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:10:50.348Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:10:50.352Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/work-issues/categories/type/nonconformity", - "statusCode": 304, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:10:50.357Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/work-issues/items", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:10:50.363Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:10:50.369Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -3.9, - "humidity": 65, - "windSpeed": 0.2, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T00:10:50.370Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -3.9, - "humidity": 65, - "windSpeed": 0.2, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T00:10:50.370Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues?start_date=2026-02-03&end_date=2026-02-03", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:10:50.371Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 304, - "duration": "109ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:10:50.374Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/work-issues?start_date=2026-02-02&end_date=2026-02-02", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:10:50.378Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/work-issues?start_date=2026-01-30&end_date=2026-01-30", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:10:50.383Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/work-issues?start_date=2026-01-29&end_date=2026-01-29", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:10:50.387Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/work-issues?start_date=2026-01-25&end_date=2026-01-25", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:10:50.400Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -3.9, - "humidity": 65, - "windSpeed": 0.2, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T00:10:50.401Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -3.9, - "humidity": 65, - "windSpeed": 0.2, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T00:10:50.402Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 304, - "duration": "150ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:10:51.208Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:10:51.212Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:10:59.832Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T00:11:06.619Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:11:06.659Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "0900", - "nx": 57, - "ny": 119 -} -[2026-02-03T00:11:06.670Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:11:06.677Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:11:06.702Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-03", - "statusCode": 304, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:11:06.712Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:11:06.913Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -3.9, - "humidity": 65, - "windSpeed": 0.2, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T00:11:06.915Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -3.9, - "humidity": 65, - "windSpeed": 0.2, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T00:11:06.916Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 304, - "duration": "259ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:11:07.614Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:11:09.866Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/active/list", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:11:09.914Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "0900", - "nx": 57, - "ny": 119 -} -[2026-02-03T00:11:09.934Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:11:09.939Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:11:09.942Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-03", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:11:09.969Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:11:09.997Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -3.9, - "humidity": 65, - "windSpeed": 0.2, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T00:11:09.999Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -3.9, - "humidity": 65, - "windSpeed": 0.2, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T00:11:10.000Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 304, - "duration": "90ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:11:10.860Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:11:14.037Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/work-issues/categories/type/safety", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:11:15.598Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues/items/category/9", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:11:29.922Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T00:11:29.988Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/work-issues", - "statusCode": 201, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:11:31.662Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues/stats/summary?category_type=safety", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:11:31.669Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues?category_type=safety", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:11:31.736Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "0900", - "nx": 57, - "ny": 119 -} -[2026-02-03T00:11:31.991Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -3.9, - "humidity": 65, - "windSpeed": 0.2, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T00:11:31.995Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -3.9, - "humidity": 65, - "windSpeed": 0.2, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T00:11:31.998Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 304, - "duration": "264ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:11:32.659Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:11:33.616Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:11:33.642Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "0900", - "nx": 57, - "ny": 119 -} -[2026-02-03T00:11:33.648Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "0900", - "nx": 57, - "ny": 119 -} -[2026-02-03T00:11:33.654Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:11:33.667Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 304, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:11:33.671Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 304, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:11:33.676Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:11:33.680Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/work-issues/categories/type/nonconformity", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:11:33.685Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/work-issues/items", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:11:33.693Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:11:33.699Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues?start_date=2026-02-03&end_date=2026-02-03", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:11:33.704Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/work-issues?start_date=2026-02-02&end_date=2026-02-02", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:11:33.709Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/work-issues?start_date=2026-01-30&end_date=2026-01-30", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:11:33.712Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/work-issues?start_date=2026-01-29&end_date=2026-01-29", - "statusCode": 304, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:11:33.716Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/work-issues?start_date=2026-01-25&end_date=2026-01-25", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:11:33.732Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -3.9, - "humidity": 65, - "windSpeed": 0.2, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T00:11:33.733Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -3.9, - "humidity": 65, - "windSpeed": 0.2, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T00:11:33.734Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -3.9, - "humidity": 65, - "windSpeed": 0.2, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T00:11:33.735Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -3.9, - "humidity": 65, - "windSpeed": 0.2, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T00:11:33.737Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 304, - "duration": "97ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:11:33.739Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 304, - "duration": "93ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:11:34.607Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:11:34.610Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:12:00.022Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T00:12:30.129Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T00:13:00.219Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T00:13:30.308Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T00:14:00.397Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T00:14:30.505Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T00:14:40.876Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "22ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:14:40.981Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "0900", - "nx": 57, - "ny": 119 -} -[2026-02-03T00:14:40.986Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "0900", - "nx": 57, - "ny": 119 -} -[2026-02-03T00:14:41.000Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:14:41.007Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:14:41.014Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:14:41.026Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:14:41.034Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues/categories/type/nonconformity", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:14:41.040Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues/items", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:14:41.045Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:14:41.051Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues?start_date=2026-02-03&end_date=2026-02-03", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:14:41.056Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues?start_date=2026-02-02&end_date=2026-02-02", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:14:41.061Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues?start_date=2026-01-30&end_date=2026-01-30", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:14:41.065Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues?start_date=2026-01-29&end_date=2026-01-29", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:14:41.069Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -3.9, - "humidity": 65, - "windSpeed": 0.2, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T00:14:41.070Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues?start_date=2026-01-25&end_date=2026-01-25", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:14:41.071Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -3.9, - "humidity": 65, - "windSpeed": 0.2, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T00:14:41.071Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -3.9, - "humidity": 65, - "windSpeed": 0.2, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T00:14:41.072Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "92ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:14:41.073Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -3.9, - "humidity": 65, - "windSpeed": 0.2, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T00:14:41.073Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "88ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:14:41.847Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:14:41.850Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:15:00.614Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T00:15:30.694Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T00:16:00.811Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T00:16:30.912Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T00:17:01.016Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T00:17:02.972Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "0900", - "nx": 57, - "ny": 119 -} -[2026-02-03T00:17:02.991Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:17:03.001Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/attendance/records?date=2026-02-03", - "method": "GET" -} -[2026-02-03T00:17:03.002Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/attendance/records?date=2026-02-03", - "statusCode": 404, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:17:03.005Z] [INFO] ℹ️ 출근 체크 목록 조회 요청 - Context: { - "date": "2026-02-03" -} -[2026-02-03T00:17:03.009Z] [INFO] ℹ️ 출근 체크 목록 조회 성공 - Context: { - "date": "2026-02-03", - "count": 10 -} -[2026-02-03T00:17:03.011Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/checkin-list?date=2026-02-03", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:17:03.053Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -3.6, - "humidity": 63, - "windSpeed": 1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T00:17:03.054Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -3.6, - "humidity": 63, - "windSpeed": 1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T00:17:03.055Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "93ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:17:03.897Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:17:31.114Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T00:17:36.302Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "20ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:17:36.377Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "0900", - "nx": 57, - "ny": 119 -} -[2026-02-03T00:17:36.391Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "0900", - "nx": 57, - "ny": 119 -} -[2026-02-03T00:17:36.401Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:17:36.409Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:17:36.414Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:17:36.418Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 304, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:17:36.424Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/work-issues/categories/type/nonconformity", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:17:36.433Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/work-issues/items", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:17:36.442Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:17:36.448Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/work-issues?start_date=2026-02-03&end_date=2026-02-03", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:17:36.453Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/work-issues?start_date=2026-02-02&end_date=2026-02-02", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:17:36.457Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/work-issues?start_date=2026-01-30&end_date=2026-01-30", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:17:36.464Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/work-issues?start_date=2026-01-29&end_date=2026-01-29", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:17:36.474Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/work-issues?start_date=2026-01-25&end_date=2026-01-25", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:17:36.480Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -3.6, - "humidity": 63, - "windSpeed": 1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T00:17:36.485Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -3.6, - "humidity": 63, - "windSpeed": 1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T00:17:36.489Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 304, - "duration": "102ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:17:37.268Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:17:37.271Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:17:37.482Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -3.6, - "humidity": 63, - "windSpeed": 1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T00:17:37.484Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -3.6, - "humidity": 63, - "windSpeed": 1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T00:17:37.487Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 304, - "duration": "1114ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:18:01.213Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T00:18:31.299Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T00:19:01.383Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T00:19:19.389Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:19:19.470Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "0900", - "nx": 57, - "ny": 119 -} -[2026-02-03T00:19:19.476Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "0900", - "nx": 57, - "ny": 119 -} -[2026-02-03T00:19:19.484Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:19:19.489Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:19:19.495Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:19:19.503Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:19:19.508Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues/categories/type/nonconformity", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:19:19.515Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues/items", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:19:19.523Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:19:19.529Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues?start_date=2026-02-03&end_date=2026-02-03", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:19:19.535Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues?start_date=2026-02-02&end_date=2026-02-02", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:19:19.541Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues?start_date=2026-01-30&end_date=2026-01-30", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:19:19.547Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues?start_date=2026-01-29&end_date=2026-01-29", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:19:19.552Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues?start_date=2026-01-25&end_date=2026-01-25", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:19:20.379Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:19:20.382Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:19:20.600Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -3.6, - "humidity": 63, - "windSpeed": 1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T00:19:20.603Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -3.6, - "humidity": 63, - "windSpeed": 1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T00:19:20.608Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -3.6, - "humidity": 63, - "windSpeed": 1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T00:19:20.610Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -3.6, - "humidity": 63, - "windSpeed": 1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T00:19:20.613Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "1139ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:19:20.616Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "1148ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:19:31.470Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T00:20:01.613Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "5ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T00:20:04.145Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 304, - "duration": "22ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:20:04.214Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "0900", - "nx": 57, - "ny": 119 -} -[2026-02-03T00:20:04.231Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "0900", - "nx": 57, - "ny": 119 -} -[2026-02-03T00:20:04.251Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 304, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:20:04.300Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:20:04.307Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:20:04.321Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:20:04.328Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/work-issues/categories/type/nonconformity", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:20:04.367Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/work-issues/items", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:20:04.381Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:20:04.382Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -3.6, - "humidity": 63, - "windSpeed": 1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T00:20:04.384Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -3.6, - "humidity": 63, - "windSpeed": 1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T00:20:04.385Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 304, - "duration": "176ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:20:04.386Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/work-issues?start_date=2026-02-03&end_date=2026-02-03", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:20:04.391Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/work-issues?start_date=2026-02-02&end_date=2026-02-02", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:20:04.395Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/work-issues?start_date=2026-01-30&end_date=2026-01-30", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:20:04.398Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/work-issues?start_date=2026-01-29&end_date=2026-01-29", - "statusCode": 304, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:20:04.399Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -3.6, - "humidity": 63, - "windSpeed": 1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T00:20:04.400Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -3.6, - "humidity": 63, - "windSpeed": 1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T00:20:04.401Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 304, - "duration": "173ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:20:04.403Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/work-issues?start_date=2026-01-25&end_date=2026-01-25", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:20:05.122Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:20:05.126Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:20:31.709Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T00:21:01.814Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T00:21:31.916Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T00:22:02.004Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T00:22:32.104Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T00:23:02.199Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T00:23:32.284Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T00:24:02.362Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T00:24:32.454Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T00:25:02.546Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T00:25:32.657Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T00:26:02.758Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T00:26:32.860Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T00:27:02.966Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T00:27:33.054Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T00:28:03.139Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T00:28:33.232Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T00:29:03.320Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T00:29:13.045Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "23ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:29:13.141Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "0900", - "nx": 57, - "ny": 119 -} -[2026-02-03T00:29:13.146Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "0900", - "nx": 57, - "ny": 119 -} -[2026-02-03T00:29:13.151Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:29:13.157Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:29:13.164Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:29:13.171Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:29:13.179Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues/categories/type/nonconformity", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:29:13.194Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues/items", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:29:13.207Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:29:13.220Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues?start_date=2026-02-03&end_date=2026-02-03", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:29:13.231Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues?start_date=2026-02-02&end_date=2026-02-02", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:29:13.239Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues?start_date=2026-01-30&end_date=2026-01-30", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:29:13.245Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues?start_date=2026-01-29&end_date=2026-01-29", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:29:13.249Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues?start_date=2026-01-25&end_date=2026-01-25", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:29:13.323Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -3.4, - "humidity": 63, - "windSpeed": 1.7, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T00:29:13.324Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -3.4, - "humidity": 63, - "windSpeed": 1.7, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T00:29:13.325Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "187ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:29:14.024Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:29:14.027Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:29:14.337Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -3.4, - "humidity": 63, - "windSpeed": 1.7, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T00:29:14.340Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -3.4, - "humidity": 63, - "windSpeed": 1.7, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T00:29:14.343Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "1198ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:29:33.428Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T00:29:52.489Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports/from-tbm", - "statusCode": 201, - "duration": "23ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:29:52.510Z] [INFO] ℹ️ 부적합 원인 저장 성공 - Context: { - "reportId": "995", - "count": 2 -} -[2026-02-03T00:29:52.511Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "PUT", - "url": "/api/daily-work-reports/995/defects", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:29:52.521Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:29:56.956Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "17ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:29:57.086Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "0900", - "nx": 57, - "ny": 119 -} -[2026-02-03T00:29:57.094Z] [INFO] ℹ️ 월별 캘린더 데이터 조회 요청 - Context: { - "year": 2026, - "month": 2 -} -[2026-02-03T00:29:57.097Z] [ERROR] ❌ 월별 캘린더 데이터 조회 실패 - Context: { - "year": 2026, - "month": 2, - "error": "Table 'hyungi.monthly_summary' doesn't exist" -} -[2026-02-03T00:29:57.098Z] [ERROR] ❌ 월별 캘린더 데이터 조회 중 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 월별 캘린더 데이터 조회 중 오류가 발생했습니다\n at /usr/src/app/controllers/monthlyStatusController.js:80:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "url": "/api/monthly-status/calendar?year=2026&month=2", - "method": "GET", - "user": "anonymous" -} -[2026-02-03T00:29:57.100Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/monthly-status/calendar?year=2026&month=2", - "statusCode": 500, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:29:57.159Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-31", - "requester": 1, - "isAdmin": false -} -[2026-02-03T00:29:57.162Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-02-01", - "requester": 1, - "isAdmin": false -} -[2026-02-03T00:29:57.164Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-02-03T00:29:57.165Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-31&view_all=true", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:29:57.167Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-02-02", - "requester": 1, - "isAdmin": false -} -[2026-02-03T00:29:57.169Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-02-03", - "requester": 1, - "isAdmin": false -} -[2026-02-03T00:29:57.170Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-02-04", - "requester": 1, - "isAdmin": false -} -[2026-02-03T00:29:57.173Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-02-03T00:29:57.174Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-02-01&view_all=true", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:29:57.177Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 2 -} -[2026-02-03T00:29:57.178Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-02-02&view_all=true", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:29:57.179Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 2 -} -[2026-02-03T00:29:57.180Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-02-03&view_all=true", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:29:57.185Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-02-03T00:29:57.187Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-02-04&view_all=true", - "statusCode": 200, - "duration": "18ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:29:57.251Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -3.4, - "humidity": 63, - "windSpeed": 1.7, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T00:29:57.257Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -3.4, - "humidity": 63, - "windSpeed": 1.7, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T00:29:57.258Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 304, - "duration": "173ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:29:57.294Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-02-05", - "requester": 1, - "isAdmin": false -} -[2026-02-03T00:29:57.295Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-02-06", - "requester": 1, - "isAdmin": false -} -[2026-02-03T00:29:57.296Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-02-07", - "requester": 1, - "isAdmin": false -} -[2026-02-03T00:29:57.296Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-02-08", - "requester": 1, - "isAdmin": false -} -[2026-02-03T00:29:57.297Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-02-09", - "requester": 1, - "isAdmin": false -} -[2026-02-03T00:29:57.298Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-02-03T00:29:57.299Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-02-05&view_all=true", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:29:57.300Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-02-03T00:29:57.300Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-02-06&view_all=true", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:29:57.301Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-02-03T00:29:57.302Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-02-07&view_all=true", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:29:57.302Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-02-03T00:29:57.302Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-02-08&view_all=true", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:29:57.304Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-02-03T00:29:57.304Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-02-09&view_all=true", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:29:57.411Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-02-10", - "requester": 1, - "isAdmin": false -} -[2026-02-03T00:29:57.413Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-02-11", - "requester": 1, - "isAdmin": false -} -[2026-02-03T00:29:57.414Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-02-12", - "requester": 1, - "isAdmin": false -} -[2026-02-03T00:29:57.415Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-02-03T00:29:57.415Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-02-10&view_all=true", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:29:57.415Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-02-03T00:29:57.416Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-02-11&view_all=true", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:29:57.417Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-02-03T00:29:57.417Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-02-12&view_all=true", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:29:57.418Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-02-13", - "requester": 1, - "isAdmin": false -} -[2026-02-03T00:29:57.419Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-02-14", - "requester": 1, - "isAdmin": false -} -[2026-02-03T00:29:57.419Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-02-03T00:29:57.420Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-02-13&view_all=true", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:29:57.420Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-02-03T00:29:57.421Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-02-14&view_all=true", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:29:57.533Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-02-17", - "requester": 1, - "isAdmin": false -} -[2026-02-03T00:29:57.535Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-02-15", - "requester": 1, - "isAdmin": false -} -[2026-02-03T00:29:57.536Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-02-16", - "requester": 1, - "isAdmin": false -} -[2026-02-03T00:29:57.538Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-02-18", - "requester": 1, - "isAdmin": false -} -[2026-02-03T00:29:57.538Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-02-19", - "requester": 1, - "isAdmin": false -} -[2026-02-03T00:29:57.539Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-02-03T00:29:57.539Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-02-17&view_all=true", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:29:57.540Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-02-03T00:29:57.541Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-02-15&view_all=true", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:29:57.541Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-02-03T00:29:57.542Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-02-16&view_all=true", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:29:57.543Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-02-03T00:29:57.543Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-02-18&view_all=true", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:29:57.544Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-02-03T00:29:57.544Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-02-19&view_all=true", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:29:57.660Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-02-21", - "requester": 1, - "isAdmin": false -} -[2026-02-03T00:29:57.663Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-02-20", - "requester": 1, - "isAdmin": false -} -[2026-02-03T00:29:57.665Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-02-22", - "requester": 1, - "isAdmin": false -} -[2026-02-03T00:29:57.666Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-02-23", - "requester": 1, - "isAdmin": false -} -[2026-02-03T00:29:57.667Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-02-03T00:29:57.668Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-02-21&view_all=true", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:29:57.668Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-02-03T00:29:57.669Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-02-20&view_all=true", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:29:57.669Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-02-03T00:29:57.670Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-02-22&view_all=true", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:29:57.670Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-02-24", - "requester": 1, - "isAdmin": false -} -[2026-02-03T00:29:57.671Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-02-03T00:29:57.671Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-02-23&view_all=true", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:29:57.672Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-02-03T00:29:57.672Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-02-24&view_all=true", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:29:57.785Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-02-25", - "requester": 1, - "isAdmin": false -} -[2026-02-03T00:29:57.788Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-02-26", - "requester": 1, - "isAdmin": false -} -[2026-02-03T00:29:57.791Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-02-27", - "requester": 1, - "isAdmin": false -} -[2026-02-03T00:29:57.792Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-02-03T00:29:57.793Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-02-25&view_all=true", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:29:57.793Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-02-03T00:29:57.794Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-02-26&view_all=true", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:29:57.795Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-02-03T00:29:57.795Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-02-27&view_all=true", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:29:57.912Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:29:57.914Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:29:59.787Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:29:59.874Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "0900", - "nx": 57, - "ny": 119 -} -[2026-02-03T00:29:59.881Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "0900", - "nx": 57, - "ny": 119 -} -[2026-02-03T00:29:59.957Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -3.4, - "humidity": 63, - "windSpeed": 1.7, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T00:29:59.958Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -3.4, - "humidity": 63, - "windSpeed": 1.7, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T00:29:59.959Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 304, - "duration": "80ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:30:00.777Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:30:00.782Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:30:01.016Z] [ERROR] ❌ 날씨 API 호출 실패 - Context: { - "error": "Request failed with status code 429" -} -[2026-02-03T00:30:01.020Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 20, - "humidity": 50, - "windSpeed": 2, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": "clear", - "isDefault": true - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T00:30:01.023Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "1152ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:30:01.083Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:30:01.138Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "0900", - "nx": 57, - "ny": 119 -} -[2026-02-03T00:30:01.155Z] [INFO] ℹ️ 월별 캘린더 데이터 조회 요청 - Context: { - "year": 2026, - "month": 2 -} -[2026-02-03T00:30:01.164Z] [ERROR] ❌ 월별 캘린더 데이터 조회 실패 - Context: { - "year": 2026, - "month": 2, - "error": "Table 'hyungi.monthly_summary' doesn't exist" -} -[2026-02-03T00:30:01.168Z] [ERROR] ❌ 월별 캘린더 데이터 조회 중 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 월별 캘린더 데이터 조회 중 오류가 발생했습니다\n at /usr/src/app/controllers/monthlyStatusController.js:80:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "url": "/api/monthly-status/calendar?year=2026&month=2", - "method": "GET", - "user": "anonymous" -} -[2026-02-03T00:30:01.172Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/monthly-status/calendar?year=2026&month=2", - "statusCode": 500, - "duration": "20ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:30:01.188Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-02-01", - "requester": 1, - "isAdmin": false -} -[2026-02-03T00:30:01.192Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-31", - "requester": 1, - "isAdmin": false -} -[2026-02-03T00:30:01.194Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-02-02", - "requester": 1, - "isAdmin": false -} -[2026-02-03T00:30:01.196Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-02-03", - "requester": 1, - "isAdmin": false -} -[2026-02-03T00:30:01.196Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-02-04", - "requester": 1, - "isAdmin": false -} -[2026-02-03T00:30:01.197Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-02-03T00:30:01.197Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-02-01&view_all=true", - "statusCode": 304, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:30:01.197Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-02-03T00:30:01.197Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-31&view_all=true", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:30:01.198Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 2 -} -[2026-02-03T00:30:01.198Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-02-02&view_all=true", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:30:01.199Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 2 -} -[2026-02-03T00:30:01.199Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-02-03&view_all=true", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:30:01.199Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-02-03T00:30:01.200Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-02-04&view_all=true", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:30:01.312Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-02-05", - "requester": 1, - "isAdmin": false -} -[2026-02-03T00:30:01.313Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-02-06", - "requester": 1, - "isAdmin": false -} -[2026-02-03T00:30:01.315Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-02-07", - "requester": 1, - "isAdmin": false -} -[2026-02-03T00:30:01.316Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-02-08", - "requester": 1, - "isAdmin": false -} -[2026-02-03T00:30:01.317Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-02-03T00:30:01.318Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-02-05&view_all=true", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:30:01.318Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-02-03T00:30:01.318Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-02-06&view_all=true", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:30:01.319Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-02-09", - "requester": 1, - "isAdmin": false -} -[2026-02-03T00:30:01.319Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-02-03T00:30:01.320Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-02-07&view_all=true", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:30:01.320Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-02-03T00:30:01.320Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-02-08&view_all=true", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:30:01.320Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-02-03T00:30:01.321Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-02-09&view_all=true", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:30:01.338Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -3.4, - "humidity": 63, - "windSpeed": 1.7, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T00:30:01.339Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -3.4, - "humidity": 63, - "windSpeed": 1.7, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T00:30:01.340Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "207ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:30:01.429Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-02-11", - "requester": 1, - "isAdmin": false -} -[2026-02-03T00:30:01.431Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-02-10", - "requester": 1, - "isAdmin": false -} -[2026-02-03T00:30:01.433Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-02-12", - "requester": 1, - "isAdmin": false -} -[2026-02-03T00:30:01.435Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-02-13", - "requester": 1, - "isAdmin": false -} -[2026-02-03T00:30:01.436Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-02-14", - "requester": 1, - "isAdmin": false -} -[2026-02-03T00:30:01.437Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-02-03T00:30:01.437Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-02-11&view_all=true", - "statusCode": 304, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:30:01.437Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-02-03T00:30:01.437Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-02-10&view_all=true", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:30:01.438Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-02-03T00:30:01.438Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-02-12&view_all=true", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:30:01.438Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-02-03T00:30:01.439Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-02-13&view_all=true", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:30:01.439Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-02-03T00:30:01.439Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-02-14&view_all=true", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:30:01.548Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-02-15", - "requester": 1, - "isAdmin": false -} -[2026-02-03T00:30:01.552Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-02-16", - "requester": 1, - "isAdmin": false -} -[2026-02-03T00:30:01.555Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-02-17", - "requester": 1, - "isAdmin": false -} -[2026-02-03T00:30:01.557Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-02-18", - "requester": 1, - "isAdmin": false -} -[2026-02-03T00:30:01.560Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-02-19", - "requester": 1, - "isAdmin": false -} -[2026-02-03T00:30:01.561Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-02-03T00:30:01.561Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-02-15&view_all=true", - "statusCode": 304, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:30:01.562Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-02-03T00:30:01.562Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-02-16&view_all=true", - "statusCode": 304, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:30:01.562Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-02-03T00:30:01.563Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-02-17&view_all=true", - "statusCode": 304, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:30:01.563Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-02-03T00:30:01.563Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-02-18&view_all=true", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:30:01.564Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-02-03T00:30:01.564Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-02-19&view_all=true", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:30:01.675Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-02-20", - "requester": 1, - "isAdmin": false -} -[2026-02-03T00:30:01.678Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-02-21", - "requester": 1, - "isAdmin": false -} -[2026-02-03T00:30:01.681Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-02-22", - "requester": 1, - "isAdmin": false -} -[2026-02-03T00:30:01.684Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-02-23", - "requester": 1, - "isAdmin": false -} -[2026-02-03T00:30:01.686Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-02-24", - "requester": 1, - "isAdmin": false -} -[2026-02-03T00:30:01.688Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-02-03T00:30:01.689Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-02-20&view_all=true", - "statusCode": 304, - "duration": "16ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:30:01.689Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-02-03T00:30:01.690Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-02-21&view_all=true", - "statusCode": 304, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:30:01.691Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-02-03T00:30:01.691Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-02-22&view_all=true", - "statusCode": 304, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:30:01.691Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-02-03T00:30:01.692Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-02-23&view_all=true", - "statusCode": 304, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:30:01.692Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-02-03T00:30:01.693Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-02-24&view_all=true", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:30:01.801Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-02-25", - "requester": 1, - "isAdmin": false -} -[2026-02-03T00:30:01.805Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-02-26", - "requester": 1, - "isAdmin": false -} -[2026-02-03T00:30:01.807Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-02-27", - "requester": 1, - "isAdmin": false -} -[2026-02-03T00:30:01.809Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-02-03T00:30:01.811Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-02-25&view_all=true", - "statusCode": 304, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:30:01.812Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-02-03T00:30:01.813Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-02-26&view_all=true", - "statusCode": 304, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:30:01.814Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-02-03T00:30:01.815Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-02-27&view_all=true", - "statusCode": 304, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:30:02.078Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:30:02.081Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:30:02.709Z] [INFO] ℹ️ 일별 작업자 상세 조회 요청 - Context: { - "date": "2026-02-03" -} -[2026-02-03T00:30:02.715Z] [INFO] ℹ️ 일별 작업자 상세 조회 성공 - Context: { - "date": "2026-02-03", - "workerCount": 11, - "totalHours": 16 -} -[2026-02-03T00:30:02.718Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/monthly-status/daily-details?date=2026-02-03", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:30:03.541Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T00:30:15.878Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:30:16.018Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "0900", - "nx": 57, - "ny": 119 -} -[2026-02-03T00:30:16.026Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "0900", - "nx": 57, - "ny": 119 -} -[2026-02-03T00:30:16.319Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -3.4, - "humidity": 63, - "windSpeed": 1.7, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T00:30:16.321Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -3.4, - "humidity": 63, - "windSpeed": 1.7, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T00:30:16.323Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 304, - "duration": "307ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:30:16.872Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:30:16.877Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:30:17.132Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -3.4, - "humidity": 63, - "windSpeed": 1.7, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T00:30:17.134Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -3.4, - "humidity": 63, - "windSpeed": 1.7, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T00:30:17.135Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 304, - "duration": "1112ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:30:22.233Z] [INFO] ℹ️ 최근 작업 현황 조회 요청 - Context: { - "start": "2026-02-01", - "end": "2026-02-28", - "limit": 2000 -} -[2026-02-03T00:30:22.238Z] [INFO] ℹ️ 에러 분석 요청 - Context: { - "start": "2026-02-01", - "end": "2026-02-28" -} -[2026-02-03T00:30:22.241Z] [INFO] ℹ️ 최근 작업 현황 조회 성공 - Context: { - "start": "2026-02-01", - "end": "2026-02-28", - "limit": 2000, - "resultCount": 4 -} -[2026-02-03T00:30:22.243Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-analysis/recent-work?start=2026-02-01&end=2026-02-28&limit=2000", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:30:22.244Z] [INFO] ℹ️ 에러 분석 성공 - Context: { - "start": "2026-02-01", - "end": "2026-02-28" -} -[2026-02-03T00:30:22.245Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-analysis/error-analysis?start=2026-02-01&end=2026-02-28", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:30:33.674Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T00:31:03.765Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T00:31:33.846Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T00:32:03.935Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T00:32:34.036Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T00:33:04.123Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T00:33:34.208Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T00:34:04.290Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T00:34:34.367Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T00:35:04.451Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T00:35:34.543Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T00:36:04.626Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T00:36:34.706Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T00:37:04.782Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T00:37:34.859Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T00:38:04.940Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T00:38:35.018Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T00:39:05.088Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T00:39:35.156Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T00:40:05.235Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T00:40:35.304Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T00:41:05.376Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T00:41:35.484Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T00:42:05.574Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T00:42:35.673Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T00:43:05.753Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T00:43:35.832Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T00:44:05.911Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T00:44:35.991Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T00:45:06.064Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T00:45:36.151Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T00:46:06.226Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T00:46:36.296Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T00:47:06.375Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T00:47:36.440Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T00:48:06.525Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T00:48:36.596Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T00:49:06.667Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T00:49:36.742Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T00:50:06.809Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T00:50:36.876Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T00:51:06.952Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T00:51:37.021Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T00:52:07.100Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T00:52:37.172Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T00:53:07.245Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T00:53:37.307Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T00:54:07.372Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T00:54:37.436Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T00:55:07.525Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T00:55:37.602Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T00:56:07.680Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T00:56:37.745Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T00:57:07.822Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T00:57:37.895Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T00:58:07.959Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T00:58:38.024Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T00:59:08.096Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T00:59:38.164Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T01:00:08.256Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T01:00:38.322Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T01:01:08.397Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T01:01:38.487Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T01:02:08.566Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T01:02:38.634Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T01:03:08.703Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T01:03:38.779Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T01:04:08.844Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T01:04:38.914Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T01:05:08.991Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T01:05:39.069Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T01:06:09.144Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T01:06:39.220Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T01:07:09.299Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T01:07:39.377Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T01:08:09.442Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T01:08:39.519Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T01:09:09.599Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T01:09:39.677Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T01:10:09.774Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T01:10:36.829Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "1000", - "nx": 57, - "ny": 119 -} -[2026-02-03T01:10:36.848Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "1000", - "nx": 57, - "ny": 119 -} -[2026-02-03T01:10:37.053Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -1.4, - "humidity": 59, - "windSpeed": 1.6, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T01:10:37.056Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -1.4, - "humidity": 59, - "windSpeed": 1.6, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T01:10:37.058Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -1.4, - "humidity": 59, - "windSpeed": 1.6, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T01:10:37.059Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -1.4, - "humidity": 59, - "windSpeed": 1.6, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T01:10:37.060Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "215ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T01:10:37.062Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "241ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T01:10:39.855Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T01:10:47.117Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "1000", - "nx": 57, - "ny": 119 -} -[2026-02-03T01:10:47.129Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T01:10:47.217Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/attendance/records?date=2026-02-03", - "method": "GET" -} -[2026-02-03T01:10:47.219Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/attendance/records?date=2026-02-03", - "statusCode": 404, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T01:10:47.224Z] [INFO] ℹ️ 출근 체크 목록 조회 요청 - Context: { - "date": "2026-02-03" -} -[2026-02-03T01:10:47.227Z] [INFO] ℹ️ 출근 체크 목록 조회 성공 - Context: { - "date": "2026-02-03", - "count": 10 -} -[2026-02-03T01:10:47.229Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/checkin-list?date=2026-02-03", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T01:10:47.978Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T01:10:52.126Z] [ERROR] ❌ 날씨 API 호출 실패 - Context: { - "error": "timeout of 5000ms exceeded" -} -[2026-02-03T01:10:52.129Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 20, - "humidity": 50, - "windSpeed": 2, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": "clear", - "isDefault": true - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T01:10:52.131Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "5017ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T01:11:09.944Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T01:11:40.021Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T01:12:10.096Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T01:12:40.174Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T01:13:10.257Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T01:13:40.335Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T01:14:10.403Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T01:14:40.476Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T01:15:10.560Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T01:15:40.629Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T01:16:10.702Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T01:16:37.176Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "1000", - "nx": 57, - "ny": 119 -} -[2026-02-03T01:16:37.213Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "51ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T01:16:37.234Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/attendance/records?date=2026-02-03", - "method": "GET" -} -[2026-02-03T01:16:37.236Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/attendance/records?date=2026-02-03", - "statusCode": 404, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T01:16:37.245Z] [INFO] ℹ️ 출근 체크 목록 조회 요청 - Context: { - "date": "2026-02-03" -} -[2026-02-03T01:16:37.248Z] [INFO] ℹ️ 출근 체크 목록 조회 성공 - Context: { - "date": "2026-02-03", - "count": 10 -} -[2026-02-03T01:16:37.251Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/checkin-list?date=2026-02-03", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T01:16:37.303Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -1.4, - "humidity": 57, - "windSpeed": 1.8, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T01:16:37.307Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -1.4, - "humidity": 57, - "windSpeed": 1.8, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T01:16:37.310Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "139ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T01:16:37.981Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T01:16:40.781Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T01:16:45.982Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T01:16:46.046Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "1000", - "nx": 57, - "ny": 119 -} -[2026-02-03T01:16:46.056Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "1000", - "nx": 57, - "ny": 119 -} -[2026-02-03T01:16:46.639Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -1.4, - "humidity": 57, - "windSpeed": 1.8, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T01:16:46.642Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -1.4, - "humidity": 57, - "windSpeed": 1.8, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T01:16:46.645Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 304, - "duration": "602ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T01:16:46.943Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T01:16:46.953Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T01:16:47.468Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -1.4, - "humidity": 57, - "windSpeed": 1.8, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T01:16:47.471Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -1.4, - "humidity": 57, - "windSpeed": 1.8, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T01:16:47.476Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 304, - "duration": "1424ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T01:17:10.851Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T01:17:40.936Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T01:18:11.016Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T01:18:41.092Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T01:18:54.654Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "16ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T01:18:54.743Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "1000", - "nx": 57, - "ny": 119 -} -[2026-02-03T01:18:54.751Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "1000", - "nx": 57, - "ny": 119 -} -[2026-02-03T01:18:54.809Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects?is_active=1", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T01:18:54.857Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/safety-checks", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T01:18:54.872Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T01:18:54.883Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks/active/list", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T01:18:54.900Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?is_active=true", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T01:18:54.915Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/active/list", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T01:18:54.928Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-03", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T01:18:55.602Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T01:18:55.677Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -1.4, - "humidity": 57, - "windSpeed": 1.8, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T01:18:55.680Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -1.4, - "humidity": 57, - "windSpeed": 1.8, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T01:18:55.682Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 304, - "duration": "942ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T01:18:56.089Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -1.4, - "humidity": 57, - "windSpeed": 1.8, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T01:18:56.092Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -1.4, - "humidity": 57, - "windSpeed": 1.8, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T01:18:56.094Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 304, - "duration": "1346ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T01:19:04.807Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "37ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T01:19:04.888Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "1000", - "nx": 57, - "ny": 119 -} -[2026-02-03T01:19:04.899Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "1000", - "nx": 57, - "ny": 119 -} -[2026-02-03T01:19:04.922Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects?is_active=1", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T01:19:04.979Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/safety-checks", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T01:19:05.025Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "20ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T01:19:05.116Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -1.4, - "humidity": 57, - "windSpeed": 1.8, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T01:19:05.119Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -1.4, - "humidity": 57, - "windSpeed": 1.8, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T01:19:05.123Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks/active/list", - "statusCode": 200, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T01:19:05.125Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -1.4, - "humidity": 57, - "windSpeed": 1.8, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T01:19:05.125Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -1.4, - "humidity": 57, - "windSpeed": 1.8, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T01:19:05.127Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "231ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T01:19:05.132Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "248ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T01:19:05.141Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?is_active=true", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T01:19:05.151Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/active/list", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T01:19:05.159Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-03", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T01:19:05.751Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T01:19:08.149Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "1000", - "nx": 57, - "ny": 119 -} -[2026-02-03T01:19:08.200Z] [INFO] ℹ️ 출근 체크 목록 조회 요청 - Context: { - "date": "2026-02-03" -} -[2026-02-03T01:19:08.204Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/attendance/records?date=2026-02-03", - "method": "GET" -} -[2026-02-03T01:19:08.205Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/attendance/records?date=2026-02-03", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T01:19:08.206Z] [INFO] ℹ️ 출근 체크 목록 조회 성공 - Context: { - "date": "2026-02-03", - "count": 10 -} -[2026-02-03T01:19:08.208Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T01:19:08.209Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/checkin-list?date=2026-02-03", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T01:19:08.311Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -1.4, - "humidity": 57, - "windSpeed": 1.8, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T01:19:08.314Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -1.4, - "humidity": 57, - "windSpeed": 1.8, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T01:19:08.316Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 304, - "duration": "170ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T01:19:09.096Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T01:19:11.186Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T01:19:32.298Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "1000", - "nx": 57, - "ny": 119 -} -[2026-02-03T01:19:32.324Z] [INFO] ℹ️ 출근 체크 목록 조회 요청 - Context: { - "date": "2026-02-03" -} -[2026-02-03T01:19:32.330Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/attendance/records?date=2026-02-03", - "method": "GET" -} -[2026-02-03T01:19:32.333Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/attendance/records?date=2026-02-03", - "statusCode": 404, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T01:19:32.339Z] [INFO] ℹ️ 출근 체크 목록 조회 성공 - Context: { - "date": "2026-02-03", - "count": 10 -} -[2026-02-03T01:19:32.341Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/attendance/checkin-list?date=2026-02-03", - "statusCode": 304, - "duration": "26ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T01:19:32.344Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 304, - "duration": "37ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T01:19:32.410Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -1.4, - "humidity": 57, - "windSpeed": 1.8, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T01:19:32.412Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -1.4, - "humidity": 57, - "windSpeed": 1.8, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T01:19:32.415Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 304, - "duration": "120ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T01:19:33.229Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T01:19:41.256Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T01:20:11.359Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T01:20:41.457Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T01:38:24.769Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T01:38:54.843Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T01:40:24.650Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T02:12:25.841Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T02:22:56.515Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T02:42:57.443Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T02:43:27.526Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T02:43:38.676Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "1100", - "nx": 57, - "ny": 119 -} -[2026-02-03T02:43:38.690Z] [INFO] ℹ️ 출근 체크 목록 조회 요청 - Context: { - "date": "2026-02-03" -} -[2026-02-03T02:43:38.694Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/attendance/records?date=2026-02-03", - "method": "GET" -} -[2026-02-03T02:43:38.697Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/attendance/records?date=2026-02-03", - "statusCode": 404, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T02:43:38.700Z] [INFO] ℹ️ 출근 체크 목록 조회 성공 - Context: { - "date": "2026-02-03", - "count": 10 -} -[2026-02-03T02:43:38.701Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/attendance/checkin-list?date=2026-02-03", - "statusCode": 304, - "duration": "16ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T02:43:38.714Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "45ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T02:43:38.960Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 1.2, - "humidity": 42, - "windSpeed": 1.5, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T02:43:38.963Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 1.2, - "humidity": 42, - "windSpeed": 1.5, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T02:43:38.965Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "292ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T02:43:39.501Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T02:43:57.601Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T02:44:27.691Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T02:44:57.774Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T02:45:27.852Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T02:45:57.933Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T02:46:28.007Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T02:46:58.079Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T02:47:28.159Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T02:47:58.225Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T02:48:28.297Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T02:48:58.370Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T02:49:28.437Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T02:49:58.507Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T02:50:28.585Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T02:50:58.656Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T02:51:28.736Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T02:51:58.815Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T02:52:28.888Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T02:52:58.988Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T02:53:01.936Z] [INFO] ℹ️ 출근 체크 목록 조회 요청 - Context: { - "date": "2026-02-03" -} -[2026-02-03T02:53:01.942Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/attendance/records?date=2026-02-03", - "method": "GET" -} -[2026-02-03T02:53:01.943Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/attendance/records?date=2026-02-03", - "statusCode": 404, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T02:53:01.948Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "1100", - "nx": 57, - "ny": 119 -} -[2026-02-03T02:53:01.963Z] [INFO] ℹ️ 출근 체크 목록 조회 성공 - Context: { - "date": "2026-02-03", - "count": 10 -} -[2026-02-03T02:53:01.971Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/checkin-list?date=2026-02-03", - "statusCode": 200, - "duration": "37ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T02:53:01.978Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "47ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T02:53:02.630Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T02:53:04.689Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 1.1, - "humidity": 40, - "windSpeed": 1.5, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T02:53:04.692Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 1.1, - "humidity": 40, - "windSpeed": 1.5, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T02:53:04.694Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "2749ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T02:53:29.077Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T02:53:59.151Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T02:54:29.221Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T02:54:59.294Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T02:55:29.388Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T02:55:44.318Z] [INFO] ℹ️ 출근 체크 목록 조회 요청 - Context: { - "date": "2026-02-03" -} -[2026-02-03T02:55:44.323Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/attendance/records?date=2026-02-03", - "method": "GET" -} -[2026-02-03T02:55:44.324Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/attendance/records?date=2026-02-03", - "statusCode": 404, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T02:55:44.328Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "1100", - "nx": 57, - "ny": 119 -} -[2026-02-03T02:55:44.337Z] [INFO] ℹ️ 출근 체크 목록 조회 성공 - Context: { - "date": "2026-02-03", - "count": 10 -} -[2026-02-03T02:55:44.340Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "38ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T02:55:44.352Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/checkin-list?date=2026-02-03", - "statusCode": 200, - "duration": "36ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T02:55:44.495Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 1.3, - "humidity": 41, - "windSpeed": 1.4, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T02:55:44.497Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 1.3, - "humidity": 41, - "windSpeed": 1.4, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T02:55:44.498Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "173ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T02:55:45.170Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T02:55:59.478Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T02:56:29.569Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T02:56:59.641Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T02:57:29.721Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T02:57:59.792Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T02:58:29.881Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T02:58:59.959Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T02:59:30.026Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T03:00:00.100Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T03:00:30.169Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T03:01:00.246Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T03:01:30.323Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T03:02:00.398Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T03:02:30.476Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T03:03:00.561Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T03:03:30.635Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T03:04:00.698Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T03:04:30.767Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T03:05:00.843Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T03:05:30.912Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T03:05:44.294Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "1100", - "nx": 57, - "ny": 119 -} -[2026-02-03T03:05:44.737Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 1.3, - "humidity": 41, - "windSpeed": 1.4, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T03:05:44.741Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 1.3, - "humidity": 41, - "windSpeed": 1.4, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T03:05:44.743Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 304, - "duration": "452ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:06:00.985Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T03:06:31.060Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T03:07:01.139Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T03:07:31.213Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T03:08:01.295Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T03:08:31.381Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T03:09:01.465Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T03:09:31.534Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T03:10:01.614Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T03:10:31.692Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T03:11:01.773Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T03:11:31.843Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T03:12:01.917Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T03:12:31.988Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T03:13:02.058Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T03:13:32.123Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T03:14:02.198Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T03:14:32.273Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T03:15:02.343Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T03:15:32.418Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T03:15:44.297Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "1200", - "nx": 57, - "ny": 119 -} -[2026-02-03T03:15:44.843Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 2.2, - "humidity": 42, - "windSpeed": 0.9, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T03:15:44.848Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 2.2, - "humidity": 42, - "windSpeed": 0.9, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T03:15:44.851Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "558ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:16:02.514Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T03:16:32.592Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T03:17:02.672Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T03:17:26.074Z] [INFO] ℹ️ 출근 체크 목록 조회 요청 - Context: { - "date": "2026-02-03" -} -[2026-02-03T03:17:26.086Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "1200", - "nx": 57, - "ny": 119 -} -[2026-02-03T03:17:26.105Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/attendance/records?date=2026-02-03", - "method": "GET" -} -[2026-02-03T03:17:26.112Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/attendance/records?date=2026-02-03", - "statusCode": 404, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:17:26.116Z] [INFO] ℹ️ 출근 체크 목록 조회 성공 - Context: { - "date": "2026-02-03", - "count": 10 -} -[2026-02-03T03:17:26.124Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/checkin-list?date=2026-02-03", - "statusCode": 200, - "duration": "54ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:17:26.140Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "83ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:17:26.198Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 2.2, - "humidity": 42, - "windSpeed": 0.9, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T03:17:26.202Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 2.2, - "humidity": 42, - "windSpeed": 0.9, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T03:17:26.206Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "126ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:17:26.862Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:17:32.757Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T03:18:02.842Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T03:18:32.927Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T03:19:03.002Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T03:19:33.076Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T03:20:03.157Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T03:20:33.233Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T03:21:03.301Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T03:21:33.381Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T03:21:46.310Z] [INFO] ℹ️ 출근 체크 목록 조회 요청 - Context: { - "date": "2026-02-03" -} -[2026-02-03T03:21:46.318Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "1200", - "nx": 57, - "ny": 119 -} -[2026-02-03T03:21:46.337Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/attendance/records?date=2026-02-03", - "method": "GET" -} -[2026-02-03T03:21:46.341Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/attendance/records?date=2026-02-03", - "statusCode": 404, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:21:46.343Z] [INFO] ℹ️ 출근 체크 목록 조회 성공 - Context: { - "date": "2026-02-03", - "count": 10 -} -[2026-02-03T03:21:46.354Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/checkin-list?date=2026-02-03", - "statusCode": 200, - "duration": "48ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:21:46.358Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "57ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:21:46.673Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 2.2, - "humidity": 42, - "windSpeed": 0.9, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T03:21:46.675Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 2.2, - "humidity": 42, - "windSpeed": 0.9, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T03:21:46.678Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "364ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:21:47.153Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:22:03.451Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T03:22:33.527Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T03:23:03.600Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T03:23:33.677Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T03:24:03.751Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T03:24:33.826Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T03:25:03.904Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T03:25:33.984Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T03:26:04.044Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T03:26:34.134Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T03:27:04.212Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T03:27:34.287Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T03:28:04.361Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T03:28:34.444Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T03:29:04.521Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T03:29:34.615Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T03:30:04.695Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T03:30:34.774Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T03:31:04.858Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T03:31:34.933Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T03:31:44.752Z] [WARN] ⚠️ 필수 필드가 누락되었습니다 - Context: { - "code": "VALIDATION_ERROR", - "url": "/api/attendance/records", - "method": "POST", - "user": "admin" -} -[2026-02-03T03:31:44.754Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 400, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:31:44.766Z] [WARN] ⚠️ 필수 필드가 누락되었습니다 - Context: { - "code": "VALIDATION_ERROR", - "url": "/api/attendance/records", - "method": "POST", - "user": "admin" -} -[2026-02-03T03:31:44.768Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 400, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:31:44.777Z] [WARN] ⚠️ 필수 필드가 누락되었습니다 - Context: { - "code": "VALIDATION_ERROR", - "url": "/api/attendance/records", - "method": "POST", - "user": "admin" -} -[2026-02-03T03:31:44.778Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 400, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:31:44.784Z] [WARN] ⚠️ 필수 필드가 누락되었습니다 - Context: { - "code": "VALIDATION_ERROR", - "url": "/api/attendance/records", - "method": "POST", - "user": "admin" -} -[2026-02-03T03:31:44.785Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 400, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:31:44.790Z] [WARN] ⚠️ 필수 필드가 누락되었습니다 - Context: { - "code": "VALIDATION_ERROR", - "url": "/api/attendance/records", - "method": "POST", - "user": "admin" -} -[2026-02-03T03:31:44.791Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 400, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:31:44.796Z] [WARN] ⚠️ 필수 필드가 누락되었습니다 - Context: { - "code": "VALIDATION_ERROR", - "url": "/api/attendance/records", - "method": "POST", - "user": "admin" -} -[2026-02-03T03:31:44.796Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 400, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:31:44.800Z] [WARN] ⚠️ 필수 필드가 누락되었습니다 - Context: { - "code": "VALIDATION_ERROR", - "url": "/api/attendance/records", - "method": "POST", - "user": "admin" -} -[2026-02-03T03:31:44.801Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 400, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:31:44.804Z] [WARN] ⚠️ 필수 필드가 누락되었습니다 - Context: { - "code": "VALIDATION_ERROR", - "url": "/api/attendance/records", - "method": "POST", - "user": "admin" -} -[2026-02-03T03:31:44.805Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 400, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:31:44.809Z] [WARN] ⚠️ 필수 필드가 누락되었습니다 - Context: { - "code": "VALIDATION_ERROR", - "url": "/api/attendance/records", - "method": "POST", - "user": "admin" -} -[2026-02-03T03:31:44.810Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 400, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:31:48.182Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "1200", - "nx": 57, - "ny": 119 -} -[2026-02-03T03:31:48.441Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 2.6, - "humidity": 43, - "windSpeed": 1.8, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T03:31:48.445Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 2.6, - "humidity": 43, - "windSpeed": 1.8, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T03:31:48.449Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "270ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:32:05.022Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T03:32:35.128Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T03:33:05.211Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T03:33:35.308Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T03:33:43.956Z] [INFO] ℹ️ 출근 체크 목록 조회 요청 - Context: { - "date": "2026-02-03" -} -[2026-02-03T03:33:43.959Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/attendance/records?date=2026-02-03", - "method": "GET" -} -[2026-02-03T03:33:43.960Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/attendance/records?date=2026-02-03", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:33:43.962Z] [INFO] ℹ️ 출근 체크 목록 조회 성공 - Context: { - "date": "2026-02-03", - "count": 10 -} -[2026-02-03T03:33:43.964Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "1200", - "nx": 57, - "ny": 119 -} -[2026-02-03T03:33:43.966Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/checkin-list?date=2026-02-03", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:33:43.970Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:33:44.878Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:33:45.549Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 2.6, - "humidity": 43, - "windSpeed": 1.8, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T03:33:45.552Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 2.6, - "humidity": 43, - "windSpeed": 1.8, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T03:33:45.555Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "1592ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:33:46.143Z] [INFO] ℹ️ 출근 체크 일괄 저장 요청 - Context: { - "date": "2026-02-03", - "count": 9 -} -[2026-02-03T03:33:46.154Z] [INFO] ℹ️ 출근 체크 일괄 저장 성공 - Context: { - "date": "2026-02-03", - "saved": 9 -} -[2026-02-03T03:33:46.155Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/checkins", - "statusCode": 200, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:34:05.398Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T03:34:14.226Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:34:14.305Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "1200", - "nx": 57, - "ny": 119 -} -[2026-02-03T03:34:14.314Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:34:14.327Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:34:14.407Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-03", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:34:14.427Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 2.6, - "humidity": 43, - "windSpeed": 1.8, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T03:34:14.432Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 2.6, - "humidity": 43, - "windSpeed": 1.8, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T03:34:14.434Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "18ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:34:14.437Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "135ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:34:15.271Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:34:17.916Z] [INFO] ℹ️ 출근 체크 목록 조회 요청 - Context: { - "date": "2026-02-03" -} -[2026-02-03T03:34:17.921Z] [INFO] ℹ️ 출근 체크 목록 조회 성공 - Context: { - "date": "2026-02-03", - "count": 10 -} -[2026-02-03T03:34:17.927Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/attendance/records?date=2026-02-03", - "method": "GET" -} -[2026-02-03T03:34:17.928Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/attendance/records?date=2026-02-03", - "statusCode": 404, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:34:17.930Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "1200", - "nx": 57, - "ny": 119 -} -[2026-02-03T03:34:17.933Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "22ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:34:17.934Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/checkin-list?date=2026-02-03", - "statusCode": 200, - "duration": "21ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:34:18.042Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 2.6, - "humidity": 43, - "windSpeed": 1.8, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T03:34:18.045Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 2.6, - "humidity": 43, - "windSpeed": 1.8, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T03:34:18.048Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "119ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:34:18.778Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:34:34.282Z] [INFO] ℹ️ 출근 체크 목록 조회 요청 - Context: { - "date": "2026-02-03" -} -[2026-02-03T03:34:34.283Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/attendance/records?date=2026-02-03", - "method": "GET" -} -[2026-02-03T03:34:34.284Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/attendance/records?date=2026-02-03", - "statusCode": 404, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:34:34.286Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "1200", - "nx": 57, - "ny": 119 -} -[2026-02-03T03:34:34.288Z] [INFO] ℹ️ 출근 체크 목록 조회 성공 - Context: { - "date": "2026-02-03", - "count": 10 -} -[2026-02-03T03:34:34.290Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:34:34.292Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/checkin-list?date=2026-02-03", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:34:34.393Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 2.6, - "humidity": 43, - "windSpeed": 1.8, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T03:34:34.395Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 2.6, - "humidity": 43, - "windSpeed": 1.8, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T03:34:34.396Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "111ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:34:35.037Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:34:35.500Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T03:35:05.621Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T03:35:35.687Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T03:36:05.777Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T03:36:33.606Z] [INFO] ℹ️ 출근 체크 목록 조회 요청 - Context: { - "date": "2026-02-03" -} -[2026-02-03T03:36:33.613Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "1200", - "nx": 57, - "ny": 119 -} -[2026-02-03T03:36:33.618Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/attendance/records?date=2026-02-03", - "method": "GET" -} -[2026-02-03T03:36:33.619Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/attendance/records?date=2026-02-03", - "statusCode": 404, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:36:33.621Z] [INFO] ℹ️ 출근 체크 목록 조회 성공 - Context: { - "date": "2026-02-03", - "count": 10 -} -[2026-02-03T03:36:33.622Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "20ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:36:33.623Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/checkin-list?date=2026-02-03", - "statusCode": 200, - "duration": "19ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:36:34.307Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:36:34.563Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 2.8, - "humidity": 44, - "windSpeed": 1.9, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T03:36:34.566Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 2.8, - "humidity": 44, - "windSpeed": 1.9, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T03:36:34.569Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "958ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:36:35.860Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T03:36:39.592Z] [INFO] ℹ️ 출근 체크 일괄 저장 요청 - Context: { - "date": "2026-02-03", - "count": 9 -} -[2026-02-03T03:36:39.607Z] [INFO] ℹ️ 출근 체크 일괄 저장 성공 - Context: { - "date": "2026-02-03", - "saved": 9 -} -[2026-02-03T03:36:39.609Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/checkins", - "statusCode": 200, - "duration": "21ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:36:44.910Z] [INFO] ℹ️ 출근 체크 목록 조회 요청 - Context: { - "date": "2026-02-03" -} -[2026-02-03T03:36:44.914Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/attendance/records?date=2026-02-03", - "method": "GET" -} -[2026-02-03T03:36:44.916Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/attendance/records?date=2026-02-03", - "statusCode": 404, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:36:44.919Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "1200", - "nx": 57, - "ny": 119 -} -[2026-02-03T03:36:44.922Z] [INFO] ℹ️ 출근 체크 목록 조회 성공 - Context: { - "date": "2026-02-03", - "count": 10 -} -[2026-02-03T03:36:44.925Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "20ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:36:44.928Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/checkin-list?date=2026-02-03", - "statusCode": 200, - "duration": "20ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:36:45.721Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:36:49.926Z] [ERROR] ❌ 날씨 API 호출 실패 - Context: { - "error": "timeout of 5000ms exceeded" -} -[2026-02-03T03:36:49.932Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 20, - "humidity": 50, - "windSpeed": 2, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": "clear", - "isDefault": true - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T03:36:49.936Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "5019ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:37:05.967Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T03:37:36.055Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T03:38:06.133Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T03:38:36.210Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T03:38:39.084Z] [INFO] ℹ️ 출근 체크 목록 조회 요청 - Context: { - "date": "2026-02-03" -} -[2026-02-03T03:38:39.088Z] [INFO] ℹ️ 일일 근태 기록 조회 요청 - Context: { - "date": "2026-02-03", - "workerId": null -} -[2026-02-03T03:38:39.089Z] [INFO] ℹ️ 출근 체크 목록 조회 성공 - Context: { - "date": "2026-02-03", - "count": 10 -} -[2026-02-03T03:38:39.091Z] [ERROR] ❌ 일일 근태 기록 조회 실패 - Context: { - "date": "2026-02-03", - "error": "Unknown column 'vt.hours_deduction' in 'field list'" -} -[2026-02-03T03:38:39.092Z] [ERROR] ❌ 근태 기록 조회 중 데이터베이스 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 근태 기록 조회 중 데이터베이스 오류가 발생했습니다\n at Object.getDailyAttendanceRecordsService (/usr/src/app/services/attendanceService.js:62:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:32:16", - "url": "/api/attendance/daily-records?date=2026-02-03", - "method": "GET", - "user": "admin" -} -[2026-02-03T03:38:39.092Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/attendance/daily-records?date=2026-02-03", - "statusCode": 500, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:38:39.094Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "1200", - "nx": 57, - "ny": 119 -} -[2026-02-03T03:38:39.098Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/checkin-list?date=2026-02-03", - "statusCode": 200, - "duration": "15ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:38:39.100Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "17ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:38:39.795Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 2.8, - "humidity": 44, - "windSpeed": 1.9, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T03:38:39.797Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 2.8, - "humidity": 44, - "windSpeed": 1.9, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T03:38:39.798Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "705ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:38:39.894Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:38:42.005Z] [INFO] ℹ️ 출근 체크 일괄 저장 요청 - Context: { - "date": "2026-02-03", - "count": 9 -} -[2026-02-03T03:38:42.017Z] [INFO] ℹ️ 출근 체크 일괄 저장 성공 - Context: { - "date": "2026-02-03", - "saved": 9 -} -[2026-02-03T03:38:42.018Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/checkins", - "statusCode": 200, - "duration": "17ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:38:46.626Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "1200", - "nx": 57, - "ny": 119 -} -[2026-02-03T03:38:46.648Z] [INFO] ℹ️ 출근 체크 목록 조회 요청 - Context: { - "date": "2026-02-03" -} -[2026-02-03T03:38:46.650Z] [INFO] ℹ️ 출근 체크 목록 조회 성공 - Context: { - "date": "2026-02-03", - "count": 10 -} -[2026-02-03T03:38:46.652Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/attendance/records?date=2026-02-03", - "method": "GET" -} -[2026-02-03T03:38:46.652Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/attendance/records?date=2026-02-03", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:38:46.654Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/checkin-list?date=2026-02-03", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:38:46.656Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:38:47.072Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 2.8, - "humidity": 44, - "windSpeed": 1.9, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T03:38:47.075Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 2.8, - "humidity": 44, - "windSpeed": 1.9, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T03:38:47.079Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "456ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:38:47.451Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:38:51.201Z] [INFO] ℹ️ 출근 체크 목록 조회 요청 - Context: { - "date": "2026-02-03" -} -[2026-02-03T03:38:51.206Z] [INFO] ℹ️ 일일 근태 기록 조회 요청 - Context: { - "date": "2026-02-03", - "workerId": null -} -[2026-02-03T03:38:51.209Z] [ERROR] ❌ 일일 근태 기록 조회 실패 - Context: { - "date": "2026-02-03", - "error": "Unknown column 'vt.hours_deduction' in 'field list'" -} -[2026-02-03T03:38:51.210Z] [ERROR] ❌ 근태 기록 조회 중 데이터베이스 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 근태 기록 조회 중 데이터베이스 오류가 발생했습니다\n at Object.getDailyAttendanceRecordsService (/usr/src/app/services/attendanceService.js:62:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:32:16", - "url": "/api/attendance/daily-records?date=2026-02-03", - "method": "GET", - "user": "admin" -} -[2026-02-03T03:38:51.211Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/attendance/daily-records?date=2026-02-03", - "statusCode": 500, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:38:51.213Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "1200", - "nx": 57, - "ny": 119 -} -[2026-02-03T03:38:51.215Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "20ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:38:51.216Z] [INFO] ℹ️ 출근 체크 목록 조회 성공 - Context: { - "date": "2026-02-03", - "count": 10 -} -[2026-02-03T03:38:51.218Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/checkin-list?date=2026-02-03", - "statusCode": 200, - "duration": "21ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:38:51.450Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 2.8, - "humidity": 44, - "windSpeed": 1.9, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T03:38:51.452Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 2.8, - "humidity": 44, - "windSpeed": 1.9, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T03:38:51.455Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "243ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:38:52.122Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:39:06.310Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T03:39:17.280Z] [WARN] ⚠️ 인증 실패: 유효하지 않은 토큰 - Context: { - "error": "jwt malformed", - "path": "/", - "ip": "::ffff:185.199.108.133" -} -[2026-02-03T03:39:17.281Z] [WARN] ⚠️ 유효하지 않은 토큰입니다 - Context: { - "code": "AUTHENTICATION_ERROR", - "url": "/api/attendance/daily-records?date=2026-02-03", - "method": "GET", - "user": "anonymous" -} -[2026-02-03T03:39:17.283Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/attendance/daily-records?date=2026-02-03", - "statusCode": 401, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-02-03T03:39:36.408Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T03:40:06.491Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T03:40:26.621Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2026-02-03T03:40:26.623Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-02-03T03:40:27.077Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-02-03T03:40:27.147Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-02-03T03:40:27.219Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2026-02-03T03:40:27.225Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-02-03T03:40:31.957Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T03:41:02.049Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T03:41:26.300Z] [INFO] ℹ️ 출근 체크 목록 조회 요청 - Context: { - "date": "2026-02-03" -} -[2026-02-03T03:41:26.306Z] [INFO] ℹ️ 일일 근태 기록 조회 요청 - Context: { - "date": "2026-02-03", - "workerId": null -} -[2026-02-03T03:41:26.358Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "1200", - "nx": 57, - "ny": 119 -} -[2026-02-03T03:41:26.446Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "154ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:41:26.448Z] [INFO] ℹ️ MariaDB 연결 성공 - Context: { - "connection": "db:3306", - "database": "hyungi", - "connectionLimit": 10 -} -[2026-02-03T03:41:26.453Z] [INFO] ℹ️ 출근 체크 목록 조회 성공 - Context: { - "date": "2026-02-03", - "count": 10 -} -[2026-02-03T03:41:26.456Z] [INFO] ℹ️ 일일 근태 기록 조회 성공 - Context: { - "date": "2026-02-03", - "count": 9 -} -[2026-02-03T03:41:26.458Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/checkin-list?date=2026-02-03", - "statusCode": 200, - "duration": "161ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:41:26.460Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/daily-records?date=2026-02-03", - "statusCode": 200, - "duration": "155ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:41:26.918Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:41:27.608Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 2.8, - "humidity": 44, - "windSpeed": 1.9, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T03:41:27.614Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 2.8, - "humidity": 44, - "windSpeed": 1.9, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T03:41:27.620Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "1306ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:41:30.569Z] [INFO] ℹ️ 출근 체크 목록 조회 요청 - Context: { - "date": "2026-02-03" -} -[2026-02-03T03:41:30.573Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "1200", - "nx": 57, - "ny": 119 -} -[2026-02-03T03:41:30.580Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/attendance/records?date=2026-02-03", - "method": "GET" -} -[2026-02-03T03:41:30.582Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/attendance/records?date=2026-02-03", - "statusCode": 404, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:41:30.583Z] [INFO] ℹ️ 출근 체크 목록 조회 성공 - Context: { - "date": "2026-02-03", - "count": 10 -} -[2026-02-03T03:41:30.584Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "20ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:41:30.586Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/checkin-list?date=2026-02-03", - "statusCode": 200, - "duration": "21ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:41:30.895Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 2.8, - "humidity": 44, - "windSpeed": 1.9, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T03:41:30.900Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 2.8, - "humidity": 44, - "windSpeed": 1.9, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T03:41:30.904Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "334ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:41:31.275Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:41:32.164Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T03:41:34.347Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "1200", - "nx": 57, - "ny": 119 -} -[2026-02-03T03:41:34.353Z] [INFO] ℹ️ 출근 체크 목록 조회 요청 - Context: { - "date": "2026-02-03" -} -[2026-02-03T03:41:34.355Z] [INFO] ℹ️ 일일 근태 기록 조회 요청 - Context: { - "date": "2026-02-03", - "workerId": null -} -[2026-02-03T03:41:34.356Z] [INFO] ℹ️ 출근 체크 목록 조회 성공 - Context: { - "date": "2026-02-03", - "count": 10 -} -[2026-02-03T03:41:34.358Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/checkin-list?date=2026-02-03", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:41:34.360Z] [INFO] ℹ️ 일일 근태 기록 조회 성공 - Context: { - "date": "2026-02-03", - "count": 9 -} -[2026-02-03T03:41:34.361Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:41:34.363Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/daily-records?date=2026-02-03", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:41:35.073Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:41:36.275Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 2.8, - "humidity": 44, - "windSpeed": 1.9, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T03:41:36.280Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 2.8, - "humidity": 44, - "windSpeed": 1.9, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T03:41:36.286Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "1942ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:41:51.692Z] [INFO] ℹ️ 출근 체크 목록 조회 요청 - Context: { - "date": "2026-02-03" -} -[2026-02-03T03:41:51.698Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/attendance/records?date=2026-02-03", - "method": "GET" -} -[2026-02-03T03:41:51.700Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/attendance/records?date=2026-02-03", - "statusCode": 404, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:41:51.701Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "1200", - "nx": 57, - "ny": 119 -} -[2026-02-03T03:41:51.704Z] [INFO] ℹ️ 출근 체크 목록 조회 성공 - Context: { - "date": "2026-02-03", - "count": 10 -} -[2026-02-03T03:41:51.707Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/checkin-list?date=2026-02-03", - "statusCode": 200, - "duration": "18ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:41:51.708Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "22ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:41:52.608Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:41:52.919Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 2.8, - "humidity": 44, - "windSpeed": 1.9, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T03:41:52.922Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 2.8, - "humidity": 44, - "windSpeed": 1.9, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T03:41:52.925Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "1225ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:42:02.253Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T03:42:32.330Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T03:43:02.409Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T03:43:17.211Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "19ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:43:17.286Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "1200", - "nx": 57, - "ny": 119 -} -[2026-02-03T03:43:17.309Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "1200", - "nx": 57, - "ny": 119 -} -[2026-02-03T03:43:17.317Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects?is_active=1", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:43:17.429Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 2.8, - "humidity": 44, - "windSpeed": 1.9, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T03:43:17.433Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/safety-checks", - "statusCode": 200, - "duration": "15ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:43:17.434Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 2.8, - "humidity": 44, - "windSpeed": 1.9, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T03:43:17.438Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "161ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:43:17.455Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:43:17.465Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 2.8, - "humidity": 44, - "windSpeed": 1.9, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T03:43:17.467Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 2.8, - "humidity": 44, - "windSpeed": 1.9, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T03:43:17.469Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "161ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:43:17.471Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks/active/list", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:43:17.484Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?is_active=true", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:43:17.489Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/active/list", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:43:17.504Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-03", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:43:18.178Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:43:21.085Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:43:21.163Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "1200", - "nx": 57, - "ny": 119 -} -[2026-02-03T03:43:21.171Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "1200", - "nx": 57, - "ny": 119 -} -[2026-02-03T03:43:21.178Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:43:21.239Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:43:21.263Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:43:21.271Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 2.8, - "humidity": 44, - "windSpeed": 1.9, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T03:43:21.272Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 2.8, - "humidity": 44, - "windSpeed": 1.9, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T03:43:21.273Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:43:21.274Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "115ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:43:21.281Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues/categories/type/nonconformity", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:43:21.288Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues/items", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:43:21.297Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:43:21.307Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues?start_date=2026-02-03&end_date=2026-02-03", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:43:21.315Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues?start_date=2026-02-02&end_date=2026-02-02", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:43:21.321Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues?start_date=2026-01-30&end_date=2026-01-30", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:43:21.327Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues?start_date=2026-01-29&end_date=2026-01-29", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:43:21.334Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues?start_date=2026-01-25&end_date=2026-01-25", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:43:22.164Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:43:22.168Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:43:22.306Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 2.8, - "humidity": 44, - "windSpeed": 1.9, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T03:43:22.310Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 2.8, - "humidity": 44, - "windSpeed": 1.9, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T03:43:22.313Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "1145ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:43:32.509Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T03:44:02.598Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T03:44:32.689Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T03:45:02.781Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T03:45:32.881Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T03:46:02.976Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T03:46:33.072Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T03:47:03.178Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T03:47:26.008Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2026-02-03T03:47:26.010Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-02-03T03:47:26.483Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-02-03T03:47:26.563Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-02-03T03:47:26.634Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2026-02-03T03:47:26.640Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-02-03T03:47:31.378Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T03:48:01.460Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T03:48:31.585Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T03:49:01.678Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T03:49:31.750Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T03:50:01.834Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T03:50:31.929Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T03:51:02.012Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T03:51:32.090Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T03:52:02.176Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T03:52:14.430Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/attendance/attendance-types", - "method": "GET" -} -[2026-02-03T03:52:18.555Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/auth/login", - "method": "POST" -} -[2026-02-03T03:52:26.573Z] [WARN] ⚠️ 사용자명과 비밀번호를 입력해주세요. - Context: { - "code": "VALIDATION_ERROR", - "url": "/api/auth/login", - "method": "POST", - "user": "anonymous" -} -[2026-02-03T03:52:26.573Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 400, - "duration": "1ms", - "ip": "::1", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-02-03T03:52:31.094Z] [ERROR] ❌ 서버 오류가 발생했습니다. - Context: { - "code": "INTERNAL_ERROR", - "stack": "AppError: 서버 오류가 발생했습니다.\n at errorHandler (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/middlewares/errorHandler.js:51:13)\n at Layer.handle_error (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/router/layer.js:71:5)\n at trim_prefix (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/router/index.js:326:13)\n at /Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/router/index.js:286:9\n at router.process_params (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/router/index.js:346:12)\n at next (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/router/index.js:280:10)\n at Layer.handle_error (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/router/layer.js:67:12)\n at trim_prefix (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/router/index.js:326:13)\n at /Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/router/index.js:286:9\n at router.process_params (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/router/index.js:346:12)", - "url": "/api/auth/login", - "method": "POST", - "user": "anonymous" -} -[2026-02-03T03:52:31.094Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 500, - "duration": "76ms", - "ip": "::1", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-02-03T03:52:32.281Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T03:53:02.409Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T03:53:32.513Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T03:54:02.629Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T03:54:32.719Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T03:54:44.785Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "1200", - "nx": 57, - "ny": 119 -} -[2026-02-03T03:54:44.853Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "1200", - "nx": 57, - "ny": 119 -} -[2026-02-03T03:54:44.988Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 2.9, - "humidity": 42, - "windSpeed": 1.2, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T03:54:45.000Z] [INFO] ℹ️ MariaDB 연결 성공 - Context: { - "connection": "db:3306", - "database": "hyungi", - "connectionLimit": 10 -} -[2026-02-03T03:54:45.003Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 2.9, - "humidity": 42, - "windSpeed": 1.2, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T03:54:45.006Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "352ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:54:47.276Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 2.9, - "humidity": 42, - "windSpeed": 1.2, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T03:54:47.284Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 2.9, - "humidity": 42, - "windSpeed": 1.2, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T03:54:49.126Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "1200", - "nx": 57, - "ny": 119 -} -[2026-02-03T03:54:49.134Z] [INFO] ℹ️ 일일 근태 기록 조회 요청 - Context: { - "date": "2026-02-03", - "workerId": null -} -[2026-02-03T03:54:49.138Z] [INFO] ℹ️ 출근 체크 목록 조회 요청 - Context: { - "date": "2026-02-03" -} -[2026-02-03T03:54:49.151Z] [INFO] ℹ️ 출근 체크 목록 조회 성공 - Context: { - "date": "2026-02-03", - "count": 10 -} -[2026-02-03T03:54:49.154Z] [INFO] ℹ️ 일일 근태 기록 조회 성공 - Context: { - "date": "2026-02-03", - "count": 9 -} -[2026-02-03T03:54:49.156Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/checkin-list?date=2026-02-03", - "statusCode": 200, - "duration": "19ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:54:49.157Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/daily-records?date=2026-02-03", - "statusCode": 200, - "duration": "24ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:54:49.158Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "35ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:54:49.214Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 2.9, - "humidity": 44, - "windSpeed": 1.2, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T03:54:49.217Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 2.9, - "humidity": 44, - "windSpeed": 1.2, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T03:54:49.220Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "95ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:54:49.792Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:54:56.846Z] [INFO] ℹ️ 일일 근태 기록 조회 요청 - Context: { - "date": "2026-02-03", - "workerId": null -} -[2026-02-03T03:54:56.850Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "1200", - "nx": 57, - "ny": 119 -} -[2026-02-03T03:54:56.854Z] [INFO] ℹ️ 일일 근태 기록 조회 성공 - Context: { - "date": "2026-02-03", - "count": 9 -} -[2026-02-03T03:54:56.858Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/daily-records?date=2026-02-03", - "statusCode": 200, - "duration": "16ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:54:56.860Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "20ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:54:57.263Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 2.9, - "humidity": 44, - "windSpeed": 1.2, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T03:54:57.266Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 2.9, - "humidity": 44, - "windSpeed": 1.2, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T03:54:57.269Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "421ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:54:57.636Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:55:02.821Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T03:55:18.141Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-02-03", - "worker_id": 12 -} -[2026-02-03T03:55:18.145Z] [ERROR] ❌ 근태 기록 저장 실패 - Context: { - "record_date": "2026-02-03", - "worker_id": 12, - "error": "Unknown column 'work_attendance_type_id' in 'field list'" -} -[2026-02-03T03:55:18.147Z] [ERROR] ❌ 근태 기록 저장 중 데이터베이스 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 근태 기록 저장 중 데이터베이스 오류가 발생했습니다\n at Object.upsertAttendanceRecordService (/usr/src/app/services/attendanceService.js:109:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:50:18", - "url": "/api/attendance/records", - "method": "POST", - "user": "admin" -} -[2026-02-03T03:55:18.148Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 500, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:55:18.161Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-02-03", - "worker_id": 10 -} -[2026-02-03T03:55:18.163Z] [ERROR] ❌ 근태 기록 저장 실패 - Context: { - "record_date": "2026-02-03", - "worker_id": 10, - "error": "Unknown column 'work_attendance_type_id' in 'field list'" -} -[2026-02-03T03:55:18.164Z] [ERROR] ❌ 근태 기록 저장 중 데이터베이스 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 근태 기록 저장 중 데이터베이스 오류가 발생했습니다\n at Object.upsertAttendanceRecordService (/usr/src/app/services/attendanceService.js:109:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:50:18", - "url": "/api/attendance/records", - "method": "POST", - "user": "admin" -} -[2026-02-03T03:55:18.165Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 500, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:55:18.171Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-02-03", - "worker_id": 9 -} -[2026-02-03T03:55:18.173Z] [ERROR] ❌ 근태 기록 저장 실패 - Context: { - "record_date": "2026-02-03", - "worker_id": 9, - "error": "Unknown column 'work_attendance_type_id' in 'field list'" -} -[2026-02-03T03:55:18.175Z] [ERROR] ❌ 근태 기록 저장 중 데이터베이스 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 근태 기록 저장 중 데이터베이스 오류가 발생했습니다\n at Object.upsertAttendanceRecordService (/usr/src/app/services/attendanceService.js:109:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:50:18", - "url": "/api/attendance/records", - "method": "POST", - "user": "admin" -} -[2026-02-03T03:55:18.176Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 500, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:55:18.182Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-02-03", - "worker_id": 8 -} -[2026-02-03T03:55:18.188Z] [ERROR] ❌ 근태 기록 저장 실패 - Context: { - "record_date": "2026-02-03", - "worker_id": 8, - "error": "Unknown column 'work_attendance_type_id' in 'field list'" -} -[2026-02-03T03:55:18.189Z] [ERROR] ❌ 근태 기록 저장 중 데이터베이스 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 근태 기록 저장 중 데이터베이스 오류가 발생했습니다\n at Object.upsertAttendanceRecordService (/usr/src/app/services/attendanceService.js:109:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:50:18", - "url": "/api/attendance/records", - "method": "POST", - "user": "admin" -} -[2026-02-03T03:55:18.190Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 500, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:55:18.195Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-02-03", - "worker_id": 6 -} -[2026-02-03T03:55:18.196Z] [ERROR] ❌ 근태 기록 저장 실패 - Context: { - "record_date": "2026-02-03", - "worker_id": 6, - "error": "Unknown column 'work_attendance_type_id' in 'field list'" -} -[2026-02-03T03:55:18.197Z] [ERROR] ❌ 근태 기록 저장 중 데이터베이스 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 근태 기록 저장 중 데이터베이스 오류가 발생했습니다\n at Object.upsertAttendanceRecordService (/usr/src/app/services/attendanceService.js:109:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:50:18", - "url": "/api/attendance/records", - "method": "POST", - "user": "admin" -} -[2026-02-03T03:55:18.197Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 500, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:55:18.202Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-02-03", - "worker_id": 5 -} -[2026-02-03T03:55:18.203Z] [ERROR] ❌ 근태 기록 저장 실패 - Context: { - "record_date": "2026-02-03", - "worker_id": 5, - "error": "Unknown column 'work_attendance_type_id' in 'field list'" -} -[2026-02-03T03:55:18.203Z] [ERROR] ❌ 근태 기록 저장 중 데이터베이스 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 근태 기록 저장 중 데이터베이스 오류가 발생했습니다\n at Object.upsertAttendanceRecordService (/usr/src/app/services/attendanceService.js:109:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:50:18", - "url": "/api/attendance/records", - "method": "POST", - "user": "admin" -} -[2026-02-03T03:55:18.204Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 500, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:55:18.209Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-02-03", - "worker_id": 4 -} -[2026-02-03T03:55:18.210Z] [ERROR] ❌ 근태 기록 저장 실패 - Context: { - "record_date": "2026-02-03", - "worker_id": 4, - "error": "Unknown column 'work_attendance_type_id' in 'field list'" -} -[2026-02-03T03:55:18.210Z] [ERROR] ❌ 근태 기록 저장 중 데이터베이스 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 근태 기록 저장 중 데이터베이스 오류가 발생했습니다\n at Object.upsertAttendanceRecordService (/usr/src/app/services/attendanceService.js:109:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:50:18", - "url": "/api/attendance/records", - "method": "POST", - "user": "admin" -} -[2026-02-03T03:55:18.211Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 500, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:55:18.216Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-02-03", - "worker_id": 3 -} -[2026-02-03T03:55:18.217Z] [ERROR] ❌ 근태 기록 저장 실패 - Context: { - "record_date": "2026-02-03", - "worker_id": 3, - "error": "Unknown column 'work_attendance_type_id' in 'field list'" -} -[2026-02-03T03:55:18.217Z] [ERROR] ❌ 근태 기록 저장 중 데이터베이스 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 근태 기록 저장 중 데이터베이스 오류가 발생했습니다\n at Object.upsertAttendanceRecordService (/usr/src/app/services/attendanceService.js:109:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:50:18", - "url": "/api/attendance/records", - "method": "POST", - "user": "admin" -} -[2026-02-03T03:55:18.218Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 500, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:55:18.222Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-02-03", - "worker_id": 2 -} -[2026-02-03T03:55:18.223Z] [ERROR] ❌ 근태 기록 저장 실패 - Context: { - "record_date": "2026-02-03", - "worker_id": 2, - "error": "Unknown column 'work_attendance_type_id' in 'field list'" -} -[2026-02-03T03:55:18.224Z] [ERROR] ❌ 근태 기록 저장 중 데이터베이스 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 근태 기록 저장 중 데이터베이스 오류가 발생했습니다\n at Object.upsertAttendanceRecordService (/usr/src/app/services/attendanceService.js:109:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:50:18", - "url": "/api/attendance/records", - "method": "POST", - "user": "admin" -} -[2026-02-03T03:55:18.224Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 500, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:55:32.912Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T03:56:03.005Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T03:56:33.089Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T03:57:03.182Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T03:57:33.282Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T03:58:03.367Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T03:58:06.588Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2026-02-03T03:58:06.591Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-02-03T03:58:07.070Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-02-03T03:58:07.151Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-02-03T03:58:07.222Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2026-02-03T03:58:07.230Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-02-03T03:58:11.970Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T03:58:31.390Z] [INFO] ℹ️ 일일 근태 기록 조회 요청 - Context: { - "date": "2026-02-03", - "workerId": null -} -[2026-02-03T03:58:31.486Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "1200", - "nx": 57, - "ny": 119 -} -[2026-02-03T03:58:31.525Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "144ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:58:31.527Z] [INFO] ℹ️ MariaDB 연결 성공 - Context: { - "connection": "db:3306", - "database": "hyungi", - "connectionLimit": 10 -} -[2026-02-03T03:58:31.534Z] [INFO] ℹ️ 일일 근태 기록 조회 성공 - Context: { - "date": "2026-02-03", - "count": 9 -} -[2026-02-03T03:58:31.535Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/daily-records?date=2026-02-03", - "statusCode": 200, - "duration": "146ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:58:32.093Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 2.9, - "humidity": 44, - "windSpeed": 1.2, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T03:58:32.108Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 2.9, - "humidity": 44, - "windSpeed": 1.2, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T03:58:32.114Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "696ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:58:32.226Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:58:33.421Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-02-03", - "worker_id": 12 -} -[2026-02-03T03:58:33.425Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-02-03", - "worker_id": 12 -} -[2026-02-03T03:58:33.426Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:58:33.435Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-02-03", - "worker_id": 10 -} -[2026-02-03T03:58:33.437Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-02-03", - "worker_id": 10 -} -[2026-02-03T03:58:33.437Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:58:33.444Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-02-03", - "worker_id": 9 -} -[2026-02-03T03:58:33.445Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-02-03", - "worker_id": 9 -} -[2026-02-03T03:58:33.445Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:58:33.451Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-02-03", - "worker_id": 8 -} -[2026-02-03T03:58:33.452Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-02-03", - "worker_id": 8 -} -[2026-02-03T03:58:33.452Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:58:33.456Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-02-03", - "worker_id": 6 -} -[2026-02-03T03:58:33.458Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-02-03", - "worker_id": 6 -} -[2026-02-03T03:58:33.459Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:58:33.466Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-02-03", - "worker_id": 5 -} -[2026-02-03T03:58:33.467Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-02-03", - "worker_id": 5 -} -[2026-02-03T03:58:33.467Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:58:33.471Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-02-03", - "worker_id": 4 -} -[2026-02-03T03:58:33.472Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-02-03", - "worker_id": 4 -} -[2026-02-03T03:58:33.473Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:58:33.476Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-02-03", - "worker_id": 3 -} -[2026-02-03T03:58:33.477Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-02-03", - "worker_id": 3 -} -[2026-02-03T03:58:33.478Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:58:33.481Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-02-03", - "worker_id": 2 -} -[2026-02-03T03:58:33.482Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-02-03", - "worker_id": 2 -} -[2026-02-03T03:58:33.482Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:58:35.495Z] [INFO] ℹ️ 일일 근태 기록 조회 요청 - Context: { - "date": "2026-02-03", - "workerId": null -} -[2026-02-03T03:58:35.499Z] [INFO] ℹ️ 일일 근태 기록 조회 성공 - Context: { - "date": "2026-02-03", - "count": 9 -} -[2026-02-03T03:58:35.502Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:58:35.503Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/daily-records?date=2026-02-03", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:58:42.138Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T03:59:12.246Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T03:59:42.334Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T04:00:12.439Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T04:00:42.527Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T04:01:06.445Z] [INFO] ℹ️ 일일 근태 기록 조회 요청 - Context: { - "date": "2026-02-03", - "workerId": null -} -[2026-02-03T04:01:06.454Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "1200", - "nx": 57, - "ny": 119 -} -[2026-02-03T04:01:06.462Z] [INFO] ℹ️ 일일 근태 기록 조회 성공 - Context: { - "date": "2026-02-03", - "count": 9 -} -[2026-02-03T04:01:06.466Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/daily-records?date=2026-02-03", - "statusCode": 200, - "duration": "22ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:01:06.471Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "30ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:01:07.187Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 2.9, - "humidity": 44, - "windSpeed": 1.2, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T04:01:07.193Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 2.9, - "humidity": 44, - "windSpeed": 1.2, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T04:01:07.200Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "752ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:01:07.311Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:01:12.640Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T04:01:42.775Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T04:02:12.879Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T04:02:43.023Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T04:03:13.109Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T04:03:43.195Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T04:04:13.283Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T04:04:43.362Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T04:05:13.462Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T04:05:43.539Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T04:06:13.626Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T04:06:43.722Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T04:07:13.825Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T04:07:43.913Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T04:07:49.092Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2026-02-03T04:07:49.094Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-02-03T04:07:49.530Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-02-03T04:07:49.599Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-02-03T04:07:49.672Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2026-02-03T04:07:49.678Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-02-03T04:07:54.426Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T04:08:24.527Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T04:08:44.347Z] [INFO] ℹ️ 일일 근태 기록 조회 요청 - Context: { - "date": "2026-02-03", - "workerId": null -} -[2026-02-03T04:08:44.400Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "1200", - "nx": 57, - "ny": 119 -} -[2026-02-03T04:08:44.447Z] [INFO] ℹ️ MariaDB 연결 성공 - Context: { - "connection": "db:3306", - "database": "hyungi", - "connectionLimit": 10 -} -[2026-02-03T04:08:44.450Z] [INFO] ℹ️ 일일 근태 기록 조회 성공 - Context: { - "date": "2026-02-03", - "count": 0 -} -[2026-02-03T04:08:44.451Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/daily-records?date=2026-02-03", - "statusCode": 200, - "duration": "106ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:08:44.457Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "116ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:08:44.556Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 2.9, - "humidity": 44, - "windSpeed": 1.2, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T04:08:44.558Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 2.9, - "humidity": 44, - "windSpeed": 1.2, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T04:08:44.560Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "206ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:08:44.985Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:08:54.604Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T04:09:00.409Z] [INFO] ℹ️ 일일 근태 기록 조회 요청 - Context: { - "date": "2026-02-03", - "workerId": null -} -[2026-02-03T04:09:00.412Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "1200", - "nx": 57, - "ny": 119 -} -[2026-02-03T04:09:00.416Z] [INFO] ℹ️ 출근 체크 목록 조회 요청 - Context: { - "date": "2026-02-03" -} -[2026-02-03T04:09:00.418Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "22ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:09:00.421Z] [INFO] ℹ️ 일일 근태 기록 조회 성공 - Context: { - "date": "2026-02-03", - "count": 0 -} -[2026-02-03T04:09:00.423Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/daily-records?date=2026-02-03", - "statusCode": 200, - "duration": "16ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:09:00.425Z] [INFO] ℹ️ 출근 체크 목록 조회 성공 - Context: { - "date": "2026-02-03", - "count": 10 -} -[2026-02-03T04:09:00.426Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/checkin-list?date=2026-02-03", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:09:00.528Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 2.9, - "humidity": 44, - "windSpeed": 1.2, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T04:09:00.530Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 2.9, - "humidity": 44, - "windSpeed": 1.2, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T04:09:00.533Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "123ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:09:01.110Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:09:08.222Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:09:08.306Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "1200", - "nx": 57, - "ny": 119 -} -[2026-02-03T04:09:08.468Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 2.9, - "humidity": 44, - "windSpeed": 1.2, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T04:09:08.471Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 2.9, - "humidity": 44, - "windSpeed": 1.2, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T04:09:08.473Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "170ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:09:08.559Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:09:08.642Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:09:08.682Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-03", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:09:08.705Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:09:09.202Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:09:24.758Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T04:09:28.137Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "23ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:09:28.492Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "1200", - "nx": 57, - "ny": 119 -} -[2026-02-03T04:09:29.100Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:09:29.521Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 2.9, - "humidity": 44, - "windSpeed": 1.2, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T04:09:29.526Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 2.9, - "humidity": 44, - "windSpeed": 1.2, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T04:09:29.532Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "1042ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:09:46.442Z] [INFO] ℹ️ 작업자 수정 후 캐시 무효화 - Context: { - "worker_id": 1 -} -[2026-02-03T04:09:46.450Z] [INFO] ℹ️ 작업자 수정 성공 - Context: { - "worker_id": 1 -} -[2026-02-03T04:09:46.452Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "PUT", - "url": "/api/workers/1", - "statusCode": 200, - "duration": "29ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:09:46.487Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:09:52.583Z] [INFO] ℹ️ 작업자 계정 생성 성공 - Context: { - "worker_id": 2, - "username": "im.yeonggyu" -} -[2026-02-03T04:09:52.584Z] [INFO] ℹ️ 작업자 수정 후 캐시 무효화 - Context: { - "worker_id": 2 -} -[2026-02-03T04:09:52.586Z] [INFO] ℹ️ 작업자 수정 성공 - Context: { - "worker_id": 2 -} -[2026-02-03T04:09:52.589Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "PUT", - "url": "/api/workers/2", - "statusCode": 200, - "duration": "81ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:09:52.624Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "20ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:09:54.901Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T04:09:57.265Z] [INFO] ℹ️ 작업자 계정 생성 성공 - Context: { - "worker_id": 3, - "username": "ban.chiwon" -} -[2026-02-03T04:09:57.266Z] [INFO] ℹ️ 작업자 수정 후 캐시 무효화 - Context: { - "worker_id": 3 -} -[2026-02-03T04:09:57.266Z] [INFO] ℹ️ 작업자 수정 성공 - Context: { - "worker_id": 3 -} -[2026-02-03T04:09:57.267Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "PUT", - "url": "/api/workers/3", - "statusCode": 200, - "duration": "71ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:09:57.280Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:10:08.228Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:10:08.310Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "1300", - "nx": 57, - "ny": 119 -} -[2026-02-03T04:10:08.348Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "1300", - "nx": 57, - "ny": 119 -} -[2026-02-03T04:10:08.358Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects?is_active=1", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:10:08.442Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/safety-checks", - "statusCode": 200, - "duration": "17ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:10:08.449Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:10:08.457Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks/active/list", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:10:08.470Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?is_active=true", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:10:08.479Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/active/list", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:10:08.487Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-03", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:10:08.555Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 3.5, - "humidity": 41, - "windSpeed": 0.7, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T04:10:08.557Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 3.5, - "humidity": 41, - "windSpeed": 0.7, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T04:10:08.561Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "216ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:10:09.217Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:10:10.996Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 3.5, - "humidity": 41, - "windSpeed": 0.7, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T04:10:11.002Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 3.5, - "humidity": 41, - "windSpeed": 0.7, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T04:10:11.006Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "2699ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:10:24.975Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T04:10:30.798Z] [INFO] ℹ️ 출근 체크 목록 조회 요청 - Context: { - "date": "2026-02-03" -} -[2026-02-03T04:10:30.800Z] [INFO] ℹ️ 일일 근태 기록 조회 요청 - Context: { - "date": "2026-02-03", - "workerId": null -} -[2026-02-03T04:10:30.804Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "1300", - "nx": 57, - "ny": 119 -} -[2026-02-03T04:10:30.811Z] [INFO] ℹ️ 출근 체크 목록 조회 성공 - Context: { - "date": "2026-02-03", - "count": 10 -} -[2026-02-03T04:10:30.813Z] [INFO] ℹ️ 일일 근태 기록 조회 성공 - Context: { - "date": "2026-02-03", - "count": 0 -} -[2026-02-03T04:10:30.814Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/daily-records?date=2026-02-03", - "statusCode": 200, - "duration": "15ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:10:30.816Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/checkin-list?date=2026-02-03", - "statusCode": 200, - "duration": "19ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:10:30.820Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "26ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:10:30.985Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 3.5, - "humidity": 41, - "windSpeed": 0.7, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T04:10:30.989Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 3.5, - "humidity": 41, - "windSpeed": 0.7, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T04:10:30.992Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "189ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:10:31.550Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:10:45.462Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:10:45.768Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "1300", - "nx": 57, - "ny": 119 -} -[2026-02-03T04:10:45.788Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:10:45.851Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:10:45.887Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-03", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:10:45.896Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:10:45.921Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 3.5, - "humidity": 41, - "windSpeed": 0.7, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T04:10:45.923Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 3.5, - "humidity": 41, - "windSpeed": 0.7, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T04:10:45.924Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "161ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:10:46.374Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:10:54.736Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:10:54.815Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "1300", - "nx": 57, - "ny": 119 -} -[2026-02-03T04:10:54.826Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "1300", - "nx": 57, - "ny": 119 -} -[2026-02-03T04:10:55.005Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 3.5, - "humidity": 41, - "windSpeed": 0.7, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T04:10:55.006Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 3.5, - "humidity": 41, - "windSpeed": 0.7, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T04:10:55.008Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "185ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:10:55.074Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T04:10:55.647Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:10:55.725Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:10:56.011Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 3.5, - "humidity": 41, - "windSpeed": 0.7, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T04:10:56.014Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 3.5, - "humidity": 41, - "windSpeed": 0.7, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T04:10:56.019Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "1206ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:11:05.755Z] [INFO] ℹ️ 프로젝트별-작업별 시간 분석 요청 - Context: { - "start": "2025-12-01", - "end": "2025-12-31" -} -[2026-02-03T04:11:05.760Z] [INFO] ℹ️ 작업자별 통계 조회 요청 - Context: { - "start": "2025-12-01", - "end": "2025-12-31" -} -[2026-02-03T04:11:05.766Z] [INFO] ℹ️ 프로젝트별-작업별 시간 분석 성공 - Context: { - "start": "2025-12-01", - "end": "2025-12-31", - "projectCount": 0, - "workTypeCount": 0, - "totalHours": 0 -} -[2026-02-03T04:11:05.767Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-analysis/project-worktype-analysis?start=2025-12-01&end=2025-12-31", - "statusCode": 200, - "duration": "18ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:11:05.769Z] [INFO] ℹ️ 작업자별 통계 조회 성공 - Context: { - "start": "2025-12-01", - "end": "2025-12-31", - "workerCount": 0 -} -[2026-02-03T04:11:05.772Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-analysis/worker-stats?start=2025-12-01&end=2025-12-31", - "statusCode": 200, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:11:05.783Z] [INFO] ℹ️ 최근 작업 현황 조회 요청 - Context: { - "start": "2025-12-01", - "end": "2025-12-31", - "limit": 2000 -} -[2026-02-03T04:11:05.790Z] [INFO] ℹ️ 최근 작업 현황 조회 성공 - Context: { - "start": "2025-12-01", - "end": "2025-12-31", - "limit": 2000, - "resultCount": 0 -} -[2026-02-03T04:11:05.794Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-analysis/recent-work?start=2025-12-01&end=2025-12-31&limit=2000", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:11:17.711Z] [INFO] ℹ️ 프로젝트별-작업별 시간 분석 요청 - Context: { - "start": "2025-11-01", - "end": "2025-11-30" -} -[2026-02-03T04:11:17.713Z] [INFO] ℹ️ 작업자별 통계 조회 요청 - Context: { - "start": "2025-11-01", - "end": "2025-11-30" -} -[2026-02-03T04:11:17.715Z] [INFO] ℹ️ 프로젝트별-작업별 시간 분석 성공 - Context: { - "start": "2025-11-01", - "end": "2025-11-30", - "projectCount": 0, - "workTypeCount": 0, - "totalHours": 0 -} -[2026-02-03T04:11:17.716Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-analysis/project-worktype-analysis?start=2025-11-01&end=2025-11-30", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:11:17.717Z] [INFO] ℹ️ 작업자별 통계 조회 성공 - Context: { - "start": "2025-11-01", - "end": "2025-11-30", - "workerCount": 0 -} -[2026-02-03T04:11:17.719Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-analysis/worker-stats?start=2025-11-01&end=2025-11-30", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:11:17.731Z] [INFO] ℹ️ 최근 작업 현황 조회 요청 - Context: { - "start": "2025-11-01", - "end": "2025-11-30", - "limit": 2000 -} -[2026-02-03T04:11:17.733Z] [INFO] ℹ️ 최근 작업 현황 조회 성공 - Context: { - "start": "2025-11-01", - "end": "2025-11-30", - "limit": 2000, - "resultCount": 0 -} -[2026-02-03T04:11:17.734Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-analysis/recent-work?start=2025-11-01&end=2025-11-30&limit=2000", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:11:25.162Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T04:11:55.254Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T04:12:25.354Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T04:12:55.455Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T04:13:25.549Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T04:13:55.640Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T04:14:25.726Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T04:14:55.831Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T04:15:25.920Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T04:15:56.014Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T04:16:26.109Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T04:16:56.190Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T04:17:26.277Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T04:17:56.364Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T04:18:26.461Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T04:18:54.934Z] [INFO] ℹ️ 프로젝트별-작업별 시간 분석 요청 - Context: { - "start": "2025-11-01", - "end": "2025-11-30" -} -[2026-02-03T04:18:54.942Z] [INFO] ℹ️ 작업자별 통계 조회 요청 - Context: { - "start": "2025-11-01", - "end": "2025-11-30" -} -[2026-02-03T04:18:54.953Z] [INFO] ℹ️ 프로젝트별-작업별 시간 분석 성공 - Context: { - "start": "2025-11-01", - "end": "2025-11-30", - "projectCount": 4, - "workTypeCount": 3, - "totalHours": 2091 -} -[2026-02-03T04:18:54.957Z] [INFO] ℹ️ 작업자별 통계 조회 성공 - Context: { - "start": "2025-11-01", - "end": "2025-11-30", - "workerCount": 10 -} -[2026-02-03T04:18:54.959Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-analysis/project-worktype-analysis?start=2025-11-01&end=2025-11-30", - "statusCode": 200, - "duration": "32ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:18:54.961Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-analysis/worker-stats?start=2025-11-01&end=2025-11-30", - "statusCode": 200, - "duration": "19ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:18:54.968Z] [INFO] ℹ️ 최근 작업 현황 조회 요청 - Context: { - "start": "2025-11-01", - "end": "2025-11-30", - "limit": 2000 -} -[2026-02-03T04:18:55.023Z] [INFO] ℹ️ 최근 작업 현황 조회 성공 - Context: { - "start": "2025-11-01", - "end": "2025-11-30", - "limit": 2000, - "resultCount": 390 -} -[2026-02-03T04:18:55.033Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-analysis/recent-work?start=2025-11-01&end=2025-11-30&limit=2000", - "statusCode": 200, - "duration": "67ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:18:56.575Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T04:19:26.677Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T04:19:50.510Z] [INFO] ℹ️ 프로젝트별-작업별 시간 분석 요청 - Context: { - "start": "2025-12-01", - "end": "2025-12-31" -} -[2026-02-03T04:19:50.515Z] [INFO] ℹ️ 작업자별 통계 조회 요청 - Context: { - "start": "2025-12-01", - "end": "2025-12-31" -} -[2026-02-03T04:19:50.517Z] [INFO] ℹ️ 프로젝트별-작업별 시간 분석 성공 - Context: { - "start": "2025-12-01", - "end": "2025-12-31", - "projectCount": 2, - "workTypeCount": 1, - "totalHours": 264 -} -[2026-02-03T04:19:50.521Z] [INFO] ℹ️ 작업자별 통계 조회 성공 - Context: { - "start": "2025-12-01", - "end": "2025-12-31", - "workerCount": 9 -} -[2026-02-03T04:19:50.524Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-analysis/project-worktype-analysis?start=2025-12-01&end=2025-12-31", - "statusCode": 200, - "duration": "17ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:19:50.525Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-analysis/worker-stats?start=2025-12-01&end=2025-12-31", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:19:50.528Z] [INFO] ℹ️ 최근 작업 현황 조회 요청 - Context: { - "start": "2025-12-01", - "end": "2025-12-31", - "limit": 2000 -} -[2026-02-03T04:19:50.530Z] [INFO] ℹ️ 최근 작업 현황 조회 성공 - Context: { - "start": "2025-12-01", - "end": "2025-12-31", - "limit": 2000, - "resultCount": 37 -} -[2026-02-03T04:19:50.533Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-analysis/recent-work?start=2025-12-01&end=2025-12-31&limit=2000", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:19:56.793Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T04:20:01.649Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:20:01.747Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "1300", - "nx": 57, - "ny": 119 -} -[2026-02-03T04:20:01.752Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "1300", - "nx": 57, - "ny": 119 -} -[2026-02-03T04:20:01.756Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 200, - "duration": "16ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:20:01.819Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:20:01.842Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:20:01.855Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:20:01.863Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues/categories/type/nonconformity", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:20:01.874Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues/items", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:20:01.884Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:20:01.897Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 3.3, - "humidity": 43, - "windSpeed": 1.4, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T04:20:01.900Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues?start_date=2026-02-03&end_date=2026-02-03", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:20:01.902Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 3.3, - "humidity": 43, - "windSpeed": 1.4, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T04:20:01.905Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "162ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:20:01.912Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues?start_date=2026-02-02&end_date=2026-02-02", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:20:01.920Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues?start_date=2026-01-30&end_date=2026-01-30", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:20:01.927Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues?start_date=2026-01-29&end_date=2026-01-29", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:20:01.934Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues?start_date=2026-01-25&end_date=2026-01-25", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:20:02.649Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:20:02.659Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:20:05.381Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 3.3, - "humidity": 43, - "windSpeed": 1.4, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T04:20:05.386Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 3.3, - "humidity": 43, - "windSpeed": 1.4, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T04:20:05.391Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "3640ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:20:26.884Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T04:20:28.713Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:20:28.918Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "1300", - "nx": 57, - "ny": 119 -} -[2026-02-03T04:20:28.948Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "1300", - "nx": 57, - "ny": 119 -} -[2026-02-03T04:20:29.019Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 3.3, - "humidity": 43, - "windSpeed": 1.4, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T04:20:29.022Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 3.3, - "humidity": 43, - "windSpeed": 1.4, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T04:20:29.024Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "111ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:20:29.596Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:20:29.698Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:20:30.173Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 3.3, - "humidity": 43, - "windSpeed": 1.4, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T04:20:30.180Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 3.3, - "humidity": 43, - "windSpeed": 1.4, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T04:20:30.187Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "1243ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:20:38.990Z] [INFO] ℹ️ 프로젝트별-작업별 시간 분석 요청 - Context: { - "start": "2026-01-01", - "end": "2026-01-31" -} -[2026-02-03T04:20:39.002Z] [INFO] ℹ️ 작업자별 통계 조회 요청 - Context: { - "start": "2026-01-01", - "end": "2026-01-31" -} -[2026-02-03T04:20:39.006Z] [INFO] ℹ️ 프로젝트별-작업별 시간 분석 성공 - Context: { - "start": "2026-01-01", - "end": "2026-01-31", - "projectCount": 0, - "workTypeCount": 0, - "totalHours": 0 -} -[2026-02-03T04:20:39.009Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-analysis/project-worktype-analysis?start=2026-01-01&end=2026-01-31", - "statusCode": 200, - "duration": "21ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:20:39.013Z] [INFO] ℹ️ 작업자별 통계 조회 성공 - Context: { - "start": "2026-01-01", - "end": "2026-01-31", - "workerCount": 0 -} -[2026-02-03T04:20:39.015Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-analysis/worker-stats?start=2026-01-01&end=2026-01-31", - "statusCode": 200, - "duration": "15ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:20:39.023Z] [INFO] ℹ️ 최근 작업 현황 조회 요청 - Context: { - "start": "2026-01-01", - "end": "2026-01-31", - "limit": 2000 -} -[2026-02-03T04:20:39.024Z] [INFO] ℹ️ 최근 작업 현황 조회 성공 - Context: { - "start": "2026-01-01", - "end": "2026-01-31", - "limit": 2000, - "resultCount": 0 -} -[2026-02-03T04:20:39.026Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-analysis/recent-work?start=2026-01-01&end=2026-01-31&limit=2000", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:20:56.971Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T04:21:27.064Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T04:21:34.366Z] [INFO] ℹ️ 프로젝트별-작업별 시간 분석 요청 - Context: { - "start": "2026-02-01", - "end": "2026-02-28" -} -[2026-02-03T04:21:34.369Z] [INFO] ℹ️ 작업자별 통계 조회 요청 - Context: { - "start": "2026-02-01", - "end": "2026-02-28" -} -[2026-02-03T04:21:34.370Z] [INFO] ℹ️ 프로젝트별-작업별 시간 분석 성공 - Context: { - "start": "2026-02-01", - "end": "2026-02-28", - "projectCount": 0, - "workTypeCount": 0, - "totalHours": 0 -} -[2026-02-03T04:21:34.371Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-analysis/project-worktype-analysis?start=2026-02-01&end=2026-02-28", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:21:34.372Z] [INFO] ℹ️ 작업자별 통계 조회 성공 - Context: { - "start": "2026-02-01", - "end": "2026-02-28", - "workerCount": 0 -} -[2026-02-03T04:21:34.373Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-analysis/worker-stats?start=2026-02-01&end=2026-02-28", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:21:34.385Z] [INFO] ℹ️ 최근 작업 현황 조회 요청 - Context: { - "start": "2026-02-01", - "end": "2026-02-28", - "limit": 2000 -} -[2026-02-03T04:21:34.388Z] [INFO] ℹ️ 최근 작업 현황 조회 성공 - Context: { - "start": "2026-02-01", - "end": "2026-02-28", - "limit": 2000, - "resultCount": 0 -} -[2026-02-03T04:21:34.389Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-analysis/recent-work?start=2026-02-01&end=2026-02-28&limit=2000", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:21:48.503Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:21:48.570Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "1300", - "nx": 57, - "ny": 119 -} -[2026-02-03T04:21:48.577Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "1300", - "nx": 57, - "ny": 119 -} -[2026-02-03T04:21:48.584Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:21:48.592Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:21:48.676Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:21:48.684Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:21:48.693Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues/categories/type/nonconformity", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:21:48.703Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues/items", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:21:48.710Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:21:48.716Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues?start_date=2026-02-03&end_date=2026-02-03", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:21:48.720Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues?start_date=2026-02-02&end_date=2026-02-02", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:21:48.725Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues?start_date=2026-01-30&end_date=2026-01-30", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:21:48.729Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues?start_date=2026-01-29&end_date=2026-01-29", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:21:48.734Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues?start_date=2026-01-25&end_date=2026-01-25", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:21:48.762Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 3.3, - "humidity": 43, - "windSpeed": 1.4, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T04:21:48.764Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 3.3, - "humidity": 43, - "windSpeed": 1.4, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T04:21:48.766Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 3.3, - "humidity": 43, - "windSpeed": 1.4, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T04:21:48.767Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 3.3, - "humidity": 43, - "windSpeed": 1.4, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T04:21:48.768Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "206ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:21:48.769Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "192ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:21:49.487Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:21:49.488Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:21:57.162Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T04:22:25.140Z] [INFO] ℹ️ 사용자 목록 조회 요청 - Context: { - "requestedBy": "admin" -} -[2026-02-03T04:22:25.155Z] [INFO] ℹ️ 사용자 목록 조회 성공 - Context: { - "count": 8 -} -[2026-02-03T04:22:25.166Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users", - "statusCode": 200, - "duration": "41ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:22:25.334Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "1300", - "nx": 57, - "ny": 119 -} -[2026-02-03T04:22:26.113Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:22:26.969Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 3.3, - "humidity": 43, - "windSpeed": 1.4, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T04:22:26.973Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 3.3, - "humidity": 43, - "windSpeed": 1.4, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T04:22:26.977Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "1645ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:22:27.273Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T04:22:57.356Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T04:23:27.454Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T04:23:57.545Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T04:24:27.632Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T04:24:57.722Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T04:25:27.810Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T04:25:57.910Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T04:26:14.291Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "23ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:26:14.458Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "1300", - "nx": 57, - "ny": 119 -} -[2026-02-03T04:26:14.469Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "1300", - "nx": 57, - "ny": 119 -} -[2026-02-03T04:26:14.478Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:26:14.540Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 3.4, - "humidity": 47, - "windSpeed": 1.4, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T04:26:14.541Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 3.4, - "humidity": 47, - "windSpeed": 1.4, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T04:26:14.544Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "77ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:26:14.547Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:26:14.585Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:26:14.589Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:26:14.594Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues/categories/type/nonconformity", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:26:14.607Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues/items", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:26:14.614Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:26:15.246Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:26:15.248Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:26:15.674Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 3.4, - "humidity": 47, - "windSpeed": 1.4, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T04:26:15.679Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 3.4, - "humidity": 47, - "windSpeed": 1.4, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T04:26:15.684Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "1231ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:26:20.920Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:26:21.323Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "1300", - "nx": 57, - "ny": 119 -} -[2026-02-03T04:26:21.332Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "1300", - "nx": 57, - "ny": 119 -} -[2026-02-03T04:26:21.338Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects?is_active=1", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:26:21.405Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 3.4, - "humidity": 47, - "windSpeed": 1.4, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T04:26:21.407Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 3.4, - "humidity": 47, - "windSpeed": 1.4, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T04:26:21.409Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "80ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:26:21.434Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/safety-checks", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:26:21.443Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:26:21.450Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks/active/list", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:26:21.457Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?is_active=true", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:26:21.471Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/active/list", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:26:21.484Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-03", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:26:21.913Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:26:23.236Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 3.4, - "humidity": 47, - "windSpeed": 1.4, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T04:26:23.239Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 3.4, - "humidity": 47, - "windSpeed": 1.4, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T04:26:23.243Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "1926ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:26:28.021Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T04:26:58.109Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T04:27:00.364Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "43ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:27:00.444Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "31ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:27:06.427Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/tbm/sessions", - "statusCode": 201, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:27:06.442Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/tbm/sessions/14/team/batch", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:27:06.471Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-03", - "statusCode": 200, - "duration": "17ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:27:12.613Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:27:12.824Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "1300", - "nx": 57, - "ny": 119 -} -[2026-02-03T04:27:12.837Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "1300", - "nx": 57, - "ny": 119 -} -[2026-02-03T04:27:12.845Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:27:12.924Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:27:12.936Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 3.4, - "humidity": 47, - "windSpeed": 1.4, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T04:27:12.939Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 3.4, - "humidity": 47, - "windSpeed": 1.4, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T04:27:12.942Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:27:12.946Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "112ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:27:12.952Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:27:12.959Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues/categories/type/nonconformity", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:27:12.966Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues/items", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:27:12.975Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:27:12.981Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues?start_date=2026-02-03&end_date=2026-02-03", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:27:13.668Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:27:13.672Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:27:13.920Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 3.4, - "humidity": 47, - "windSpeed": 1.4, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T04:27:13.924Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 3.4, - "humidity": 47, - "windSpeed": 1.4, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T04:27:13.927Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "1104ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:27:28.425Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T04:27:58.509Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T04:28:28.596Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T04:28:40.089Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports/from-tbm", - "statusCode": 201, - "duration": "28ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:28:40.140Z] [INFO] ℹ️ 부적합 원인 저장 성공 - Context: { - "reportId": "1639", - "count": 2 -} -[2026-02-03T04:28:40.141Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "PUT", - "url": "/api/daily-work-reports/1639/defects", - "statusCode": 200, - "duration": "42ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:28:40.171Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "17ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:28:45.868Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports/from-tbm", - "statusCode": 201, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:28:45.877Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:28:49.319Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports/from-tbm", - "statusCode": 201, - "duration": "15ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:28:49.328Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:28:56.410Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 200, - "duration": "15ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:28:56.615Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "1300", - "nx": 57, - "ny": 119 -} -[2026-02-03T04:28:56.650Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "1300", - "nx": 57, - "ny": 119 -} -[2026-02-03T04:28:56.804Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 3.4, - "humidity": 47, - "windSpeed": 1.4, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T04:28:56.808Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 3.4, - "humidity": 47, - "windSpeed": 1.4, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T04:28:56.811Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "165ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:28:57.265Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:28:57.379Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:28:57.859Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 3.4, - "humidity": 47, - "windSpeed": 1.4, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T04:28:57.862Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 3.4, - "humidity": 47, - "windSpeed": 1.4, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T04:28:57.867Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "1255ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:28:58.715Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T04:29:00.212Z] [INFO] ℹ️ 프로젝트별-작업별 시간 분석 요청 - Context: { - "start": "2026-02-01", - "end": "2026-02-28" -} -[2026-02-03T04:29:00.218Z] [INFO] ℹ️ 작업자별 통계 조회 요청 - Context: { - "start": "2026-02-01", - "end": "2026-02-28" -} -[2026-02-03T04:29:00.221Z] [INFO] ℹ️ 프로젝트별-작업별 시간 분석 성공 - Context: { - "start": "2026-02-01", - "end": "2026-02-28", - "projectCount": 1, - "workTypeCount": 1, - "totalHours": 24 -} -[2026-02-03T04:29:00.223Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-analysis/project-worktype-analysis?start=2026-02-01&end=2026-02-28", - "statusCode": 200, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:29:00.224Z] [INFO] ℹ️ 작업자별 통계 조회 성공 - Context: { - "start": "2026-02-01", - "end": "2026-02-28", - "workerCount": 3 -} -[2026-02-03T04:29:00.226Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-analysis/worker-stats?start=2026-02-01&end=2026-02-28", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:29:00.233Z] [INFO] ℹ️ 최근 작업 현황 조회 요청 - Context: { - "start": "2026-02-01", - "end": "2026-02-28", - "limit": 2000 -} -[2026-02-03T04:29:00.237Z] [INFO] ℹ️ 최근 작업 현황 조회 성공 - Context: { - "start": "2026-02-01", - "end": "2026-02-28", - "limit": 2000, - "resultCount": 3 -} -[2026-02-03T04:29:00.239Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-analysis/recent-work?start=2026-02-01&end=2026-02-28&limit=2000", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:29:28.829Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T04:29:47.918Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 200, - "duration": "29ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:29:47.987Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "1300", - "nx": 57, - "ny": 119 -} -[2026-02-03T04:29:48.013Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "1300", - "nx": 57, - "ny": 119 -} -[2026-02-03T04:29:48.114Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 3.4, - "humidity": 47, - "windSpeed": 1.4, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T04:29:48.121Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 3.4, - "humidity": 47, - "windSpeed": 1.4, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T04:29:48.124Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "113ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:29:48.492Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 3.4, - "humidity": 47, - "windSpeed": 1.4, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T04:29:48.495Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 3.4, - "humidity": 47, - "windSpeed": 1.4, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T04:29:48.498Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "516ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:29:48.857Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:29:48.860Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:29:58.927Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T04:30:05.451Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/pages", - "statusCode": 200, - "duration": "15ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:30:05.672Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "1300", - "nx": 57, - "ny": 119 -} -[2026-02-03T04:30:05.685Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:30:06.371Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:30:09.029Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 3.4, - "humidity": 47, - "windSpeed": 1.4, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T04:30:09.032Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 3.4, - "humidity": 47, - "windSpeed": 1.4, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T04:30:09.038Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "3367ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:30:24.092Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 200, - "duration": "19ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:30:24.157Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "1300", - "nx": 57, - "ny": 119 -} -[2026-02-03T04:30:24.971Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 3.4, - "humidity": 47, - "windSpeed": 1.4, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T04:30:24.976Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 3.4, - "humidity": 47, - "windSpeed": 1.4, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T04:30:24.980Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "833ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:30:25.056Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:30:29.040Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T04:30:33.291Z] [INFO] ℹ️ 프로젝트 수정 성공 - Context: { - "project_id": 14 -} -[2026-02-03T04:30:33.292Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "PUT", - "url": "/api/projects/14", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:30:33.301Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:30:54.015Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "15ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:30:54.092Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "1300", - "nx": 57, - "ny": 119 -} -[2026-02-03T04:30:54.121Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:30:54.228Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:30:54.257Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-03", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:30:54.261Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 3.4, - "humidity": 47, - "windSpeed": 1.4, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T04:30:54.262Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 3.4, - "humidity": 47, - "windSpeed": 1.4, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T04:30:54.263Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "177ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:30:54.278Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:30:54.987Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:30:59.200Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T04:31:29.412Z] [INFO] ℹ️ 사용자 목록 조회 요청 - Context: { - "requestedBy": "admin" -} -[2026-02-03T04:31:29.423Z] [INFO] ℹ️ 사용자 목록 조회 성공 - Context: { - "count": 8 -} -[2026-02-03T04:31:29.430Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users", - "statusCode": 200, - "duration": "27ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:31:29.459Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T04:31:29.867Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "1300", - "nx": 57, - "ny": 119 -} -[2026-02-03T04:31:30.324Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:31:32.780Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 3.4, - "humidity": 47, - "windSpeed": 1.4, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T04:31:32.784Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 3.4, - "humidity": 47, - "windSpeed": 1.4, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T04:31:32.788Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "2926ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:31:38.796Z] [INFO] ℹ️ 사용자 삭제 요청 - Context: { - "userId": "9" -} -[2026-02-03T04:31:38.804Z] [INFO] ℹ️ 사용자 비활성화 성공 - Context: { - "userId": "9", - "username": "작업자", - "deletedBy": "admin" -} -[2026-02-03T04:31:38.806Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "DELETE", - "url": "/api/users/9", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:31:38.815Z] [INFO] ℹ️ 사용자 목록 조회 요청 - Context: { - "requestedBy": "admin" -} -[2026-02-03T04:31:38.817Z] [INFO] ℹ️ 사용자 목록 조회 성공 - Context: { - "count": 8 -} -[2026-02-03T04:31:38.818Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:31:42.337Z] [INFO] ℹ️ 사용자 삭제 요청 - Context: { - "userId": "9" -} -[2026-02-03T04:31:42.341Z] [WARN] ⚠️ 이미 비활성화된 사용자입니다 - Context: { - "code": "VALIDATION_ERROR", - "url": "/api/users/9", - "method": "DELETE", - "user": "admin" -} -[2026-02-03T04:31:42.343Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "DELETE", - "url": "/api/users/9", - "statusCode": 400, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:31:47.982Z] [INFO] ℹ️ 사용자 삭제 요청 - Context: { - "userId": "8" -} -[2026-02-03T04:31:47.984Z] [INFO] ℹ️ 사용자 비활성화 성공 - Context: { - "userId": "8", - "username": "그룹장", - "deletedBy": "admin" -} -[2026-02-03T04:31:47.985Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "DELETE", - "url": "/api/users/8", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:31:47.992Z] [INFO] ℹ️ 사용자 목록 조회 요청 - Context: { - "requestedBy": "admin" -} -[2026-02-03T04:31:47.994Z] [INFO] ℹ️ 사용자 목록 조회 성공 - Context: { - "count": 8 -} -[2026-02-03T04:31:47.998Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:31:55.651Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/pages", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:31:55.661Z] [INFO] ℹ️ 사용자 페이지 권한 조회 요청 - Context: { - "userId": "3" -} -[2026-02-03T04:31:55.665Z] [INFO] ℹ️ 사용자 페이지 권한 조회 성공 - Context: { - "userId": "3", - "pageCount": 34 -} -[2026-02-03T04:31:55.667Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users/3/page-access", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:31:59.579Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T04:32:00.292Z] [INFO] ℹ️ 사용자 수정 요청 - Context: { - "userId": "3", - "body": { - "name": "김두수", - "username": "김두수", - "role": "user", - "email": "" - } -} -[2026-02-03T04:32:00.301Z] [INFO] ℹ️ role 문자열로 역할 변경 - Context: { - "userId": "3", - "role": "user", - "role_id": 4 -} -[2026-02-03T04:32:00.301Z] [INFO] ℹ️ 실행할 UPDATE 쿼리 - Context: { - "query": "UPDATE users SET username = ?, name = ?, email = ?, role_id = ?, updated_at = NOW() WHERE user_id = ?", - "values": [ - "김두수", - "김두수", - null, - 4, - "3" - ] -} -[2026-02-03T04:32:00.303Z] [INFO] ℹ️ 사용자 수정 성공 - Context: { - "userId": "3", - "username": "김두수", - "updatedFields": [ - "name", - "username", - "role", - "email" - ], - "updatedBy": "admin" -} -[2026-02-03T04:32:00.304Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "PUT", - "url": "/api/users/3", - "statusCode": 200, - "duration": "22ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:32:00.311Z] [INFO] ℹ️ 사용자 목록 조회 요청 - Context: { - "requestedBy": "admin" -} -[2026-02-03T04:32:00.313Z] [INFO] ℹ️ 사용자 목록 조회 성공 - Context: { - "count": 8 -} -[2026-02-03T04:32:00.315Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:32:02.607Z] [INFO] ℹ️ 사용자 페이지 권한 조회 요청 - Context: { - "userId": "5" -} -[2026-02-03T04:32:02.609Z] [INFO] ℹ️ 사용자 페이지 권한 조회 성공 - Context: { - "userId": "5", - "pageCount": 34 -} -[2026-02-03T04:32:02.616Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users/5/page-access", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:32:05.862Z] [INFO] ℹ️ 사용자 수정 요청 - Context: { - "userId": "5", - "body": { - "name": "임영규", - "username": "임영규", - "role": "user", - "email": "" - } -} -[2026-02-03T04:32:05.865Z] [INFO] ℹ️ role 문자열로 역할 변경 - Context: { - "userId": "5", - "role": "user", - "role_id": 4 -} -[2026-02-03T04:32:05.866Z] [INFO] ℹ️ 실행할 UPDATE 쿼리 - Context: { - "query": "UPDATE users SET username = ?, name = ?, email = ?, role_id = ?, updated_at = NOW() WHERE user_id = ?", - "values": [ - "임영규", - "임영규", - null, - 4, - "5" - ] -} -[2026-02-03T04:32:05.871Z] [INFO] ℹ️ 사용자 수정 성공 - Context: { - "userId": "5", - "username": "임영규", - "updatedFields": [ - "name", - "username", - "role", - "email" - ], - "updatedBy": "admin" -} -[2026-02-03T04:32:05.872Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "PUT", - "url": "/api/users/5", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:32:05.877Z] [INFO] ℹ️ 사용자 목록 조회 요청 - Context: { - "requestedBy": "admin" -} -[2026-02-03T04:32:05.878Z] [INFO] ℹ️ 사용자 목록 조회 성공 - Context: { - "count": 8 -} -[2026-02-03T04:32:05.879Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:32:07.113Z] [INFO] ℹ️ 사용자 페이지 권한 조회 요청 - Context: { - "userId": "6" -} -[2026-02-03T04:32:07.116Z] [INFO] ℹ️ 사용자 페이지 권한 조회 성공 - Context: { - "userId": "6", - "pageCount": 34 -} -[2026-02-03T04:32:07.119Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users/6/page-access", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:32:09.443Z] [INFO] ℹ️ 사용자 수정 요청 - Context: { - "userId": "6", - "body": { - "name": "반치원", - "username": "반치원", - "role": "user", - "email": "" - } -} -[2026-02-03T04:32:09.446Z] [INFO] ℹ️ role 문자열로 역할 변경 - Context: { - "userId": "6", - "role": "user", - "role_id": 4 -} -[2026-02-03T04:32:09.447Z] [INFO] ℹ️ 실행할 UPDATE 쿼리 - Context: { - "query": "UPDATE users SET username = ?, name = ?, email = ?, role_id = ?, updated_at = NOW() WHERE user_id = ?", - "values": [ - "반치원", - "반치원", - null, - 4, - "6" - ] -} -[2026-02-03T04:32:09.450Z] [INFO] ℹ️ 사용자 수정 성공 - Context: { - "userId": "6", - "username": "반치원", - "updatedFields": [ - "name", - "username", - "role", - "email" - ], - "updatedBy": "admin" -} -[2026-02-03T04:32:09.451Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "PUT", - "url": "/api/users/6", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:32:09.458Z] [INFO] ℹ️ 사용자 목록 조회 요청 - Context: { - "requestedBy": "admin" -} -[2026-02-03T04:32:09.460Z] [INFO] ℹ️ 사용자 목록 조회 성공 - Context: { - "count": 8 -} -[2026-02-03T04:32:09.462Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:32:27.238Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "16ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:32:27.442Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "1300", - "nx": 57, - "ny": 119 -} -[2026-02-03T04:32:27.621Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 3.4, - "humidity": 47, - "windSpeed": 1.4, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T04:32:27.624Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 3.4, - "humidity": 47, - "windSpeed": 1.4, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T04:32:27.626Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "189ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:32:28.204Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:32:29.692Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T04:32:51.343Z] [INFO] ℹ️ 작업자 계정 연동 해제 성공 - Context: { - "worker_id": 1 -} -[2026-02-03T04:32:51.346Z] [INFO] ℹ️ 작업자 수정 후 캐시 무효화 - Context: { - "worker_id": 1 -} -[2026-02-03T04:32:51.350Z] [INFO] ℹ️ 작업자 수정 성공 - Context: { - "worker_id": 1 -} -[2026-02-03T04:32:51.351Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "PUT", - "url": "/api/workers/1", - "statusCode": 200, - "duration": "46ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:32:51.373Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:32:59.801Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T04:33:09.457Z] [INFO] ℹ️ 작업자 수정 후 캐시 무효화 - Context: { - "worker_id": 9 -} -[2026-02-03T04:33:09.464Z] [INFO] ℹ️ 작업자 수정 성공 - Context: { - "worker_id": 9 -} -[2026-02-03T04:33:09.466Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "PUT", - "url": "/api/workers/9", - "statusCode": 200, - "duration": "34ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:33:09.542Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "37ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:33:14.914Z] [INFO] ℹ️ 작업자 수정 후 캐시 무효화 - Context: { - "worker_id": 8 -} -[2026-02-03T04:33:14.916Z] [INFO] ℹ️ 작업자 수정 성공 - Context: { - "worker_id": 8 -} -[2026-02-03T04:33:14.917Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "PUT", - "url": "/api/workers/8", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:33:14.930Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:33:18.943Z] [INFO] ℹ️ 작업자 수정 후 캐시 무효화 - Context: { - "worker_id": 6 -} -[2026-02-03T04:33:18.945Z] [INFO] ℹ️ 작업자 수정 성공 - Context: { - "worker_id": 6 -} -[2026-02-03T04:33:18.945Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "PUT", - "url": "/api/workers/6", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:33:18.963Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:33:24.635Z] [INFO] ℹ️ 작업자 수정 후 캐시 무효화 - Context: { - "worker_id": 5 -} -[2026-02-03T04:33:24.640Z] [INFO] ℹ️ 작업자 수정 성공 - Context: { - "worker_id": 5 -} -[2026-02-03T04:33:24.641Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "PUT", - "url": "/api/workers/5", - "statusCode": 200, - "duration": "19ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:33:24.699Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "37ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:33:28.803Z] [INFO] ℹ️ 작업자 수정 후 캐시 무효화 - Context: { - "worker_id": 4 -} -[2026-02-03T04:33:28.806Z] [INFO] ℹ️ 작업자 수정 성공 - Context: { - "worker_id": 4 -} -[2026-02-03T04:33:28.807Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "PUT", - "url": "/api/workers/4", - "statusCode": 200, - "duration": "28ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:33:28.818Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:33:29.919Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T04:33:33.957Z] [INFO] ℹ️ 작업자 계정 연동 해제 성공 - Context: { - "worker_id": 3 -} -[2026-02-03T04:33:33.958Z] [INFO] ℹ️ 작업자 수정 후 캐시 무효화 - Context: { - "worker_id": 3 -} -[2026-02-03T04:33:33.963Z] [INFO] ℹ️ 작업자 수정 성공 - Context: { - "worker_id": 3 -} -[2026-02-03T04:33:33.964Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "PUT", - "url": "/api/workers/3", - "statusCode": 200, - "duration": "19ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:33:33.991Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "20ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:34:00.066Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T04:34:16.896Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/pages", - "statusCode": 200, - "duration": "16ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:34:16.953Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "1300", - "nx": 57, - "ny": 119 -} -[2026-02-03T04:34:16.967Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:34:17.235Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 3.4, - "humidity": 47, - "windSpeed": 1.4, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T04:34:17.238Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 3.4, - "humidity": 47, - "windSpeed": 1.4, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T04:34:17.242Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "291ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:34:17.864Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:34:30.180Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T04:34:34.017Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:34:34.105Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "1300", - "nx": 57, - "ny": 119 -} -[2026-02-03T04:34:34.129Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:34:34.256Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 3.4, - "humidity": 47, - "windSpeed": 1.4, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T04:34:34.259Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 3.4, - "humidity": 47, - "windSpeed": 1.4, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T04:34:34.263Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "161ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:34:34.299Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:34:34.476Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-03", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:34:34.488Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:34:34.999Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:35:00.277Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T04:35:30.415Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T04:36:00.564Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T04:36:30.735Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T04:36:46.750Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "16ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:36:46.989Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "1300", - "nx": 57, - "ny": 119 -} -[2026-02-03T04:36:47.004Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:36:47.121Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:36:47.140Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-03", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:36:47.153Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:36:47.545Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 4.1, - "humidity": 46, - "windSpeed": 1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T04:36:47.548Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 4.1, - "humidity": 46, - "windSpeed": 1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T04:36:47.551Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "565ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:36:47.715Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:36:57.624Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:36:57.882Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects?is_active=1", - "statusCode": 200, - "duration": "21ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:36:57.993Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/safety-checks", - "statusCode": 200, - "duration": "17ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:36:58.001Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:36:58.009Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks/active/list", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:36:58.015Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?is_active=true", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:36:58.020Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/active/list", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:36:58.026Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-03", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:36:58.567Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:37:00.879Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T04:37:30.977Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T04:38:01.093Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "5ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T04:38:31.204Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T04:39:01.334Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T04:39:31.433Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T04:40:01.523Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T04:40:31.608Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T04:41:01.665Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T04:41:31.770Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T04:42:01.838Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T04:42:31.931Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T04:43:02.010Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T04:43:32.094Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T04:44:02.186Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T04:44:32.291Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T04:45:02.386Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T04:45:32.476Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T04:46:02.570Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T04:46:32.661Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T04:46:57.599Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "1300", - "nx": 57, - "ny": 119 -} -[2026-02-03T04:46:57.609Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "1300", - "nx": 57, - "ny": 119 -} -[2026-02-03T04:46:57.948Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 3.8, - "humidity": 47, - "windSpeed": 1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T04:46:57.956Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 3.8, - "humidity": 47, - "windSpeed": 1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T04:46:57.959Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "365ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:46:58.959Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 3.8, - "humidity": 47, - "windSpeed": 1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T04:46:58.964Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 3.8, - "humidity": 47, - "windSpeed": 1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T04:46:58.968Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "1362ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:47:02.749Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T04:47:32.837Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T04:48:02.932Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T04:48:30.753Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "20ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:48:31.029Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects?is_active=1", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:48:31.039Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/safety-checks", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:48:31.044Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:48:31.051Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks/active/list", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:48:31.057Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?is_active=true", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:48:31.061Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/active/list", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:48:31.069Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-03", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:48:33.043Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T04:49:03.194Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T04:49:33.341Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T04:50:03.479Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T04:50:33.568Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T04:51:03.673Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T04:51:33.767Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T04:52:03.861Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T04:52:33.968Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T04:53:04.055Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T04:53:34.151Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T04:54:04.282Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T04:54:10.491Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:54:17.668Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 200, - "duration": "113ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:54:27.296Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:54:27.497Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "1300", - "nx": 57, - "ny": 119 -} -[2026-02-03T04:54:27.508Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "19ms", - "ip": "::ffff:185.199.108.133", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:54:27.519Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:54:27.536Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-03", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:54:27.544Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:54:27.740Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 3.8, - "humidity": 47, - "windSpeed": 1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T04:54:27.743Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 3.8, - "humidity": 47, - "windSpeed": 1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T04:54:27.745Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "253ms", - "ip": "::ffff:185.199.108.133", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:54:28.255Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:54:34.394Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T04:54:54.857Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:55:00.792Z] [WARN] ⚠️ 아이디 또는 비밀번호가 올바르지 않습니다. - Context: { - "code": "AUTHENTICATION_ERROR", - "url": "/api/auth/login", - "method": "POST", - "user": "anonymous" -} -[2026-02-03T04:55:00.795Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 401, - "duration": "22ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:55:04.526Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T04:55:34.626Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T04:56:04.798Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T04:56:05.196Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 200, - "duration": "92ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:56:15.415Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "23ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:56:15.473Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:56:15.625Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:56:15.670Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-03", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:56:15.697Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "18ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:56:16.369Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T04:56:34.935Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T04:57:05.010Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T04:57:18.392Z] [WARN] ⚠️ 인증 실패: 유효하지 않은 토큰 - Context: { - "error": "jwt malformed", - "path": "/", - "ip": "::ffff:185.199.108.133" -} -[2026-02-03T04:57:18.394Z] [WARN] ⚠️ 유효하지 않은 토큰입니다 - Context: { - "code": "AUTHENTICATION_ERROR", - "url": "/api/workers?limit=1000", - "method": "GET", - "user": "anonymous" -} -[2026-02-03T04:57:18.395Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 401, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-02-03T04:57:18.408Z] [WARN] ⚠️ 인증 실패: 유효하지 않은 토큰 - Context: { - "error": "jwt malformed", - "path": "/", - "ip": "::ffff:185.199.108.133" -} -[2026-02-03T04:57:18.409Z] [WARN] ⚠️ 유효하지 않은 토큰입니다 - Context: { - "code": "AUTHENTICATION_ERROR", - "url": "/api/projects?is_active=1", - "method": "GET", - "user": "anonymous" -} -[2026-02-03T04:57:18.409Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/projects?is_active=1", - "statusCode": 401, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-02-03T04:57:35.095Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T04:58:05.170Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T04:58:35.255Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T04:59:05.348Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T04:59:35.447Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T05:00:05.522Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T05:00:35.608Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T05:01:05.697Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T05:01:35.792Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T05:01:38.258Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "16ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T05:01:38.762Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "1300", - "nx": 57, - "ny": 119 -} -[2026-02-03T05:01:38.782Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T05:01:38.914Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T05:01:38.949Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-03", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T05:01:38.962Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T05:01:39.056Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 3.3, - "humidity": 46, - "windSpeed": 1.9, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T05:01:39.059Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 3.3, - "humidity": 46, - "windSpeed": 1.9, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T05:01:39.061Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "300ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T05:01:39.233Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T05:01:56.516Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T05:01:56.578Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "1300", - "nx": 57, - "ny": 119 -} -[2026-02-03T05:01:57.195Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 3.3, - "humidity": 46, - "windSpeed": 1.9, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T05:01:57.198Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 3.3, - "humidity": 46, - "windSpeed": 1.9, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T05:01:57.204Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "632ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T05:01:57.589Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T05:02:05.919Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T05:02:36.006Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T05:03:06.209Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T05:03:36.285Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T05:04:06.358Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T05:04:36.450Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T05:05:06.553Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T05:05:36.646Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T05:06:06.748Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T05:06:36.850Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T05:07:06.947Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T05:07:37.041Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T05:08:07.134Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T05:08:37.265Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T05:09:07.384Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T05:09:37.492Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T05:10:07.636Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T05:10:37.715Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T05:11:07.814Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T05:11:37.915Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T05:12:00.558Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "29ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T05:12:00.604Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "1400", - "nx": 57, - "ny": 119 -} -[2026-02-03T05:12:01.496Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T05:12:01.641Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 3.9, - "humidity": 48, - "windSpeed": 1.6, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T05:12:01.645Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 3.9, - "humidity": 48, - "windSpeed": 1.6, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T05:12:01.648Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "1049ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T05:12:08.022Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T05:12:28.294Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/departments", - "method": "GET" -} -[2026-02-03T05:12:28.295Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/departments", - "statusCode": 404, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T05:12:28.357Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "1400", - "nx": 57, - "ny": 119 -} -[2026-02-03T05:12:28.443Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 3.9, - "humidity": 48, - "windSpeed": 1.6, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T05:12:28.448Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 3.9, - "humidity": 48, - "windSpeed": 1.6, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T05:12:28.450Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "96ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T05:12:29.272Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T05:12:38.141Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T05:13:08.253Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T05:13:38.390Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T05:14:08.463Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T05:14:38.548Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T05:15:08.657Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T05:15:38.768Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T05:16:08.911Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T05:16:39.028Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T05:17:09.107Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T05:17:39.181Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T05:17:54.540Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/departments", - "method": "GET" -} -[2026-02-03T05:17:54.546Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/departments", - "statusCode": 404, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T05:17:54.795Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "1400", - "nx": 57, - "ny": 119 -} -[2026-02-03T05:17:55.508Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T05:17:55.787Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 4.2, - "humidity": 48, - "windSpeed": 1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T05:17:55.790Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 4.2, - "humidity": 48, - "windSpeed": 1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T05:17:55.792Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "1004ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T05:18:09.305Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T05:18:27.516Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/departments", - "method": "GET" -} -[2026-02-03T05:18:27.518Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/departments", - "statusCode": 404, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T05:18:27.594Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "1400", - "nx": 57, - "ny": 119 -} -[2026-02-03T05:18:27.817Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 4.2, - "humidity": 48, - "windSpeed": 1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T05:18:27.826Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 4.2, - "humidity": 48, - "windSpeed": 1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T05:18:27.829Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "242ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T05:18:28.504Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T05:18:39.448Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T05:18:40.409Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2026-02-03T05:18:40.411Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-02-03T05:19:14.491Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-02-03T05:19:14.964Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-02-03T05:19:15.493Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-02-03T05:19:16.283Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-02-03T05:19:17.455Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-02-03T05:19:19.432Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-02-03T05:19:23.006Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-02-03T05:19:29.794Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-02-03T05:19:42.982Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-02-03T05:20:09.076Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-02-03T05:20:21.766Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-02-03T05:20:21.836Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-02-03T05:20:21.936Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2026-02-03T05:20:21.943Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-02-03T05:20:26.657Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T05:20:52.056Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2026-02-03T05:20:52.059Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-02-03T05:20:53.522Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-02-03T05:20:53.609Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-02-03T05:20:53.845Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2026-02-03T05:20:53.863Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-02-03T05:20:58.412Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T05:21:28.511Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T05:21:58.653Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T05:22:09.739Z] [INFO] ℹ️ MariaDB 연결 성공 - Context: { - "connection": "db:3306", - "database": "hyungi", - "connectionLimit": 10 -} -[2026-02-03T05:22:09.750Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "57ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T05:22:09.841Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "1400", - "nx": 57, - "ny": 119 -} -[2026-02-03T05:22:09.890Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T05:22:09.980Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T05:22:10.021Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-03", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T05:22:10.052Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 4.2, - "humidity": 48, - "windSpeed": 1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T05:22:10.055Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 4.2, - "humidity": 48, - "windSpeed": 1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T05:22:10.056Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "288ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T05:22:10.171Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T05:22:10.670Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T05:22:28.759Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T05:22:38.024Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-02-03T05:22:38.041Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/departments", - "statusCode": 200, - "duration": "16ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T05:22:38.116Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "1400", - "nx": 57, - "ny": 119 -} -[2026-02-03T05:22:38.205Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 4.2, - "humidity": 48, - "windSpeed": 1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T05:22:38.209Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 4.2, - "humidity": 48, - "windSpeed": 1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T05:22:38.212Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "99ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T05:22:39.006Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T05:22:41.455Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/departments/1/workers", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T05:22:58.905Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T05:23:29.010Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T05:23:59.155Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "9ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T05:24:18.638Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "25ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T05:24:18.908Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "1400", - "nx": 57, - "ny": 119 -} -[2026-02-03T05:24:18.948Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T05:24:19.027Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 4.2, - "humidity": 48, - "windSpeed": 1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T05:24:19.029Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 4.2, - "humidity": 48, - "windSpeed": 1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T05:24:19.031Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "129ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T05:24:19.066Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T05:24:19.100Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-03", - "statusCode": 200, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T05:24:19.120Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T05:24:19.563Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T05:24:29.291Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T05:24:59.400Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T05:25:29.489Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T05:25:59.606Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T05:26:29.732Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T05:26:59.838Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T05:27:29.957Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T05:28:00.212Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T05:28:00.331Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T05:28:00.634Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "1400", - "nx": 57, - "ny": 119 -} -[2026-02-03T05:28:00.655Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T05:28:00.823Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T05:28:00.853Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-03", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T05:28:00.869Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T05:28:01.069Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 4.3, - "humidity": 51, - "windSpeed": 1.2, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T05:28:01.072Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 4.3, - "humidity": 51, - "windSpeed": 1.2, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T05:28:01.077Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "449ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T05:28:01.315Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T05:28:17.140Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "1400", - "nx": 57, - "ny": 119 -} -[2026-02-03T05:28:17.205Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "35ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T05:28:17.292Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 4.3, - "humidity": 51, - "windSpeed": 1.2, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T05:28:17.300Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 4.3, - "humidity": 51, - "windSpeed": 1.2, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T05:28:17.303Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "183ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T05:28:17.957Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T05:28:17.972Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "33ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T05:28:17.987Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T05:28:18.008Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-03", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T05:28:18.015Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T05:28:30.320Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T05:28:35.708Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-02-03T05:29:00.445Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T05:29:30.537Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T05:30:00.640Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T05:30:30.760Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T05:31:00.872Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T05:31:30.967Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T05:32:01.067Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T05:32:31.187Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T05:33:01.318Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T05:33:31.405Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T05:34:01.499Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T05:34:31.576Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T05:35:01.672Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T05:35:31.767Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T05:36:01.854Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T05:36:31.949Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T05:36:59.154Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "1400", - "nx": 57, - "ny": 119 -} -[2026-02-03T05:36:59.171Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T05:36:59.458Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T05:36:59.464Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T05:36:59.647Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-03", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T05:36:59.662Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T05:37:00.005Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T05:37:00.231Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 3.7, - "humidity": 53, - "windSpeed": 1.9, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T05:37:00.236Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 3.7, - "humidity": 53, - "windSpeed": 1.9, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T05:37:00.240Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "1096ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T05:37:02.097Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T05:37:32.238Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "8ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T05:38:02.316Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T05:38:32.412Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T05:39:02.502Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T05:39:28.178Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "21ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T05:39:28.458Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T05:39:28.597Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T05:39:28.618Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-03", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T05:39:28.628Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T05:39:29.149Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T05:39:32.638Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T05:40:02.772Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T05:40:32.861Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T05:40:39.770Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-02-03T05:41:02.945Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T05:41:33.036Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T05:42:03.196Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T05:42:33.296Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T05:43:01.849Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T05:43:03.394Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T05:43:08.676Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 200, - "duration": "84ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T05:43:09.162Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T05:43:09.205Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 304, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T05:43:09.221Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "1400", - "nx": 57, - "ny": 119 -} -[2026-02-03T05:43:09.239Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T05:43:09.257Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-03", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T05:43:09.273Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T05:43:09.572Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 3.7, - "humidity": 53, - "windSpeed": 1.9, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T05:43:09.576Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 3.7, - "humidity": 53, - "windSpeed": 1.9, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T05:43:09.580Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "368ms", - "ip": "::ffff:185.199.108.133", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T05:43:10.081Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T05:43:12.683Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T05:43:12.712Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T05:43:12.721Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T05:43:12.730Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-03", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T05:43:12.735Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T05:43:13.678Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T05:43:19.375Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "26ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T05:43:33.552Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T05:43:42.982Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 200, - "duration": "103ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T05:43:43.327Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T05:43:43.384Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 304, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T05:43:43.396Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T05:43:43.423Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-03", - "statusCode": 304, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T05:43:43.432Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T05:43:44.327Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T05:43:46.805Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000&department_id=1", - "statusCode": 200, - "duration": "53ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T05:43:46.815Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects?is_active=1", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T05:43:46.825Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/safety-checks", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T05:43:46.832Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T05:43:46.842Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks/active/list", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T05:43:46.851Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?is_active=true", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T05:43:46.857Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/active/list", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T05:43:46.862Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-03", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T05:44:03.686Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T05:44:33.781Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T05:45:03.891Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T05:45:33.987Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T05:46:04.090Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T05:46:34.188Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T05:47:04.283Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T05:47:34.364Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T05:48:04.424Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T05:48:34.493Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T05:49:04.597Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T05:49:34.672Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T05:50:04.780Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T05:50:34.874Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T05:51:04.964Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T05:51:35.051Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T05:52:05.129Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T05:52:35.210Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T05:53:05.287Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T05:53:35.361Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T05:54:05.451Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T05:54:35.541Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T05:55:05.617Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T05:55:35.710Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T05:56:05.799Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T05:56:35.897Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T05:57:05.987Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T05:57:36.104Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T05:58:00.948Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/departments", - "statusCode": 200, - "duration": "19ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T05:58:01.039Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "1400", - "nx": 57, - "ny": 119 -} -[2026-02-03T05:58:01.764Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 4.2, - "humidity": 52, - "windSpeed": 1.2, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T05:58:01.769Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 4.2, - "humidity": 52, - "windSpeed": 1.2, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T05:58:01.772Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "734ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T05:58:06.198Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T05:58:36.307Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "6ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T05:59:06.414Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T05:59:36.512Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T06:00:06.603Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T06:00:36.725Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T06:01:06.801Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T06:01:36.935Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "44ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T06:02:07.030Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T06:02:37.128Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T06:03:07.216Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T06:03:37.311Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T06:04:07.410Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T06:04:37.504Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T06:05:07.586Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T06:05:37.672Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T06:06:07.769Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T06:06:37.854Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T06:07:07.945Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T06:07:38.036Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T06:08:08.131Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T06:08:17.724Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/departments", - "statusCode": 304, - "duration": "29ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T06:08:17.772Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "1400", - "nx": 57, - "ny": 119 -} -[2026-02-03T06:08:17.879Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 4.2, - "humidity": 52, - "windSpeed": 1.2, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T06:08:17.880Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 4.2, - "humidity": 52, - "windSpeed": 1.2, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T06:08:17.882Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 304, - "duration": "110ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T06:08:21.130Z] [WARN] ⚠️ 관리자 권한이 필요합니다 - Context: { - "code": "FORBIDDEN", - "url": "/api/users", - "method": "GET", - "user": "hyungi" -} -[2026-02-03T06:08:21.133Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/users", - "statusCode": 403, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T06:08:38.230Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T06:08:49.375Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/departments", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T06:08:53.372Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T06:08:53.385Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T06:08:53.391Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T06:08:53.402Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-03", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T06:08:53.407Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T06:08:54.370Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T06:09:08.331Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T06:09:38.424Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T06:10:08.540Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T06:10:38.654Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T06:11:08.750Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T06:11:38.843Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T06:11:59.977Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers?limit=1000&department_id=1", - "statusCode": 304, - "duration": "15ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T06:12:00.017Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/projects?is_active=1", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T06:12:00.029Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/safety-checks", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T06:12:00.037Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T06:12:00.044Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tasks/active/list", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T06:12:00.050Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces?is_active=true", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T06:12:00.054Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/active/list", - "statusCode": 304, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T06:12:00.063Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-03", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T06:12:01.687Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T06:12:01.707Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T06:12:01.715Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T06:12:01.725Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-03", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T06:12:01.731Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T06:12:02.682Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T06:12:03.241Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000&department_id=1", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T06:12:03.265Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/projects?is_active=1", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T06:12:03.277Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/safety-checks", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T06:12:03.282Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T06:12:03.285Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tasks/active/list", - "statusCode": 304, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T06:12:03.290Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces?is_active=true", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T06:12:03.294Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/active/list", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T06:12:03.299Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-03", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T06:12:04.565Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T06:12:04.595Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T06:12:04.602Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T06:12:04.611Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-03", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T06:12:04.617Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T06:12:05.558Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T06:12:08.923Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T06:12:31.007Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers?limit=1000&department_id=1", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T06:12:31.077Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/projects?is_active=1", - "statusCode": 304, - "duration": "46ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T06:12:31.095Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/safety-checks", - "statusCode": 304, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T06:12:31.115Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 304, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T06:12:31.121Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tasks/active/list", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T06:12:31.132Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces?is_active=true", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T06:12:31.138Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/active/list", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T06:12:31.149Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-03", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T06:12:39.005Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T06:12:39.394Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/departments", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T06:13:03.856Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T06:13:07.166Z] [WARN] ⚠️ 권한 레벨 체크 실패: 권한 부족 - Context: { - "user_id": 1, - "username": "hyungi", - "current_level": null, - "current_level_value": 0, - "required_level": "support_team", - "required_level_value": 3, - "path": "/stats/summary" -} -[2026-02-03T06:13:07.168Z] [WARN] ⚠️ 이 기능을 사용하려면 support_team 이상의 권한이 필요합니다 (현재: null) - Context: { - "code": "FORBIDDEN", - "url": "/api/work-issues/stats/summary?category_type=safety", - "method": "GET", - "user": "hyungi" -} -[2026-02-03T06:13:07.171Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/work-issues/stats/summary?category_type=safety", - "statusCode": 403, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T06:13:07.179Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues?category_type=safety", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T06:13:09.098Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T06:13:20.246Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000&department_id=1", - "statusCode": 200, - "duration": "19ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:13:20.370Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "1500", - "nx": 57, - "ny": 119 -} -[2026-02-03T06:13:20.413Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects?is_active=1", - "statusCode": 200, - "duration": "59ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:13:20.438Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/safety-checks", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:13:20.450Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:13:20.462Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks/active/list", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:13:20.477Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?is_active=true", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:13:20.483Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/active/list", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:13:20.496Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-03", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:13:20.867Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 3.5, - "humidity": 53, - "windSpeed": 1.6, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T06:13:20.871Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 3.5, - "humidity": 53, - "windSpeed": 1.6, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T06:13:20.877Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "515ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:13:39.223Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T06:13:58.255Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T06:13:58.273Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T06:13:58.278Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T06:13:58.290Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-03", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T06:13:58.300Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T06:13:58.323Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "1500", - "nx": 57, - "ny": 119 -} -[2026-02-03T06:13:59.248Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T06:13:59.949Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 3.5, - "humidity": 53, - "windSpeed": 1.6, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T06:13:59.954Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 3.5, - "humidity": 53, - "windSpeed": 1.6, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T06:13:59.960Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "1637ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T06:14:01.503Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers?limit=1000&department_id=1", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T06:14:01.527Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/projects?is_active=1", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T06:14:01.540Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/safety-checks", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T06:14:01.545Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T06:14:01.551Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tasks/active/list", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T06:14:01.555Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces?is_active=true", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T06:14:01.561Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/active/list", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T06:14:01.565Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-03", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T06:14:09.334Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T06:14:12.365Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000&department_id=1", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T06:14:12.374Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/projects?is_active=1", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T06:14:12.380Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/safety-checks", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T06:14:12.385Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T06:14:12.389Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tasks/active/list", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T06:14:12.394Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces?is_active=true", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T06:14:12.398Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/active/list", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T06:14:12.403Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-03", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T06:14:14.241Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T06:14:14.261Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T06:14:14.266Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T06:14:14.274Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-03", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T06:14:14.281Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T06:14:15.242Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T06:14:38.652Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/apihttp://localhost:20005/api/workers?limit=1000&department_id=1", - "method": "GET" -} -[2026-02-03T06:14:38.666Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/apihttp://localhost:20005/api/projects/active/list", - "method": "GET" -} -[2026-02-03T06:14:38.674Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/apihttp://localhost:20005/api/daily-work-reports/work-types", - "method": "GET" -} -[2026-02-03T06:14:38.681Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/apihttp://localhost:20005/api/daily-work-reports/work-status-types", - "method": "GET" -} -[2026-02-03T06:14:38.686Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/apihttp://localhost:20005/api/daily-work-reports/error-types", - "method": "GET" -} -[2026-02-03T06:14:38.691Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues/categories/type/nonconformity", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T06:14:38.697Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T06:14:39.418Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T06:14:57.730Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-02-03T06:14:57.816Z] [WARN] ⚠️ 아이디 또는 비밀번호가 올바르지 않습니다. - Context: { - "code": "AUTHENTICATION_ERROR", - "url": "/api/auth/login", - "method": "POST", - "user": "anonymous" -} -[2026-02-03T06:14:57.816Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 401, - "duration": "76ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-02-03T06:15:09.514Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T06:15:39.610Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T06:16:09.706Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T06:16:39.793Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T06:17:09.884Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T06:17:39.982Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T06:18:10.068Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T06:18:40.159Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T06:19:10.239Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T06:19:13.651Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/apihttp://localhost:20005/api/workers?limit=1000&department_id=1", - "method": "GET" -} -[2026-02-03T06:19:13.685Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/apihttp://localhost:20005/api/projects/active/list", - "method": "GET" -} -[2026-02-03T06:19:13.694Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/apihttp://localhost:20005/api/daily-work-reports/work-types", - "method": "GET" -} -[2026-02-03T06:19:13.699Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/apihttp://localhost:20005/api/daily-work-reports/work-status-types", - "method": "GET" -} -[2026-02-03T06:19:13.703Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/apihttp://localhost:20005/api/daily-work-reports/error-types", - "method": "GET" -} -[2026-02-03T06:19:13.711Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/work-issues/categories/type/nonconformity", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T06:19:13.717Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T06:19:13.736Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "1500", - "nx": 57, - "ny": 119 -} -[2026-02-03T06:19:14.678Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 3.3, - "humidity": 53, - "windSpeed": 1.5, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T06:19:14.685Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 3.3, - "humidity": 53, - "windSpeed": 1.5, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T06:19:14.693Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "959ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T06:19:14.700Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "1500", - "nx": 57, - "ny": 119 -} -[2026-02-03T06:19:14.760Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 3.3, - "humidity": 53, - "windSpeed": 1.5, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T06:19:14.764Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 3.3, - "humidity": 53, - "windSpeed": 1.5, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T06:19:14.766Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 304, - "duration": "68ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T06:19:15.737Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T06:19:15.753Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T06:19:15.764Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T06:19:15.774Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-03", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T06:19:15.780Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T06:19:16.737Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T06:19:25.004Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T06:19:25.018Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T06:19:25.024Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T06:19:25.035Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-03", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T06:19:25.041Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T06:19:25.999Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T06:19:33.293Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000&department_id=1", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T06:19:33.310Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/projects?is_active=1", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T06:19:33.318Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/safety-checks", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T06:19:33.324Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T06:19:33.328Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tasks/active/list", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T06:19:33.334Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces?is_active=true", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T06:19:33.339Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/active/list", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T06:19:33.343Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-03", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T06:19:40.323Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T06:20:08.096Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T06:20:10.404Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T06:20:30.425Z] [WARN] ⚠️ 관리자 권한이 필요합니다 - Context: { - "code": "FORBIDDEN", - "url": "/api/users", - "method": "GET", - "user": "hyungi" -} -[2026-02-03T06:20:30.427Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/users", - "statusCode": 403, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T06:20:40.484Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T06:21:10.575Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T06:21:40.663Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T06:22:10.754Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T06:22:40.841Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T06:23:10.925Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T06:23:41.013Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T06:24:11.100Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T06:24:41.256Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T06:24:49.142Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "1500", - "nx": 57, - "ny": 119 -} -[2026-02-03T06:24:49.159Z] [WARN] ⚠️ 관리자 권한이 필요합니다 - Context: { - "code": "FORBIDDEN", - "url": "/api/users", - "method": "GET", - "user": "hyungi" -} -[2026-02-03T06:24:49.160Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/users", - "statusCode": 403, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T06:24:49.676Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 3.3, - "humidity": 53, - "windSpeed": 1.5, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T06:24:49.680Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 3.3, - "humidity": 53, - "windSpeed": 1.5, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T06:24:49.683Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "543ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T06:24:51.201Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers?limit=1000&department_id=1", - "statusCode": 304, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T06:24:51.214Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/projects?is_active=1", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T06:24:51.226Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/safety-checks", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T06:24:51.231Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 304, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T06:24:51.235Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tasks/active/list", - "statusCode": 304, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T06:24:51.239Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces?is_active=true", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T06:24:51.244Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/active/list", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T06:24:51.248Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-03", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T06:24:53.380Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/apihttp://localhost:20005/api/workers?limit=1000&department_id=1", - "method": "GET" -} -[2026-02-03T06:24:53.392Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/apihttp://localhost:20005/api/projects/active/list", - "method": "GET" -} -[2026-02-03T06:24:53.401Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/apihttp://localhost:20005/api/daily-work-reports/work-types", - "method": "GET" -} -[2026-02-03T06:24:53.406Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/apihttp://localhost:20005/api/daily-work-reports/work-status-types", - "method": "GET" -} -[2026-02-03T06:24:53.412Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/apihttp://localhost:20005/api/daily-work-reports/error-types", - "method": "GET" -} -[2026-02-03T06:24:53.419Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/work-issues/categories/type/nonconformity", - "statusCode": 304, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T06:24:53.424Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-03T06:25:02.161Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:25:11.409Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T06:25:29.700Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 200, - "duration": "102ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:25:30.508Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:25:30.554Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:25:30.558Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "1500", - "nx": 57, - "ny": 119 -} -[2026-02-03T06:25:30.571Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:25:30.589Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-03", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:25:30.598Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:25:30.646Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 3.2, - "humidity": 54, - "windSpeed": 0.8, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T06:25:30.650Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 3.2, - "humidity": 54, - "windSpeed": 0.8, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T06:25:30.651Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "96ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:25:31.502Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:25:34.026Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers?limit=1000&department_id=1", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:25:34.067Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/projects?is_active=1", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:25:34.079Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/safety-checks", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:25:34.086Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:25:34.091Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tasks/active/list", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:25:34.096Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces?is_active=true", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:25:34.103Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/active/list", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:25:34.108Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-03", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:25:37.426Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/apihttp://localhost:20005/api/workers?limit=1000&department_id=1", - "method": "GET" -} -[2026-02-03T06:25:37.476Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/apihttp://localhost:20005/api/projects/active/list", - "method": "GET" -} -[2026-02-03T06:25:37.489Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/apihttp://localhost:20005/api/daily-work-reports/work-types", - "method": "GET" -} -[2026-02-03T06:25:37.497Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/apihttp://localhost:20005/api/daily-work-reports/work-status-types", - "method": "GET" -} -[2026-02-03T06:25:37.504Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/apihttp://localhost:20005/api/daily-work-reports/error-types", - "method": "GET" -} -[2026-02-03T06:25:37.516Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues/categories/type/nonconformity", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:25:37.524Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:25:41.520Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T06:25:55.603Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:25:55.685Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:25:55.696Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:25:55.710Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-03", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:25:55.717Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:25:56.525Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:26:11.618Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T06:26:15.132Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "9ms", - "ip": "::1", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-02-03T06:26:37.110Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-02-03T06:26:41.708Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T06:26:46.976Z] [ERROR] ❌ Unexpected token ! in JSON at position 42 - Context: { - "code": "INTERNAL_ERROR", - "stack": "AppError: Unexpected token ! in JSON at position 42\n at errorHandler (/usr/src/app/middlewares/errorHandler.js:51:13)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:71:5)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/src/app/node_modules/express/lib/router/index.js:280:10)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:67:12)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)", - "url": "/api/auth/login", - "method": "POST", - "user": "anonymous" -} -[2026-02-03T06:26:50.711Z] [ERROR] ❌ Unexpected token ! in JSON at position 42 - Context: { - "code": "INTERNAL_ERROR", - "stack": "AppError: Unexpected token ! in JSON at position 42\n at errorHandler (/usr/src/app/middlewares/errorHandler.js:51:13)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:71:5)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/src/app/node_modules/express/lib/router/index.js:280:10)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:67:12)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)", - "url": "/api/auth/login", - "method": "POST", - "user": "anonymous" -} -[2026-02-03T06:26:54.897Z] [WARN] ⚠️ 아이디 또는 비밀번호가 올바르지 않습니다. - Context: { - "code": "AUTHENTICATION_ERROR", - "url": "/api/auth/login", - "method": "POST", - "user": "anonymous" -} -[2026-02-03T06:26:54.898Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 401, - "duration": "82ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-02-03T06:27:01.590Z] [WARN] ⚠️ 인증 실패: Authorization 헤더 없음 - Context: { - "path": "/", - "method": "GET", - "ip": "::ffff:185.199.108.133" -} -[2026-02-03T06:27:01.592Z] [WARN] ⚠️ Authorization 헤더가 필요합니다 - Context: { - "code": "AUTHENTICATION_ERROR", - "url": "/api/workers", - "method": "GET", - "user": "anonymous" -} -[2026-02-03T06:27:01.594Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 401, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-02-03T06:27:11.817Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T06:27:41.896Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T06:28:11.997Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T06:28:42.113Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T06:29:12.212Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T06:29:14.575Z] [WARN] ⚠️ 인증 실패: Authorization 헤더 없음 - Context: { - "path": "/", - "method": "GET", - "ip": "::ffff:185.199.108.133" -} -[2026-02-03T06:29:14.578Z] [WARN] ⚠️ Authorization 헤더가 필요합니다 - Context: { - "code": "AUTHENTICATION_ERROR", - "url": "/api/workers", - "method": "GET", - "user": "anonymous" -} -[2026-02-03T06:29:14.580Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 401, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-02-03T06:29:36.591Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:29:36.631Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:29:36.639Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:29:36.652Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-03", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:29:36.659Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:29:37.582Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:29:39.237Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000&department_id=1", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:29:39.265Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects?is_active=1", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:29:39.277Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/safety-checks", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:29:39.284Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:29:39.291Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks/active/list", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:29:39.299Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?is_active=true", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:29:39.305Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/active/list", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:29:39.310Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-03", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:29:40.463Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000&department_id=1", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:29:40.489Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:29:40.495Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:29:40.506Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:29:40.513Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:29:40.518Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues/categories/type/nonconformity", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:29:40.524Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:29:42.310Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T06:29:54.084Z] [WARN] ⚠️ 관리자 권한이 필요합니다 - Context: { - "code": "FORBIDDEN", - "url": "/api/users", - "method": "GET", - "user": "hyungi" -} -[2026-02-03T06:29:54.086Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/users", - "statusCode": 403, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:29:58.021Z] [WARN] ⚠️ 관리자 권한이 필요합니다 - Context: { - "code": "FORBIDDEN", - "url": "/api/users", - "method": "GET", - "user": "hyungi" -} -[2026-02-03T06:29:58.021Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/users", - "statusCode": 403, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:30:12.383Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T06:30:32.704Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000&department_id=1", - "statusCode": 200, - "duration": "20ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:30:32.779Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:30:32.782Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "1500", - "nx": 57, - "ny": 119 -} -[2026-02-03T06:30:32.794Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "1500", - "nx": 57, - "ny": 119 -} -[2026-02-03T06:30:32.798Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:30:32.802Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 304, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:30:32.805Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 304, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:30:32.809Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/work-issues/categories/type/nonconformity", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:30:32.815Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:30:33.766Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 3.2, - "humidity": 54, - "windSpeed": 0.7, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T06:30:33.772Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 3.2, - "humidity": 54, - "windSpeed": 0.7, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T06:30:33.778Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "998ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:30:36.133Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 3.2, - "humidity": 54, - "windSpeed": 0.7, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T06:30:36.136Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 3.2, - "humidity": 54, - "windSpeed": 0.7, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T06:30:36.138Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "3345ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:30:38.563Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000&department_id=1", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:30:38.625Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:30:38.637Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:30:38.645Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:30:38.652Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:30:38.657Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues/categories/type/nonconformity", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:30:38.665Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues/items", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:30:38.673Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:30:42.471Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T06:30:44.276Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:30:45.273Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:30:48.130Z] [INFO] ℹ️ 프로젝트별-작업별 시간 분석 요청 - Context: { - "start": "2026-02-01", - "end": "2026-02-28" -} -[2026-02-03T06:30:48.137Z] [INFO] ℹ️ 작업자별 통계 조회 요청 - Context: { - "start": "2026-02-01", - "end": "2026-02-28" -} -[2026-02-03T06:30:48.145Z] [INFO] ℹ️ 프로젝트별-작업별 시간 분석 성공 - Context: { - "start": "2026-02-01", - "end": "2026-02-28", - "projectCount": 0, - "workTypeCount": 0, - "totalHours": 0 -} -[2026-02-03T06:30:48.147Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-analysis/project-worktype-analysis?start=2026-02-01&end=2026-02-28", - "statusCode": 200, - "duration": "21ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:30:48.154Z] [INFO] ℹ️ 작업자별 통계 조회 성공 - Context: { - "start": "2026-02-01", - "end": "2026-02-28", - "workerCount": 0 -} -[2026-02-03T06:30:48.155Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-analysis/worker-stats?start=2026-02-01&end=2026-02-28", - "statusCode": 200, - "duration": "20ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:30:48.166Z] [INFO] ℹ️ 최근 작업 현황 조회 요청 - Context: { - "start": "2026-02-01", - "end": "2026-02-28", - "limit": 2000 -} -[2026-02-03T06:30:48.169Z] [INFO] ℹ️ 최근 작업 현황 조회 성공 - Context: { - "start": "2026-02-01", - "end": "2026-02-28", - "limit": 2000, - "resultCount": 0 -} -[2026-02-03T06:30:48.170Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-analysis/recent-work?start=2026-02-01&end=2026-02-28&limit=2000", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:30:57.323Z] [INFO] ℹ️ 프로젝트별-작업별 시간 분석 요청 - Context: { - "start": "2025-12-01", - "end": "2026-02-28" -} -[2026-02-03T06:30:57.328Z] [INFO] ℹ️ 작업자별 통계 조회 요청 - Context: { - "start": "2025-12-01", - "end": "2026-02-28" -} -[2026-02-03T06:30:57.329Z] [INFO] ℹ️ 프로젝트별-작업별 시간 분석 성공 - Context: { - "start": "2025-12-01", - "end": "2026-02-28", - "projectCount": 2, - "workTypeCount": 1, - "totalHours": 264 -} -[2026-02-03T06:30:57.331Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-analysis/project-worktype-analysis?start=2025-12-01&end=2026-02-28", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:30:57.336Z] [INFO] ℹ️ 작업자별 통계 조회 성공 - Context: { - "start": "2025-12-01", - "end": "2026-02-28", - "workerCount": 9 -} -[2026-02-03T06:30:57.342Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-analysis/worker-stats?start=2025-12-01&end=2026-02-28", - "statusCode": 200, - "duration": "16ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:30:57.348Z] [INFO] ℹ️ 최근 작업 현황 조회 요청 - Context: { - "start": "2025-12-01", - "end": "2026-02-28", - "limit": 2000 -} -[2026-02-03T06:30:57.352Z] [INFO] ℹ️ 최근 작업 현황 조회 성공 - Context: { - "start": "2025-12-01", - "end": "2026-02-28", - "limit": 2000, - "resultCount": 37 -} -[2026-02-03T06:30:57.354Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-analysis/recent-work?start=2025-12-01&end=2026-02-28&limit=2000", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:31:12.555Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T06:31:15.477Z] [INFO] ℹ️ 프로젝트별-작업별 시간 분석 요청 - Context: { - "start": "2025-11-01", - "end": "2025-11-30" -} -[2026-02-03T06:31:15.479Z] [INFO] ℹ️ 작업자별 통계 조회 요청 - Context: { - "start": "2025-11-01", - "end": "2025-11-30" -} -[2026-02-03T06:31:15.481Z] [INFO] ℹ️ 프로젝트별-작업별 시간 분석 성공 - Context: { - "start": "2025-11-01", - "end": "2025-11-30", - "projectCount": 4, - "workTypeCount": 3, - "totalHours": 2091 -} -[2026-02-03T06:31:15.483Z] [INFO] ℹ️ 작업자별 통계 조회 성공 - Context: { - "start": "2025-11-01", - "end": "2025-11-30", - "workerCount": 10 -} -[2026-02-03T06:31:15.483Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-analysis/project-worktype-analysis?start=2025-11-01&end=2025-11-30", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:31:15.484Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-analysis/worker-stats?start=2025-11-01&end=2025-11-30", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:31:15.492Z] [INFO] ℹ️ 최근 작업 현황 조회 요청 - Context: { - "start": "2025-11-01", - "end": "2025-11-30", - "limit": 2000 -} -[2026-02-03T06:31:15.501Z] [INFO] ℹ️ 최근 작업 현황 조회 성공 - Context: { - "start": "2025-11-01", - "end": "2025-11-30", - "limit": 2000, - "resultCount": 390 -} -[2026-02-03T06:31:15.505Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-analysis/recent-work?start=2025-11-01&end=2025-11-30&limit=2000", - "statusCode": 200, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:31:20.327Z] [INFO] ℹ️ 프로젝트별-작업별 시간 분석 요청 - Context: { - "start": "2025-11-01", - "end": "2025-11-30" -} -[2026-02-03T06:31:20.328Z] [INFO] ℹ️ 최근 작업 현황 조회 요청 - Context: { - "start": "2025-11-01", - "end": "2025-11-30", - "limit": 2000 -} -[2026-02-03T06:31:20.329Z] [INFO] ℹ️ 작업자별 통계 조회 요청 - Context: { - "start": "2025-11-01", - "end": "2025-11-30" -} -[2026-02-03T06:31:20.333Z] [INFO] ℹ️ 프로젝트별-작업별 시간 분석 성공 - Context: { - "start": "2025-11-01", - "end": "2025-11-30", - "projectCount": 4, - "workTypeCount": 3, - "totalHours": 2091 -} -[2026-02-03T06:31:20.339Z] [INFO] ℹ️ 최근 작업 현황 조회 성공 - Context: { - "start": "2025-11-01", - "end": "2025-11-30", - "limit": 2000, - "resultCount": 390 -} -[2026-02-03T06:31:20.343Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/work-analysis/recent-work?start=2025-11-01&end=2025-11-30&limit=2000", - "statusCode": 304, - "duration": "15ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:31:20.345Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-analysis/project-worktype-analysis?start=2025-11-01&end=2025-11-30&limit=2000", - "statusCode": 200, - "duration": "20ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:31:20.349Z] [INFO] ℹ️ 작업자별 통계 조회 성공 - Context: { - "start": "2025-11-01", - "end": "2025-11-30", - "workerCount": 10 -} -[2026-02-03T06:31:20.351Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-analysis/worker-stats?start=2025-11-01&end=2025-11-30&limit=2000", - "statusCode": 200, - "duration": "22ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:31:41.848Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2026-02-03T06:31:41.850Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-02-03T06:31:42.303Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-02-03T06:31:42.377Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-02-03T06:31:42.450Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2026-02-03T06:31:42.456Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-02-03T06:31:47.195Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T06:31:52.939Z] [INFO] ℹ️ MariaDB 연결 성공 - Context: { - "connection": "db:3306", - "database": "hyungi", - "connectionLimit": 10 -} -[2026-02-03T06:31:52.943Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "29ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:31:52.967Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:31:53.006Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:31:53.020Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-03", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:31:53.027Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:31:53.905Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:31:55.762Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:31:55.792Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:31:55.804Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:31:55.816Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-03", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:31:55.823Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:31:56.762Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:32:17.290Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T06:32:37.902Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "30ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:32:40.341Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:32:40.850Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/attendance/records?worker_id=11&start_date=2026-02-01&end_date=2026-02-28", - "method": "GET" -} -[2026-02-03T06:32:40.851Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/attendance/records?worker_id=11&start_date=2026-02-01&end_date=2026-02-28", - "statusCode": 404, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:32:47.396Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T06:32:53.695Z] [WARN] ⚠️ 권한 레벨 체크 실패: 권한 부족 - Context: { - "user_id": 1, - "username": "hyungi", - "current_level": null, - "current_level_value": 0, - "required_level": "support_team", - "required_level_value": 3, - "path": "/stats/summary" -} -[2026-02-03T06:32:53.697Z] [WARN] ⚠️ 이 기능을 사용하려면 support_team 이상의 권한이 필요합니다 (현재: null) - Context: { - "code": "FORBIDDEN", - "url": "/api/work-issues/stats/summary?category_type=safety", - "method": "GET", - "user": "hyungi" -} -[2026-02-03T06:32:53.700Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/work-issues/stats/summary?category_type=safety", - "statusCode": 403, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:32:53.706Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues?category_type=safety", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:33:03.907Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:33:03.970Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:33:03.978Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:33:03.992Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-03", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:33:04.001Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:33:04.893Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:33:06.023Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000&department_id=1", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:33:06.082Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects?is_active=1", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:33:06.096Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/safety-checks", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:33:06.104Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:33:06.116Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks/active/list", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:33:06.146Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?is_active=true", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:33:06.153Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/active/list", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:33:06.163Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-03", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:33:08.996Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000&department_id=1", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:33:09.061Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:33:09.066Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:33:09.074Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:33:09.084Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:33:09.091Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues/categories/type/nonconformity", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:33:09.101Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues/items", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:33:09.109Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:33:17.472Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T06:33:31.578Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:33:32.569Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:33:34.245Z] [WARN] ⚠️ 권한 레벨 체크 실패: 권한 부족 - Context: { - "user_id": 1, - "username": "hyungi", - "current_level": null, - "current_level_value": 0, - "required_level": "support_team", - "required_level_value": 3, - "path": "/stats/summary" -} -[2026-02-03T06:33:34.247Z] [WARN] ⚠️ 이 기능을 사용하려면 support_team 이상의 권한이 필요합니다 (현재: null) - Context: { - "code": "FORBIDDEN", - "url": "/api/work-issues/stats/summary?category_type=nonconformity", - "method": "GET", - "user": "hyungi" -} -[2026-02-03T06:33:34.248Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/work-issues/stats/summary?category_type=nonconformity", - "statusCode": 403, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:33:34.253Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues?category_type=nonconformity", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:33:47.574Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T06:34:17.671Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T06:34:47.761Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T06:35:17.850Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T06:35:47.939Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T06:36:18.050Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T06:36:48.152Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T06:37:18.223Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T06:37:48.294Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T06:38:18.367Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T06:38:48.477Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T06:39:18.558Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T06:39:48.638Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T06:40:18.717Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T06:40:48.785Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T06:41:18.857Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T06:41:35.467Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:41:35.604Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "1500", - "nx": 57, - "ny": 119 -} -[2026-02-03T06:41:35.646Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "105ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:41:35.654Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:41:35.665Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-03", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:41:35.673Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:41:36.430Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:41:37.731Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 4, - "humidity": 54, - "windSpeed": 1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T06:41:37.738Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 4, - "humidity": 54, - "windSpeed": 1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T06:41:37.741Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "2193ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:41:48.966Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T06:42:15.628Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/active/list", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:42:15.678Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:42:15.683Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-03", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:42:15.693Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:42:15.694Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:42:19.089Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T06:42:49.194Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T06:43:19.311Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T06:43:49.403Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T06:44:19.506Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T06:44:49.624Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T06:45:19.711Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T06:45:49.793Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T06:46:19.883Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T06:46:49.986Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T06:47:20.086Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T06:47:50.177Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T06:48:20.273Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T06:48:50.365Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T06:49:20.461Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T06:49:45.828Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/active/list", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:49:45.934Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "1500", - "nx": 57, - "ny": 119 -} -[2026-02-03T06:49:45.945Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:49:45.953Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:49:45.955Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-03", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:49:45.966Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:49:47.078Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 3.6, - "humidity": 54, - "windSpeed": 1.5, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T06:49:47.085Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 3.6, - "humidity": 54, - "windSpeed": 1.5, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T06:49:47.090Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "1157ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:49:48.942Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:49:49.076Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:49:49.086Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:49:49.097Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-03", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:49:49.106Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:49:49.931Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:49:50.576Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T06:49:54.458Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/active/list", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:49:54.505Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:49:54.512Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:49:54.513Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-03", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:49:54.522Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:50:00.883Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000&department_id=1", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:50:00.945Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects?is_active=1", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:50:01.039Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/safety-checks", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:50:01.048Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:50:01.056Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks/active/list", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:50:01.062Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?is_active=true", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:50:01.066Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/active/list", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:50:01.071Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-03", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:50:03.246Z] [WARN] ⚠️ 권한 레벨 체크 실패: 권한 부족 - Context: { - "user_id": 1, - "username": "hyungi", - "current_level": null, - "current_level_value": 0, - "required_level": "support_team", - "required_level_value": 3, - "path": "/stats/summary" -} -[2026-02-03T06:50:03.247Z] [WARN] ⚠️ 이 기능을 사용하려면 support_team 이상의 권한이 필요합니다 (현재: null) - Context: { - "code": "FORBIDDEN", - "url": "/api/work-issues/stats/summary?category_type=nonconformity", - "method": "GET", - "user": "hyungi" -} -[2026-02-03T06:50:03.249Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/work-issues/stats/summary?category_type=nonconformity", - "statusCode": 403, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:50:03.255Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues?category_type=nonconformity", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:50:20.712Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T06:50:50.810Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T06:51:20.907Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T06:51:50.993Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T06:52:21.074Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T06:52:51.168Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T06:53:21.260Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T06:53:51.360Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T06:54:21.462Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T06:54:51.553Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T06:55:21.794Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T06:55:25.713Z] [WARN] ⚠️ 권한 레벨 체크 실패: 권한 부족 - Context: { - "user_id": 1, - "username": "hyungi", - "current_level": null, - "current_level_value": 0, - "required_level": "support_team", - "required_level_value": 3, - "path": "/stats/summary" -} -[2026-02-03T06:55:25.714Z] [WARN] ⚠️ 이 기능을 사용하려면 support_team 이상의 권한이 필요합니다 (현재: null) - Context: { - "code": "FORBIDDEN", - "url": "/api/work-issues/stats/summary?category_type=nonconformity", - "method": "GET", - "user": "hyungi" -} -[2026-02-03T06:55:25.715Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/work-issues/stats/summary?category_type=nonconformity", - "statusCode": 403, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:55:25.721Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues?category_type=nonconformity", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:55:25.780Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260203", - "baseTime": "1500", - "nx": 57, - "ny": 119 -} -[2026-02-03T06:55:27.389Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 3.3, - "humidity": 55, - "windSpeed": 1.4, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T06:55:27.396Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 3.3, - "humidity": 55, - "windSpeed": 1.4, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T06:55:27.405Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "1628ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:55:34.965Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:55:48.014Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 200, - "duration": "110ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:55:49.979Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:55:50.024Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:55:50.033Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:55:50.068Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-03", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:55:50.076Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:55:50.975Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:55:51.944Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T06:55:55.342Z] [WARN] ⚠️ 권한 레벨 체크 실패: 권한 부족 - Context: { - "user_id": 1, - "username": "hyungi", - "current_level": null, - "current_level_value": 0, - "required_level": "support_team", - "required_level_value": 3, - "path": "/stats/summary" -} -[2026-02-03T06:55:55.344Z] [WARN] ⚠️ 이 기능을 사용하려면 support_team 이상의 권한이 필요합니다 (현재: null) - Context: { - "code": "FORBIDDEN", - "url": "/api/work-issues/stats/summary?category_type=nonconformity", - "method": "GET", - "user": "hyungi" -} -[2026-02-03T06:55:55.346Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/work-issues/stats/summary?category_type=nonconformity", - "statusCode": 403, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:55:55.353Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues?category_type=nonconformity", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:56:22.061Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T06:56:52.155Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T06:57:22.247Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T06:57:52.467Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T06:58:50.486Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T06:59:48.813Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T07:00:18.917Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T07:01:23.378Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T07:01:53.473Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T07:05:27.032Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T07:22:22.126Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T07:22:52.212Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T07:23:22.279Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T07:23:52.332Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T07:24:22.395Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T07:24:52.451Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T07:25:22.520Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T07:25:52.603Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T07:26:22.694Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T07:26:52.785Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T07:27:22.875Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T07:27:52.966Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T07:28:23.062Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T07:28:53.160Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T07:29:23.253Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T07:29:53.352Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T07:30:23.443Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T07:30:53.547Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T07:31:23.646Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T07:31:53.735Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T07:32:23.837Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T07:32:53.931Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T07:33:24.024Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T07:33:54.131Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T07:34:24.236Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T07:34:54.319Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T07:35:24.409Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T07:35:54.496Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T07:36:24.596Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T07:36:54.690Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T07:37:24.795Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T07:37:54.877Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T07:38:24.956Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T07:38:55.038Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T07:39:25.141Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T07:39:55.238Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T07:40:25.335Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T07:40:55.423Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T07:41:25.506Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T07:41:55.592Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T07:42:25.667Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T07:42:55.753Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T07:43:25.830Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T07:43:55.920Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T07:44:26.004Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T07:44:56.081Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T07:45:26.147Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T07:45:56.239Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T07:46:26.329Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T07:46:56.416Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T07:47:26.508Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T07:47:56.605Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T07:48:26.699Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T07:48:56.783Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T07:49:26.869Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T07:49:56.964Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T07:50:27.056Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T07:50:57.163Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T07:51:27.265Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T07:51:57.343Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T07:52:27.447Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T07:52:57.544Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T07:53:27.645Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T07:53:57.724Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T07:54:27.830Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T07:54:57.926Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T07:55:28.019Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T07:55:58.111Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T07:56:28.210Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T07:56:58.311Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T07:57:28.404Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T07:57:58.493Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T07:58:28.584Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T07:58:58.664Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T07:59:28.755Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T07:59:58.839Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T08:00:28.939Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T08:00:59.025Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T08:01:29.127Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T08:01:59.230Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T08:02:29.310Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T08:02:59.402Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T08:03:29.491Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T08:03:59.577Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T08:04:29.668Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T08:04:59.773Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T08:05:29.855Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T08:05:59.953Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T08:06:30.045Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T08:07:00.150Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T08:07:30.243Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T08:08:00.335Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T08:08:30.423Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T08:09:00.504Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T08:09:30.600Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T08:10:00.697Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T08:10:30.792Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T08:11:00.881Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T08:11:30.982Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T08:12:01.072Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T08:12:31.170Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T08:13:01.259Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T08:13:31.360Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T08:14:01.450Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T08:14:31.551Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T08:15:01.633Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T08:15:31.733Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T08:16:01.832Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T08:16:31.927Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T08:17:02.027Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T08:17:32.113Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T08:18:02.207Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T08:18:32.311Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T08:19:02.418Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T08:19:32.514Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T08:20:02.570Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T08:20:32.623Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T08:21:02.681Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T08:21:32.755Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T08:22:02.807Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T08:22:32.861Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T08:23:02.920Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T08:23:32.975Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T08:24:03.045Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T08:24:33.106Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T08:25:03.182Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T08:25:33.244Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T08:26:03.299Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T08:26:33.356Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T08:27:03.419Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T08:27:33.470Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T08:43:01.214Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T08:43:31.265Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T08:44:01.323Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T08:44:31.374Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T08:45:01.426Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T08:45:31.480Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T08:46:01.534Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T08:46:31.590Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T08:47:01.642Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T08:47:31.693Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T08:48:01.749Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T08:48:31.814Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T08:49:01.883Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T08:49:31.935Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T08:50:01.987Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T08:50:32.048Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T08:51:02.101Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T08:51:32.173Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T08:52:02.229Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T08:52:32.298Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T08:53:02.353Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T08:53:32.430Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T08:54:02.481Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T08:54:32.530Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T08:55:02.585Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T08:55:32.637Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T08:56:02.688Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T08:56:32.743Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T08:57:02.800Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T08:57:32.856Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T08:58:02.904Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T08:58:32.955Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T08:59:03.018Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T08:59:33.068Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T09:00:03.122Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T09:00:33.189Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T09:01:03.258Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T09:01:33.316Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T09:02:03.366Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T09:02:33.419Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T09:03:03.478Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T09:03:33.530Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T09:04:03.580Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T09:04:33.632Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T09:05:03.698Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T09:05:33.757Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T09:06:03.813Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T09:06:33.924Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T09:07:03.992Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T09:07:34.060Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T09:08:04.139Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T09:08:34.197Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T09:09:04.271Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T09:09:34.340Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T09:10:04.416Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T09:10:34.490Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T09:11:04.568Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T09:11:34.658Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T09:12:04.738Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T09:12:34.819Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T09:13:04.909Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T09:13:35.003Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T09:14:05.104Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T09:14:35.193Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T09:15:05.281Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T09:15:35.370Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T09:16:05.465Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T09:16:35.576Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T09:17:05.672Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T09:17:35.758Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T09:18:05.854Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T09:18:35.947Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T09:19:06.049Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T09:19:36.142Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T09:20:06.238Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T09:20:36.322Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T09:21:06.422Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T09:21:36.508Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T09:22:06.598Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T09:22:36.697Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T09:23:06.787Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T09:23:36.872Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T09:24:06.928Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T09:24:36.988Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T09:25:07.043Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T09:25:37.113Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T09:26:07.187Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T09:26:37.288Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T09:27:07.388Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T09:27:37.484Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T09:28:07.578Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T09:28:37.675Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T09:29:07.775Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T09:29:37.872Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T09:30:07.970Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T09:30:38.055Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T09:31:08.152Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T09:31:38.252Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T09:32:08.349Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T09:32:38.441Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T09:33:08.540Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T09:33:38.631Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T09:34:08.723Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T09:34:38.816Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T09:35:08.908Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T09:35:39.001Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T09:36:09.087Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T09:36:39.174Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T09:37:09.261Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T09:37:39.355Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T09:38:09.438Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T09:38:39.553Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T09:39:09.641Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T09:39:39.738Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T09:40:09.825Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T09:40:39.927Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T09:41:10.016Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T09:41:40.101Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T09:42:10.176Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T09:42:40.256Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T09:43:10.343Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T09:43:40.418Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T09:44:10.499Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T09:44:40.581Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T09:45:10.666Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T09:45:40.744Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T09:46:10.820Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T09:46:40.910Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T09:47:10.992Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T09:47:41.081Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T09:48:11.178Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T09:48:41.267Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T09:49:11.363Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T09:49:41.463Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T09:50:11.558Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T09:50:41.649Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T09:51:11.748Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T09:51:41.846Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T09:52:11.936Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T09:52:42.032Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T09:53:12.117Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T09:53:42.203Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T09:54:12.305Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T09:54:42.412Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T09:55:12.503Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T09:55:42.592Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T09:56:12.676Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T09:56:42.769Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T09:57:12.844Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T09:57:42.943Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T09:58:13.035Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T09:58:43.135Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T09:59:13.239Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T09:59:43.328Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T10:00:13.414Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T10:00:43.497Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T10:01:13.591Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T10:01:43.682Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T10:02:13.795Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T10:02:43.892Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T10:03:13.975Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T10:03:44.057Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T10:04:14.163Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T10:21:41.669Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T10:22:11.772Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T10:22:41.861Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T10:23:11.944Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T10:23:42.038Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T10:24:12.138Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T10:24:42.228Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T10:25:12.314Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T10:25:42.389Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T10:26:12.455Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T10:26:42.507Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T10:27:12.571Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T10:27:42.648Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T10:28:12.739Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T10:28:42.838Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T10:29:12.937Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T10:29:43.031Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T10:30:13.126Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T10:30:43.215Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T10:31:13.303Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T10:31:43.395Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T10:32:13.485Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T10:32:43.585Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T10:33:13.676Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T10:33:43.772Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T10:34:13.850Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T10:34:43.943Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T10:35:14.029Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T10:35:44.121Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T10:36:14.207Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T10:36:44.306Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T10:37:14.408Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T10:37:44.501Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T10:38:14.595Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T10:38:44.692Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T10:39:14.792Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T10:39:44.894Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T10:40:14.999Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T10:40:45.088Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T10:41:15.183Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T10:41:45.264Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T10:42:15.365Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T10:42:45.454Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T10:43:15.556Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T10:43:45.645Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T10:44:15.734Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T10:44:45.811Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T10:45:15.913Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T10:45:46.002Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T10:46:16.082Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T10:46:46.165Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T10:47:16.234Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T10:47:46.314Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T10:48:16.407Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T10:48:46.492Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T10:49:16.586Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T10:49:46.670Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T10:50:16.770Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T10:50:46.852Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T10:51:16.934Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T10:51:47.038Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T10:52:17.129Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T10:52:47.228Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T10:53:17.326Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T10:53:47.424Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T10:54:17.521Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T10:54:47.613Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T10:55:17.710Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T10:55:47.812Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T10:56:17.905Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T10:56:47.988Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T10:57:18.076Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T10:57:48.166Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T10:58:18.270Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T10:58:48.366Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T10:59:18.448Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T10:59:48.541Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T11:00:18.630Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T11:00:48.723Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T11:01:18.838Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T11:01:48.927Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T11:02:19.028Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T11:02:49.120Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T11:03:19.213Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T11:03:49.305Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T11:04:19.389Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T11:04:49.475Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T11:05:19.581Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T11:05:49.670Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T11:06:19.769Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T11:06:49.860Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T11:07:19.958Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T11:07:50.050Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T11:08:20.149Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T11:08:50.246Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T11:09:20.333Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T11:09:50.431Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T11:10:20.522Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T11:10:50.606Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T11:11:20.694Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T11:11:50.795Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T11:12:20.902Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T11:12:50.988Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T11:13:21.080Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T11:13:51.173Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T11:14:21.256Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T11:14:51.348Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T11:15:21.439Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T11:15:51.524Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T11:16:21.603Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T11:16:51.694Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T11:17:21.782Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T11:17:51.886Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T11:18:21.978Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T11:18:52.077Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T11:19:22.176Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T11:19:52.255Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T11:20:22.344Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T11:20:52.443Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T11:21:22.536Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T11:21:52.637Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T11:22:22.732Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T11:22:52.814Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T11:23:22.903Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T11:23:52.984Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T11:24:23.068Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T11:24:53.172Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T11:25:23.264Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T11:25:53.361Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T11:26:23.457Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T11:26:53.553Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T11:27:23.649Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T11:27:53.744Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T11:28:23.828Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T11:28:53.929Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T11:29:24.022Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T11:29:54.114Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T11:30:24.220Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T11:30:54.318Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T11:31:24.410Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T11:31:54.502Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T11:32:24.593Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T11:32:54.678Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T11:33:24.774Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T11:33:54.864Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T11:34:24.964Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T11:34:55.053Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T11:35:25.158Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T11:35:55.240Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T11:52:10.876Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T11:52:40.985Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T11:53:11.083Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T11:53:41.164Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T11:54:11.259Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T11:54:41.343Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T11:55:11.437Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T11:55:41.526Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T11:56:11.608Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T11:56:41.696Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T11:57:11.793Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T11:57:41.887Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T11:58:11.968Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T11:58:42.063Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T11:59:12.152Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T11:59:42.245Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T12:00:12.330Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T12:00:42.421Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T12:01:12.515Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T12:01:42.605Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T12:02:12.706Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T12:02:42.796Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T12:03:12.893Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T12:03:42.984Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T12:04:13.073Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T12:04:43.164Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T12:05:13.270Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T12:05:43.369Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T12:06:13.453Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T12:06:43.543Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T12:07:13.637Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T12:07:43.721Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T12:08:13.814Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T12:08:43.905Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T12:09:13.985Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T12:09:44.077Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T12:10:14.177Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T12:10:44.233Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T12:11:14.292Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T12:11:44.351Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T12:12:14.420Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T12:12:44.493Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T12:13:14.578Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T12:13:44.670Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T12:14:14.770Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T12:14:44.872Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T12:15:14.971Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T12:15:45.069Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T12:16:15.159Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T12:16:45.249Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T12:17:15.338Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T12:17:45.428Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T12:18:15.520Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T12:18:45.621Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T12:19:15.698Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T12:19:45.787Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T12:20:15.870Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T12:20:45.946Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T12:21:16.037Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T12:21:46.135Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T12:22:16.220Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T12:22:46.316Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T12:23:16.409Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T12:23:46.503Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T12:24:16.585Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T12:24:46.687Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T12:25:16.783Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T12:25:46.881Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T12:26:16.969Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T12:26:47.059Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T12:27:17.160Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T12:27:47.259Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T12:28:17.346Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T12:28:47.445Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T12:29:17.534Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T12:29:47.609Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T12:30:17.701Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T12:30:47.781Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T12:31:17.845Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T12:31:47.920Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T12:32:18.013Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T12:32:48.113Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T12:33:18.200Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T12:33:48.286Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T12:34:18.380Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T12:34:48.475Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T12:35:18.566Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T12:35:48.663Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T12:36:18.763Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T12:36:48.865Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T12:37:18.975Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T12:37:49.070Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T12:38:19.153Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T12:38:49.241Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T12:39:19.325Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T12:39:49.414Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T12:40:19.508Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T12:40:49.606Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T12:41:19.692Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T12:41:49.797Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T12:42:19.877Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T12:42:49.981Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T12:43:20.080Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T12:43:50.174Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T12:44:20.275Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T12:44:50.366Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T12:45:20.466Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T12:45:50.561Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T12:46:20.666Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T12:46:50.755Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T12:47:20.848Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T12:47:50.943Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T12:48:21.031Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T12:48:51.114Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T12:49:21.213Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T12:49:51.308Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T12:50:21.405Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T12:50:51.495Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T12:51:21.593Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T12:51:51.688Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T12:52:21.780Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T12:52:51.869Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T12:53:21.955Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T12:53:52.050Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T12:54:22.145Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T12:54:52.226Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T12:55:22.339Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T12:55:52.439Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T12:59:18.297Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T12:59:48.392Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T13:16:48.399Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T13:17:18.487Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T13:17:48.570Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T13:18:18.660Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T13:18:48.746Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T13:19:18.834Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T13:19:48.928Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T13:20:19.020Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T13:20:49.101Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T13:21:19.190Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T13:21:49.287Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T13:22:19.379Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T13:22:49.470Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T13:23:19.554Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T13:23:49.649Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T13:24:19.741Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T13:24:49.838Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T13:25:19.925Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T13:25:50.012Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T13:26:20.118Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T13:26:50.217Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T13:27:20.324Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T13:27:50.418Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T13:28:20.508Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T13:28:50.594Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T13:29:20.696Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T13:29:50.780Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T13:30:20.875Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T13:30:50.970Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T13:31:21.071Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T13:31:51.168Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T13:32:21.265Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T13:32:51.363Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T13:33:21.451Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T13:33:51.539Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T13:34:21.631Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T13:34:51.727Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T13:35:21.807Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T13:35:51.909Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T13:36:21.989Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T13:36:52.076Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T13:37:22.171Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T13:37:52.274Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T13:38:22.365Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T13:38:52.462Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T13:39:22.558Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T13:39:52.658Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T13:40:22.764Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T13:40:52.857Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T13:41:22.948Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T13:41:53.045Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T13:42:23.139Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T13:42:53.224Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T13:43:23.325Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T13:43:53.413Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T13:44:23.507Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T13:44:53.594Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T13:45:23.693Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T13:45:53.782Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T13:46:23.870Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T13:46:53.967Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T13:47:24.066Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T13:47:54.165Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T13:48:24.249Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T13:48:54.322Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T13:49:24.420Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T13:49:54.513Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T13:50:24.594Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T13:50:54.679Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T13:51:24.768Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T13:51:54.864Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T13:52:24.926Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T13:52:54.990Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T13:53:25.049Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T13:53:55.121Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T13:54:25.196Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T13:54:55.274Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T13:55:25.375Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T13:55:55.464Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T13:56:25.545Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T13:56:55.648Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T13:57:25.729Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T13:57:55.828Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T13:58:25.919Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T13:58:56.010Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T13:59:26.109Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T13:59:56.184Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T14:00:26.286Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T14:00:56.386Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T14:01:26.477Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T14:01:56.569Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T14:02:26.670Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T14:02:56.760Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T14:03:26.852Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T14:03:56.925Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T14:04:27.015Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T14:04:57.080Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T14:05:27.178Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T14:05:57.232Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T14:06:27.318Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T14:06:57.390Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T14:07:27.493Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T14:07:57.574Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T14:08:27.657Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T14:08:57.746Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T14:09:27.846Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T14:09:57.936Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T14:10:28.025Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T14:10:58.122Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T14:11:28.209Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T14:11:58.293Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T14:12:28.383Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T14:12:58.454Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T14:13:28.510Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T14:13:58.569Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T14:14:28.654Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T14:14:58.736Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T14:15:28.831Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T14:15:58.918Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T14:16:29.017Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T14:16:59.108Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T14:17:29.198Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T14:17:59.289Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T14:18:29.381Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T14:18:59.480Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T14:19:29.583Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T14:19:59.670Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T14:20:29.764Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T14:20:59.862Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T14:21:29.952Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T14:22:00.030Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T14:22:30.128Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T14:23:00.210Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T14:23:30.292Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T14:24:00.374Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T14:24:30.464Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T14:25:00.559Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T14:40:48.550Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T14:41:18.639Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T14:41:48.736Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T14:42:18.814Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T14:42:48.901Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T14:43:18.976Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T14:43:49.061Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T14:44:19.146Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T14:44:49.229Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T14:45:19.317Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T14:45:49.404Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T14:46:19.497Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T14:46:49.589Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T14:47:19.695Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T14:47:49.790Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T14:48:19.882Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T14:48:49.980Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T14:49:20.083Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T14:49:50.180Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T14:50:20.266Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T14:50:50.353Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T14:51:20.445Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T14:51:50.534Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T14:52:20.624Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T14:52:50.722Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T14:53:20.820Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T14:53:50.907Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T14:54:21.001Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T14:54:51.095Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T14:55:21.190Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T14:55:51.283Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T14:56:21.373Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T14:56:51.467Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T14:57:21.570Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T14:57:51.662Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T14:58:21.743Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T14:58:51.840Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T14:59:21.936Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T14:59:52.031Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T15:00:22.103Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T15:00:52.180Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T15:01:22.267Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T15:01:52.364Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T15:02:22.454Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T15:02:52.552Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T15:03:22.646Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T15:03:52.743Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T15:04:22.852Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T15:04:52.944Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T15:05:23.015Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T15:05:53.116Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T15:06:23.200Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T15:06:53.300Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T15:07:23.392Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T15:07:53.497Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T15:08:23.590Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T15:08:53.683Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T15:09:23.781Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T15:09:53.879Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T15:10:23.969Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T15:10:54.074Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T15:11:24.166Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T15:11:54.273Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T15:12:24.371Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T15:12:54.465Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T15:13:24.558Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T15:13:54.652Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T15:14:24.748Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T15:14:54.865Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T15:15:24.956Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T15:15:55.056Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T15:16:25.146Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T15:16:55.237Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T15:17:25.328Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T15:17:55.421Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T15:18:25.521Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T15:18:55.619Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T15:19:25.718Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T15:19:55.783Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T15:20:25.872Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T15:20:55.957Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T15:21:26.054Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T15:21:56.171Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T15:22:26.263Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T15:22:56.346Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T15:23:26.444Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T15:23:56.547Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T15:24:26.642Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T15:24:56.748Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T15:25:26.852Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T15:25:56.958Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T15:26:27.052Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T15:26:57.146Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T15:27:27.229Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T15:27:57.323Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T15:28:27.418Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T15:28:57.515Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T15:29:27.611Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T15:29:57.727Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T15:30:27.829Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T15:30:57.925Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T15:31:28.000Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T15:31:58.055Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T15:32:28.108Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T15:32:58.171Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T15:33:28.238Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T15:33:58.316Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T15:34:28.403Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T15:34:58.493Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T15:35:28.602Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T15:35:58.702Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T15:36:28.801Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T15:36:58.890Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T15:37:28.982Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T15:37:59.072Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T15:38:29.164Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T15:38:59.261Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T15:39:29.339Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T15:39:59.449Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T15:40:29.547Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T15:40:59.637Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T15:41:29.734Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T15:41:59.831Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T15:42:29.934Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T15:43:00.018Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T15:43:30.103Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T15:44:00.204Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T15:44:30.289Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T15:45:00.379Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T16:00:32.436Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T16:18:15.700Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T16:18:45.789Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T16:19:15.886Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T16:34:58.235Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T16:51:40.744Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T16:52:10.829Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T17:09:27.533Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T17:27:04.934Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T17:27:35.028Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T17:44:10.267Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T17:44:40.358Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T18:01:07.141Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T18:17:30.648Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T18:18:00.734Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T18:33:32.569Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T18:34:02.678Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T18:34:32.767Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T18:35:02.870Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T18:35:32.963Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T18:36:03.051Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T18:36:33.136Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T18:37:03.225Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T18:37:33.321Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T18:38:03.422Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T18:38:33.514Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T18:39:03.606Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T18:39:33.694Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T18:40:03.789Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T18:40:33.886Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T18:41:03.984Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T18:41:34.086Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T18:42:04.178Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T18:42:34.273Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T18:43:04.375Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T18:43:34.467Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T18:44:04.563Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T18:44:34.654Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T18:45:04.745Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T18:51:25.306Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T18:51:55.389Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T19:08:11.586Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T19:08:41.670Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T19:24:22.290Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T19:24:52.386Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T19:41:04.393Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T19:56:55.048Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T19:57:25.141Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T19:57:55.224Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T19:58:25.300Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T19:58:55.390Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T19:59:25.485Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T19:59:55.578Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T20:00:25.681Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T20:00:55.773Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T20:01:25.867Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T20:01:55.944Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T20:02:26.045Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T20:02:56.142Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T20:03:26.229Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T20:03:56.322Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T20:19:37.702Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T20:20:07.808Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T20:36:17.919Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T20:36:48.001Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T20:52:41.063Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T21:10:03.452Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T21:10:33.546Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T21:23:50.228Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T21:24:04.298Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T21:24:20.379Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T21:24:20.988Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 200, - "duration": "99ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T21:24:21.789Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T21:24:21.867Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T21:24:21.877Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T21:24:21.883Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260204", - "baseTime": "0600", - "nx": 57, - "ny": 119 -} -[2026-02-03T21:24:21.909Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-04", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T21:24:21.916Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T21:24:22.006Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 1, - "humidity": 74, - "windSpeed": 1.7, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T21:24:22.008Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 1, - "humidity": 74, - "windSpeed": 1.7, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T21:24:22.009Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "130ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T21:24:22.789Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T21:24:28.474Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000&department_id=1", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T21:24:28.504Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects?is_active=1", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T21:24:28.514Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/safety-checks", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T21:24:28.519Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T21:24:28.524Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks/active/list", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T21:24:28.530Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?is_active=true", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T21:24:28.535Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/active/list", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T21:24:28.538Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-04", - "statusCode": 304, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T21:24:30.555Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000&department_id=1", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T21:24:30.601Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T21:24:30.608Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T21:24:30.617Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T21:24:30.624Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T21:24:30.630Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues/categories/type/nonconformity", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T21:24:30.637Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues/items", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T21:24:30.642Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T21:24:33.249Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T21:24:34.246Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T21:24:39.635Z] [INFO] ℹ️ 프로젝트별-작업별 시간 분석 요청 - Context: { - "start": "2026-02-01", - "end": "2026-02-28" -} -[2026-02-03T21:24:39.640Z] [INFO] ℹ️ 작업자별 통계 조회 요청 - Context: { - "start": "2026-02-01", - "end": "2026-02-28" -} -[2026-02-03T21:24:39.643Z] [INFO] ℹ️ 프로젝트별-작업별 시간 분석 성공 - Context: { - "start": "2026-02-01", - "end": "2026-02-28", - "projectCount": 0, - "workTypeCount": 0, - "totalHours": 0 -} -[2026-02-03T21:24:39.643Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-analysis/project-worktype-analysis?start=2026-02-01&end=2026-02-28", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T21:24:39.645Z] [INFO] ℹ️ 작업자별 통계 조회 성공 - Context: { - "start": "2026-02-01", - "end": "2026-02-28", - "workerCount": 0 -} -[2026-02-03T21:24:39.646Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-analysis/worker-stats?start=2026-02-01&end=2026-02-28", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T21:24:39.653Z] [INFO] ℹ️ 최근 작업 현황 조회 요청 - Context: { - "start": "2026-02-01", - "end": "2026-02-28", - "limit": 2000 -} -[2026-02-03T21:24:39.655Z] [INFO] ℹ️ 최근 작업 현황 조회 성공 - Context: { - "start": "2026-02-01", - "end": "2026-02-28", - "limit": 2000, - "resultCount": 0 -} -[2026-02-03T21:24:39.655Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-analysis/recent-work?start=2026-02-01&end=2026-02-28&limit=2000", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T21:24:47.395Z] [INFO] ℹ️ 프로젝트별-작업별 시간 분석 요청 - Context: { - "start": "2026-02-01", - "end": "2026-02-28" -} -[2026-02-03T21:24:47.399Z] [INFO] ℹ️ 작업자별 통계 조회 요청 - Context: { - "start": "2026-02-01", - "end": "2026-02-28" -} -[2026-02-03T21:24:47.401Z] [INFO] ℹ️ 작업자별 통계 조회 성공 - Context: { - "start": "2026-02-01", - "end": "2026-02-28", - "workerCount": 0 -} -[2026-02-03T21:24:47.403Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/work-analysis/worker-stats?start=2026-02-01&end=2026-02-28", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T21:24:47.404Z] [INFO] ℹ️ 프로젝트별-작업별 시간 분석 성공 - Context: { - "start": "2026-02-01", - "end": "2026-02-28", - "projectCount": 0, - "workTypeCount": 0, - "totalHours": 0 -} -[2026-02-03T21:24:47.405Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/work-analysis/project-worktype-analysis?start=2026-02-01&end=2026-02-28", - "statusCode": 304, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T21:24:47.411Z] [INFO] ℹ️ 최근 작업 현황 조회 요청 - Context: { - "start": "2026-02-01", - "end": "2026-02-28", - "limit": 2000 -} -[2026-02-03T21:24:47.412Z] [INFO] ℹ️ 최근 작업 현황 조회 성공 - Context: { - "start": "2026-02-01", - "end": "2026-02-28", - "limit": 2000, - "resultCount": 0 -} -[2026-02-03T21:24:47.413Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/work-analysis/recent-work?start=2026-02-01&end=2026-02-28&limit=2000", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T21:24:50.476Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T21:25:15.966Z] [INFO] ℹ️ 프로젝트별-작업별 시간 분석 요청 - Context: { - "start": "2025-11-01", - "end": "2026-02-28" -} -[2026-02-03T21:25:15.971Z] [INFO] ℹ️ 작업자별 통계 조회 요청 - Context: { - "start": "2025-11-01", - "end": "2026-02-28" -} -[2026-02-03T21:25:15.976Z] [INFO] ℹ️ 프로젝트별-작업별 시간 분석 성공 - Context: { - "start": "2025-11-01", - "end": "2026-02-28", - "projectCount": 4, - "workTypeCount": 3, - "totalHours": 2355 -} -[2026-02-03T21:25:15.978Z] [INFO] ℹ️ 작업자별 통계 조회 성공 - Context: { - "start": "2025-11-01", - "end": "2026-02-28", - "workerCount": 10 -} -[2026-02-03T21:25:15.979Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-analysis/project-worktype-analysis?start=2025-11-01&end=2026-02-28", - "statusCode": 200, - "duration": "18ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T21:25:15.981Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-analysis/worker-stats?start=2025-11-01&end=2026-02-28", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T21:25:15.986Z] [INFO] ℹ️ 최근 작업 현황 조회 요청 - Context: { - "start": "2025-11-01", - "end": "2026-02-28", - "limit": 2000 -} -[2026-02-03T21:25:16.013Z] [INFO] ℹ️ 최근 작업 현황 조회 성공 - Context: { - "start": "2025-11-01", - "end": "2026-02-28", - "limit": 2000, - "resultCount": 427 -} -[2026-02-03T21:25:16.026Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-analysis/recent-work?start=2025-11-01&end=2026-02-28&limit=2000", - "statusCode": 200, - "duration": "41ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T21:25:19.257Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T21:25:19.344Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T21:25:19.351Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T21:25:19.367Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-04", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T21:25:19.375Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T21:25:20.139Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T21:25:20.569Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T21:25:21.813Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues/stats/summary?category_type=safety", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T21:25:21.819Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues?category_type=safety", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T21:25:26.710Z] [INFO] ℹ️ 사용자 목록 조회 요청 - Context: { - "requestedBy": "hyungi" -} -[2026-02-03T21:25:26.716Z] [INFO] ℹ️ 사용자 목록 조회 성공 - Context: { - "count": 8 -} -[2026-02-03T21:25:26.719Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users", - "statusCode": 200, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T21:25:50.662Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T21:26:20.756Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T21:26:50.837Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T21:27:20.914Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T21:27:50.992Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T21:28:21.101Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T21:28:51.192Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T21:29:21.299Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T21:29:51.393Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T21:30:13.285Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2026-02-03T21:30:13.286Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-02-03T21:30:13.973Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-02-03T21:30:14.074Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-02-03T21:30:14.161Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2026-02-03T21:30:14.168Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-02-03T21:30:18.748Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T21:30:48.846Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T21:31:09.343Z] [INFO] ℹ️ 사용자 목록 조회 요청 - Context: { - "requestedBy": "hyungi" -} -[2026-02-03T21:31:09.360Z] [INFO] ℹ️ MariaDB 연결 성공 - Context: { - "connection": "db:3306", - "database": "hyungi", - "connectionLimit": 10 -} -[2026-02-03T21:31:09.371Z] [INFO] ℹ️ 사용자 목록 조회 성공 - Context: { - "count": 8 -} -[2026-02-03T21:31:09.378Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users", - "statusCode": 200, - "duration": "45ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T21:31:09.407Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260204", - "baseTime": "0600", - "nx": 57, - "ny": 119 -} -[2026-02-03T21:31:10.354Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 1, - "humidity": 74, - "windSpeed": 1.5, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T21:31:10.361Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 1, - "humidity": 74, - "windSpeed": 1.5, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T21:31:10.365Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "986ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T21:31:11.817Z] [INFO] ℹ️ 사용자 상태 변경 요청 - Context: { - "userId": "9", - "is_active": 1 -} -[2026-02-03T21:31:11.827Z] [INFO] ℹ️ 사용자 활성화 성공 - Context: { - "userId": "9", - "username": "작업자", - "newStatus": 1, - "updatedBy": "hyungi" -} -[2026-02-03T21:31:11.828Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "PUT", - "url": "/api/users/9/status", - "statusCode": 200, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T21:31:11.842Z] [INFO] ℹ️ 사용자 목록 조회 요청 - Context: { - "requestedBy": "hyungi" -} -[2026-02-03T21:31:11.844Z] [INFO] ℹ️ 사용자 목록 조회 성공 - Context: { - "count": 8 -} -[2026-02-03T21:31:11.846Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T21:31:12.881Z] [INFO] ℹ️ 사용자 상태 변경 요청 - Context: { - "userId": "9", - "is_active": 0 -} -[2026-02-03T21:31:12.887Z] [INFO] ℹ️ 사용자 비활성화 성공 - Context: { - "userId": "9", - "username": "작업자", - "newStatus": 0, - "updatedBy": "hyungi" -} -[2026-02-03T21:31:12.889Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "PUT", - "url": "/api/users/9/status", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T21:31:12.902Z] [INFO] ℹ️ 사용자 목록 조회 요청 - Context: { - "requestedBy": "hyungi" -} -[2026-02-03T21:31:12.904Z] [INFO] ℹ️ 사용자 목록 조회 성공 - Context: { - "count": 8 -} -[2026-02-03T21:31:12.906Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T21:31:17.750Z] [INFO] ℹ️ 사용자 영구 삭제 요청 - Context: { - "userId": "9" -} -[2026-02-03T21:31:17.772Z] [INFO] ℹ️ 사용자 영구 삭제 성공 - Context: { - "userId": "9", - "username": "작업자", - "deletedBy": "hyungi" -} -[2026-02-03T21:31:17.773Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "DELETE", - "url": "/api/users/9/permanent", - "statusCode": 200, - "duration": "31ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T21:31:17.778Z] [INFO] ℹ️ 사용자 목록 조회 요청 - Context: { - "requestedBy": "hyungi" -} -[2026-02-03T21:31:17.781Z] [INFO] ℹ️ 사용자 목록 조회 성공 - Context: { - "count": 7 -} -[2026-02-03T21:31:17.782Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T21:31:18.945Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T21:31:20.962Z] [INFO] ℹ️ 사용자 영구 삭제 요청 - Context: { - "userId": "8" -} -[2026-02-03T21:31:20.968Z] [INFO] ℹ️ 사용자 영구 삭제 성공 - Context: { - "userId": "8", - "username": "그룹장", - "deletedBy": "hyungi" -} -[2026-02-03T21:31:20.970Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "DELETE", - "url": "/api/users/8/permanent", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T21:31:20.978Z] [INFO] ℹ️ 사용자 목록 조회 요청 - Context: { - "requestedBy": "hyungi" -} -[2026-02-03T21:31:20.980Z] [INFO] ℹ️ 사용자 목록 조회 성공 - Context: { - "count": 6 -} -[2026-02-03T21:31:20.982Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T21:31:28.436Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/pages", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T21:31:28.449Z] [INFO] ℹ️ 사용자 페이지 권한 조회 요청 - Context: { - "userId": "1" -} -[2026-02-03T21:31:28.454Z] [INFO] ℹ️ 사용자 페이지 권한 조회 성공 - Context: { - "userId": "1", - "pageCount": 35 -} -[2026-02-03T21:31:28.457Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users/1/page-access", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T21:31:40.662Z] [INFO] ℹ️ 사용자 영구 삭제 요청 - Context: { - "userId": "4" -} -[2026-02-03T21:31:40.667Z] [INFO] ℹ️ 사용자 영구 삭제 성공 - Context: { - "userId": "4", - "username": "김아무개", - "deletedBy": "hyungi" -} -[2026-02-03T21:31:40.669Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "DELETE", - "url": "/api/users/4/permanent", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T21:31:40.680Z] [INFO] ℹ️ 사용자 목록 조회 요청 - Context: { - "requestedBy": "hyungi" -} -[2026-02-03T21:31:40.682Z] [INFO] ℹ️ 사용자 목록 조회 성공 - Context: { - "count": 5 -} -[2026-02-03T21:31:40.684Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T21:31:48.206Z] [INFO] ℹ️ 사용자 페이지 권한 조회 요청 - Context: { - "userId": "7" -} -[2026-02-03T21:31:48.209Z] [INFO] ℹ️ 사용자 페이지 권한 조회 성공 - Context: { - "userId": "7", - "pageCount": 35 -} -[2026-02-03T21:31:48.211Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users/7/page-access", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T21:31:49.029Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T21:31:50.815Z] [INFO] ℹ️ 사용자 페이지 권한 조회 요청 - Context: { - "userId": "1" -} -[2026-02-03T21:31:50.821Z] [INFO] ℹ️ 사용자 페이지 권한 조회 성공 - Context: { - "userId": "1", - "pageCount": 35 -} -[2026-02-03T21:31:50.826Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users/1/page-access", - "statusCode": 200, - "duration": "16ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T21:31:56.426Z] [INFO] ℹ️ 사용자 페이지 권한 조회 요청 - Context: { - "userId": "1" -} -[2026-02-03T21:31:56.430Z] [INFO] ℹ️ 사용자 페이지 권한 조회 성공 - Context: { - "userId": "1", - "pageCount": 35 -} -[2026-02-03T21:31:56.434Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users/1/page-access", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T21:32:01.262Z] [INFO] ℹ️ 사용자 수정 요청 - Context: { - "userId": "1", - "body": { - "name": "안현기", - "username": "hyungi", - "role": "admin", - "email": "" - } -} -[2026-02-03T21:32:01.268Z] [INFO] ℹ️ role 문자열로 역할 변경 - Context: { - "userId": "1", - "role": "admin", - "role_id": 2 -} -[2026-02-03T21:32:01.269Z] [INFO] ℹ️ 실행할 UPDATE 쿼리 - Context: { - "query": "UPDATE users SET username = ?, name = ?, email = ?, role_id = ?, updated_at = NOW() WHERE user_id = ?", - "values": [ - "hyungi", - "안현기", - null, - 2, - "1" - ] -} -[2026-02-03T21:32:01.273Z] [INFO] ℹ️ 사용자 수정 성공 - Context: { - "userId": "1", - "username": "hyungi", - "updatedFields": [ - "name", - "username", - "role", - "email" - ], - "updatedBy": "hyungi" -} -[2026-02-03T21:32:01.274Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "PUT", - "url": "/api/users/1", - "statusCode": 200, - "duration": "15ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T21:32:01.279Z] [INFO] ℹ️ 사용자 목록 조회 요청 - Context: { - "requestedBy": "hyungi" -} -[2026-02-03T21:32:01.282Z] [INFO] ℹ️ 사용자 목록 조회 성공 - Context: { - "count": 5 -} -[2026-02-03T21:32:01.283Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T21:32:19.122Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T21:32:28.887Z] [INFO] ℹ️ 사용자 페이지 권한 조회 요청 - Context: { - "userId": "3" -} -[2026-02-03T21:32:28.891Z] [INFO] ℹ️ 사용자 페이지 권한 조회 성공 - Context: { - "userId": "3", - "pageCount": 35 -} -[2026-02-03T21:32:28.894Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users/3/page-access", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T21:32:49.214Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T21:33:06.185Z] [INFO] ℹ️ 사용자 페이지 권한 조회 요청 - Context: { - "userId": "3" -} -[2026-02-03T21:33:06.192Z] [INFO] ℹ️ 사용자 페이지 권한 조회 성공 - Context: { - "userId": "3", - "pageCount": 35 -} -[2026-02-03T21:33:06.195Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users/3/page-access", - "statusCode": 200, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T21:33:19.320Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T21:33:49.414Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T21:34:19.490Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T21:34:49.619Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T21:35:19.699Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T21:35:49.796Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T21:36:19.884Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T21:36:49.978Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T21:37:20.079Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T21:37:50.162Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T21:38:20.270Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T21:38:50.354Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T21:38:52.831Z] [INFO] ℹ️ 사용자 목록 조회 요청 - Context: { - "requestedBy": "hyungi" -} -[2026-02-03T21:38:52.839Z] [INFO] ℹ️ 사용자 목록 조회 성공 - Context: { - "count": 5 -} -[2026-02-03T21:38:52.841Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users", - "statusCode": 200, - "duration": "15ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T21:38:52.924Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260204", - "baseTime": "0600", - "nx": 57, - "ny": 119 -} -[2026-02-03T21:38:52.990Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 1, - "humidity": 74, - "windSpeed": 1.5, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T21:38:52.992Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 1, - "humidity": 74, - "windSpeed": 1.5, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T21:38:52.995Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "77ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T21:38:58.178Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/pages", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T21:38:58.187Z] [INFO] ℹ️ 사용자 페이지 권한 조회 요청 - Context: { - "userId": "6" -} -[2026-02-03T21:38:58.193Z] [INFO] ℹ️ 사용자 페이지 권한 조회 성공 - Context: { - "userId": "6", - "pageCount": 35 -} -[2026-02-03T21:38:58.196Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users/6/page-access", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T21:39:20.456Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T21:39:50.551Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T21:40:06.024Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/departments", - "statusCode": 200, - "duration": "16ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T21:40:07.370Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/departments/1/workers", - "statusCode": 200, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T21:40:20.647Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T21:40:50.734Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T21:41:20.824Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T21:41:50.916Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T21:42:20.999Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T21:42:51.088Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T21:43:00.150Z] [ERROR] ❌ r.toLowerCase is not a function - Context: { - "code": "INTERNAL_ERROR", - "stack": "AppError: r.toLowerCase is not a function\n at errorHandler (/usr/src/app/middlewares/errorHandler.js:51:13)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:71:5)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/src/app/node_modules/express/lib/router/index.js:280:10)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:67:12)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)", - "url": "/api/departments", - "method": "POST", - "user": "hyungi" -} -[2026-02-03T21:43:00.154Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/departments", - "statusCode": 500, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T21:43:21.222Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T21:43:21.365Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/pages", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T21:43:21.424Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 200, - "duration": "15ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T21:43:26.495Z] [INFO] ℹ️ 사용자 목록 조회 요청 - Context: { - "requestedBy": "hyungi" -} -[2026-02-03T21:43:26.499Z] [INFO] ℹ️ 사용자 목록 조회 성공 - Context: { - "count": 5 -} -[2026-02-03T21:43:26.503Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T21:43:28.098Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2026-02-03T21:43:31.509Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-02-03T21:43:32.022Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-02-03T21:43:32.096Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-02-03T21:43:32.172Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2026-02-03T21:43:32.178Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-02-03T21:43:36.893Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T21:44:06.985Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T21:44:16.256Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260204", - "baseTime": "0600", - "nx": 57, - "ny": 119 -} -[2026-02-03T21:44:16.296Z] [INFO] ℹ️ 사용자 목록 조회 요청 - Context: { - "requestedBy": "hyungi" -} -[2026-02-03T21:44:16.307Z] [INFO] ℹ️ MariaDB 연결 성공 - Context: { - "connection": "db:3306", - "database": "hyungi", - "connectionLimit": 10 -} -[2026-02-03T21:44:16.310Z] [INFO] ℹ️ 사용자 목록 조회 성공 - Context: { - "count": 5 -} -[2026-02-03T21:44:16.313Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users", - "statusCode": 200, - "duration": "18ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T21:44:16.547Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 1, - "humidity": 74, - "windSpeed": 1.5, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T21:44:16.557Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 1, - "humidity": 74, - "windSpeed": 1.5, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T21:44:16.561Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "362ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T21:44:22.397Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/departments", - "statusCode": 200, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T21:44:23.450Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/departments/1/workers", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T21:44:24.405Z] [INFO] ℹ️ 사용자 수정 요청 - Context: { - "userId": "3", - "body": { - "worker_id": 1 - } -} -[2026-02-03T21:44:24.409Z] [INFO] ℹ️ 작업자 연결 - Context: { - "userId": "3", - "worker_id": 1, - "worker_name": "김두수" -} -[2026-02-03T21:44:24.409Z] [INFO] ℹ️ 실행할 UPDATE 쿼리 - Context: { - "query": "UPDATE users SET worker_id = ?, updated_at = NOW() WHERE user_id = ?", - "values": [ - 1, - "3" - ] -} -[2026-02-03T21:44:24.412Z] [INFO] ℹ️ 사용자 수정 성공 - Context: { - "userId": "3", - "username": "김두수", - "updatedFields": [ - "worker_id" - ], - "updatedBy": "hyungi" -} -[2026-02-03T21:44:24.413Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "PUT", - "url": "/api/users/3", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T21:44:25.333Z] [INFO] ℹ️ 사용자 수정 요청 - Context: { - "userId": "3", - "body": { - "name": "김두수", - "username": "김두수", - "role": "user", - "email": "" - } -} -[2026-02-03T21:44:25.342Z] [INFO] ℹ️ role 문자열로 역할 변경 - Context: { - "userId": "3", - "role": "user", - "role_id": 4 -} -[2026-02-03T21:44:25.343Z] [INFO] ℹ️ 실행할 UPDATE 쿼리 - Context: { - "query": "UPDATE users SET username = ?, name = ?, email = ?, role_id = ?, updated_at = NOW() WHERE user_id = ?", - "values": [ - "김두수", - "김두수", - null, - 4, - "3" - ] -} -[2026-02-03T21:44:25.348Z] [INFO] ℹ️ 사용자 수정 성공 - Context: { - "userId": "3", - "username": "김두수", - "updatedFields": [ - "name", - "username", - "role", - "email" - ], - "updatedBy": "hyungi" -} -[2026-02-03T21:44:25.349Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "PUT", - "url": "/api/users/3", - "statusCode": 200, - "duration": "20ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T21:44:25.358Z] [INFO] ℹ️ 사용자 목록 조회 요청 - Context: { - "requestedBy": "hyungi" -} -[2026-02-03T21:44:25.361Z] [INFO] ℹ️ 사용자 목록 조회 성공 - Context: { - "count": 5 -} -[2026-02-03T21:44:25.363Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T21:44:28.286Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/departments", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T21:44:31.022Z] [INFO] ℹ️ 사용자 수정 요청 - Context: { - "userId": "5", - "body": { - "worker_id": 2 - } -} -[2026-02-03T21:44:31.027Z] [INFO] ℹ️ 작업자 연결 - Context: { - "userId": "5", - "worker_id": 2, - "worker_name": "임영규" -} -[2026-02-03T21:44:31.028Z] [INFO] ℹ️ 실행할 UPDATE 쿼리 - Context: { - "query": "UPDATE users SET worker_id = ?, updated_at = NOW() WHERE user_id = ?", - "values": [ - 2, - "5" - ] -} -[2026-02-03T21:44:31.030Z] [INFO] ℹ️ 사용자 수정 성공 - Context: { - "userId": "5", - "username": "임영규", - "updatedFields": [ - "worker_id" - ], - "updatedBy": "hyungi" -} -[2026-02-03T21:44:31.032Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "PUT", - "url": "/api/users/5", - "statusCode": 200, - "duration": "15ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T21:44:32.290Z] [INFO] ℹ️ 사용자 수정 요청 - Context: { - "userId": "5", - "body": { - "name": "임영규", - "username": "임영규", - "role": "user", - "email": "" - } -} -[2026-02-03T21:44:32.294Z] [INFO] ℹ️ role 문자열로 역할 변경 - Context: { - "userId": "5", - "role": "user", - "role_id": 4 -} -[2026-02-03T21:44:32.294Z] [INFO] ℹ️ 실행할 UPDATE 쿼리 - Context: { - "query": "UPDATE users SET username = ?, name = ?, email = ?, role_id = ?, updated_at = NOW() WHERE user_id = ?", - "values": [ - "임영규", - "임영규", - null, - 4, - "5" - ] -} -[2026-02-03T21:44:32.296Z] [INFO] ℹ️ 사용자 수정 성공 - Context: { - "userId": "5", - "username": "임영규", - "updatedFields": [ - "name", - "username", - "role", - "email" - ], - "updatedBy": "hyungi" -} -[2026-02-03T21:44:32.298Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "PUT", - "url": "/api/users/5", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T21:44:32.307Z] [INFO] ℹ️ 사용자 목록 조회 요청 - Context: { - "requestedBy": "hyungi" -} -[2026-02-03T21:44:32.308Z] [INFO] ℹ️ 사용자 목록 조회 성공 - Context: { - "count": 5 -} -[2026-02-03T21:44:32.309Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T21:44:34.724Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/departments", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T21:44:35.677Z] [INFO] ℹ️ 사용자 수정 요청 - Context: { - "userId": "6", - "body": { - "worker_id": 3 - } -} -[2026-02-03T21:44:35.678Z] [INFO] ℹ️ 작업자 연결 - Context: { - "userId": "6", - "worker_id": 3, - "worker_name": "반치원" -} -[2026-02-03T21:44:35.678Z] [INFO] ℹ️ 실행할 UPDATE 쿼리 - Context: { - "query": "UPDATE users SET worker_id = ?, updated_at = NOW() WHERE user_id = ?", - "values": [ - 3, - "6" - ] -} -[2026-02-03T21:44:35.680Z] [INFO] ℹ️ 사용자 수정 성공 - Context: { - "userId": "6", - "username": "반치원", - "updatedFields": [ - "worker_id" - ], - "updatedBy": "hyungi" -} -[2026-02-03T21:44:35.680Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "PUT", - "url": "/api/users/6", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T21:44:36.479Z] [INFO] ℹ️ 사용자 수정 요청 - Context: { - "userId": "6", - "body": { - "name": "반치원", - "username": "반치원", - "role": "user", - "email": "" - } -} -[2026-02-03T21:44:36.484Z] [INFO] ℹ️ role 문자열로 역할 변경 - Context: { - "userId": "6", - "role": "user", - "role_id": 4 -} -[2026-02-03T21:44:36.485Z] [INFO] ℹ️ 실행할 UPDATE 쿼리 - Context: { - "query": "UPDATE users SET username = ?, name = ?, email = ?, role_id = ?, updated_at = NOW() WHERE user_id = ?", - "values": [ - "반치원", - "반치원", - null, - 4, - "6" - ] -} -[2026-02-03T21:44:36.488Z] [INFO] ℹ️ 사용자 수정 성공 - Context: { - "userId": "6", - "username": "반치원", - "updatedFields": [ - "name", - "username", - "role", - "email" - ], - "updatedBy": "hyungi" -} -[2026-02-03T21:44:36.491Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "PUT", - "url": "/api/users/6", - "statusCode": 200, - "duration": "15ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T21:44:36.497Z] [INFO] ℹ️ 사용자 목록 조회 요청 - Context: { - "requestedBy": "hyungi" -} -[2026-02-03T21:44:36.499Z] [INFO] ℹ️ 사용자 목록 조회 성공 - Context: { - "count": 5 -} -[2026-02-03T21:44:36.501Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T21:44:37.067Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T21:45:07.168Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T21:45:22.393Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/departments", - "statusCode": 200, - "duration": "20ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T21:45:23.900Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/departments/1/workers", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T21:45:37.260Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T21:46:07.349Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T21:46:37.439Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T21:47:07.528Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T21:47:37.619Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T21:48:07.568Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2026-02-03T21:48:07.570Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-02-03T21:48:08.053Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-02-03T21:48:08.156Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-02-03T21:48:08.236Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2026-02-03T21:48:08.242Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-02-03T21:48:12.911Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T21:48:43.003Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T21:48:45.342Z] [INFO] ℹ️ MariaDB 연결 성공 - Context: { - "connection": "db:3306", - "database": "hyungi", - "connectionLimit": 10 -} -[2026-02-03T21:48:45.351Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/departments", - "statusCode": 200, - "duration": "56ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T21:48:46.588Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/departments/1/workers", - "statusCode": 200, - "duration": "17ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T21:48:54.360Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000&department_id=1", - "statusCode": 200, - "duration": "40ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T21:48:54.452Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects?is_active=1", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T21:48:54.466Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/safety-checks", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T21:48:54.482Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T21:48:54.489Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks/active/list", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T21:48:54.497Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?is_active=true", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T21:48:54.502Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/active/list", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T21:48:54.519Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-04", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T21:49:13.105Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T21:49:43.190Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T21:50:13.284Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T21:50:43.373Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T21:50:58.088Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000&department_id=1", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T21:50:58.142Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T21:50:58.199Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260204", - "baseTime": "0600", - "nx": 57, - "ny": 119 -} -[2026-02-03T21:50:58.234Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "74ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T21:50:58.239Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260204", - "baseTime": "0600", - "nx": 57, - "ny": 119 -} -[2026-02-03T21:50:58.246Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T21:50:58.253Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T21:50:58.259Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues/categories/type/nonconformity", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T21:50:58.267Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues/items", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T21:50:58.274Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T21:50:58.411Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 1.1, - "humidity": 73, - "windSpeed": 1.8, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T21:50:58.413Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 1.1, - "humidity": 73, - "windSpeed": 1.8, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T21:50:58.414Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "178ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T21:50:59.468Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 1.1, - "humidity": 73, - "windSpeed": 1.8, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T21:50:59.472Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 1.1, - "humidity": 73, - "windSpeed": 1.8, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T21:50:59.477Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "1315ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T21:51:13.470Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T21:51:34.251Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T21:51:34.318Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T21:51:43.564Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T21:51:45.598Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks/1", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T21:52:13.660Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T21:52:43.782Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T21:53:13.881Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T21:53:43.971Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T21:54:14.062Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T21:54:44.233Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T21:55:14.321Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T21:55:44.397Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T21:56:14.503Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T21:56:44.627Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T21:57:14.709Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T21:57:44.790Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T21:58:14.879Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T21:58:44.968Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T21:59:15.057Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T21:59:45.152Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T22:00:15.244Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T22:00:45.323Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T22:01:15.412Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T22:01:45.496Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T22:02:15.605Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T22:02:20.530Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000&department_id=1", - "statusCode": 200, - "duration": "23ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:02:20.587Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260204", - "baseTime": "0600", - "nx": 57, - "ny": 119 -} -[2026-02-03T22:02:20.599Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects?is_active=1", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:02:20.606Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/safety-checks", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:02:20.613Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:02:20.619Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks/active/list", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:02:20.625Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?is_active=true", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:02:20.632Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/active/list", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:02:20.638Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-04", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:02:20.701Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 1.2, - "humidity": 73, - "windSpeed": 1.5, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T22:02:20.702Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 1.2, - "humidity": 73, - "windSpeed": 1.5, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T22:02:20.703Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "117ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:02:23.700Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-03", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:02:23.722Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-02", - "statusCode": 200, - "duration": "20ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:02:23.726Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-28", - "statusCode": 200, - "duration": "22ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:02:23.727Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-01", - "statusCode": 200, - "duration": "20ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:02:23.730Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-31", - "statusCode": 200, - "duration": "18ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:02:23.731Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-30", - "statusCode": 200, - "duration": "16ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:02:23.732Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-29", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:02:25.235Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-03", - "statusCode": 200, - "duration": "16ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:02:25.236Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-02", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:02:25.237Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-01", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:02:25.238Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-31", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:02:25.241Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-30", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:02:25.245Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-29", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:02:25.246Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-28", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:02:30.413Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-03", - "statusCode": 200, - "duration": "15ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:02:30.415Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-02", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:02:30.417Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-31", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:02:30.418Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-01", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:02:30.418Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-30", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:02:30.420Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-29", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:02:30.423Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-28", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:02:45.686Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T22:03:15.778Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T22:03:18.921Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000&department_id=1", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:03:18.963Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects?is_active=1", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:03:18.970Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/safety-checks", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:03:18.976Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:03:18.983Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks/active/list", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:03:18.989Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?is_active=true", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:03:18.997Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/active/list", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:03:19.003Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-04", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:03:32.167Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-03", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:03:32.169Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-02", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:03:32.172Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-01", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:03:32.174Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-31", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:03:32.176Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-29", - "statusCode": 200, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:03:32.178Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-30", - "statusCode": 200, - "duration": "15ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:03:32.184Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-28", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:03:32.872Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-04", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:03:35.457Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000&department_id=1", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:03:35.524Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:03:35.529Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:03:35.536Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:03:35.542Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:03:35.549Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues/categories/type/nonconformity", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:03:35.570Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues/items", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:03:35.577Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:03:45.876Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T22:03:56.616Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000&department_id=1", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:03:56.659Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:03:56.666Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:03:56.676Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:03:56.682Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:03:56.704Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues/categories/type/nonconformity", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:03:56.720Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues/items", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:03:56.725Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:03:59.817Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:03:59.861Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:03:59.884Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:03:59.897Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-04", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:03:59.907Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:04:00.817Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:04:12.376Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:04:12.384Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:04:12.572Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/2", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:04:12.574Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/7", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:04:12.576Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/4", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:04:12.577Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/9", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:04:12.580Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/10", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:04:12.586Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/1", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:04:12.591Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/11", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:04:12.592Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/8", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:04:12.593Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/12", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:04:12.595Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/6", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:04:12.597Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/5", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:04:12.598Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/3", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:04:15.951Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T22:04:46.037Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T22:04:52.018Z] [INFO] ℹ️ 사용자 목록 조회 요청 - Context: { - "requestedBy": "hyungi" -} -[2026-02-03T22:04:52.027Z] [INFO] ℹ️ 사용자 목록 조회 성공 - Context: { - "count": 5 -} -[2026-02-03T22:04:52.029Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users", - "statusCode": 200, - "duration": "18ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:05:10.441Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "15ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:05:10.450Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:05:10.579Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/2", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:05:10.582Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/10", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:05:10.583Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/4", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:05:10.585Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/3", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:05:10.587Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/7", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:05:10.591Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/11", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:05:10.595Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/8", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:05:10.599Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/1", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:05:10.601Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/9", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:05:10.605Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/6", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:05:10.608Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/5", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:05:10.609Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/12", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:05:16.126Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T22:05:46.202Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T22:06:16.299Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T22:06:46.375Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T22:07:16.464Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T22:07:46.543Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T22:08:16.638Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T22:08:46.723Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T22:09:16.796Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T22:09:43.528Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:09:43.531Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:09:43.616Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260204", - "baseTime": "0600", - "nx": 57, - "ny": 119 -} -[2026-02-03T22:09:43.626Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/8", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:09:43.628Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/7", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:09:43.628Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/4", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:09:43.630Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/2", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:09:43.633Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/10", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:09:43.635Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/9", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:09:43.637Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/11", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:09:43.639Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/1", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:09:43.640Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/12", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:09:43.644Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/6", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:09:43.645Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/5", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:09:43.646Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/3", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:09:43.999Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 1.2, - "humidity": 73, - "windSpeed": 1.5, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T22:09:44.007Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 1.2, - "humidity": 73, - "windSpeed": 1.5, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T22:09:44.011Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "397ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:09:46.885Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T22:09:52.535Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/2", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:09:52.537Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/10", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:09:52.539Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/9", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:09:52.541Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/11", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:09:52.542Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/1", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:09:52.543Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/8", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:09:52.551Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/7", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:09:52.552Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/4", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:09:52.554Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/3", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:09:52.556Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/12", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:09:52.557Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/6", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:09:52.559Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/5", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:09:52.565Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:09:53.903Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/2", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:09:53.907Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/10", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:09:53.910Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/9", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:09:53.912Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/1", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:09:53.913Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/11", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:09:53.915Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/8", - "statusCode": 200, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:09:53.925Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/7", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:09:53.927Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/4", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:09:53.929Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/3", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:09:53.931Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/12", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:09:53.934Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/6", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:09:53.936Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/5", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:10:16.983Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T22:10:25.805Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000&department_id=1", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:10:25.871Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:10:25.957Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:10:25.970Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:10:25.978Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:10:25.984Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues/categories/type/nonconformity", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:10:25.995Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues/items", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:10:26.002Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:10:47.045Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T22:10:49.031Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:10:49.036Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:10:49.109Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/2", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:10:49.110Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/10", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:10:49.126Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/7", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:10:49.128Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/4", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:10:49.129Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/9", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:10:49.132Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/11", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:10:49.134Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/8", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:10:49.136Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/1", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:10:49.144Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/3", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:10:49.145Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/12", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:10:49.146Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/6", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:10:49.147Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/5", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:11:17.133Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T22:11:47.204Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T22:12:17.303Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T22:12:47.369Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T22:13:17.460Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T22:13:47.545Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T22:14:17.645Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T22:14:47.717Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T22:15:17.821Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T22:15:47.917Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T22:16:18.011Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T22:16:48.107Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T22:17:18.196Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T22:17:48.284Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T22:18:18.379Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T22:18:48.484Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T22:19:18.569Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T22:19:48.651Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T22:20:18.726Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T22:20:48.818Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T22:21:11.547Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:21:11.552Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:21:11.653Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/2", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:21:11.655Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/8", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:21:11.656Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/7", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:21:11.657Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/10", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:21:11.659Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260204", - "baseTime": "0700", - "nx": 57, - "ny": 119 -} -[2026-02-03T22:21:11.666Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/9", - "statusCode": 200, - "duration": "15ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:21:11.671Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/1", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:21:11.672Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/11", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:21:11.674Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/3", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:21:11.676Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/12", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:21:11.677Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/6", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:21:11.682Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/5", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:21:11.683Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/4", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:21:11.932Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 1.2, - "humidity": 73, - "windSpeed": 1.7, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T22:21:11.937Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 1.2, - "humidity": 73, - "windSpeed": 1.7, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T22:21:11.940Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "283ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:21:17.029Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/workplace/2", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:21:18.923Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T22:21:49.051Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T22:21:54.870Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/2", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:21:54.876Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/10", - "statusCode": 200, - "duration": "16ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:21:54.879Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/9", - "statusCode": 200, - "duration": "17ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:21:54.881Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/1", - "statusCode": 200, - "duration": "16ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:21:54.887Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/11", - "statusCode": 200, - "duration": "21ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:21:54.891Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/8", - "statusCode": 200, - "duration": "23ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:21:54.931Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/7", - "statusCode": 200, - "duration": "15ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:21:54.935Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/4", - "statusCode": 200, - "duration": "17ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:21:54.938Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/12", - "statusCode": 200, - "duration": "15ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:21:54.942Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/3", - "statusCode": 200, - "duration": "23ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:21:54.945Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/6", - "statusCode": 200, - "duration": "20ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:21:54.947Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/5", - "statusCode": 200, - "duration": "21ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:21:54.953Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:22:19.144Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T22:22:49.219Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T22:23:19.315Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T22:23:49.378Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T22:24:19.451Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T22:24:49.547Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T22:25:19.632Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T22:25:49.722Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T22:26:19.813Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T22:26:49.906Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T22:27:19.987Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T22:27:50.071Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T22:28:20.166Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T22:28:44.351Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260204", - "baseTime": "0700", - "nx": 57, - "ny": 119 -} -[2026-02-03T22:28:44.371Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:28:44.372Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:28:44.418Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/10", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:28:44.420Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/8", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:28:44.422Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/2", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:28:44.424Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/7", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:28:44.424Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/9", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:28:44.431Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/1", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:28:44.432Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/11", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:28:44.434Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/4", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:28:44.435Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/3", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:28:44.437Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:28:44.438Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 1.1, - "humidity": 73, - "windSpeed": 1.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T22:28:44.442Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 1.1, - "humidity": 73, - "windSpeed": 1.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T22:28:44.442Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/12", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:28:44.444Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/6", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:28:44.446Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/5", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:28:44.449Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "102ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:28:50.243Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T22:29:20.327Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T22:29:50.425Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T22:30:20.502Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T22:30:50.589Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T22:31:20.674Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T22:31:50.771Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T22:32:20.871Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T22:32:50.967Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T22:33:08.358Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:33:08.361Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:33:08.473Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/10", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:33:08.475Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/7", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:33:08.477Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/4", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:33:08.477Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/8", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:33:08.478Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/2", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:33:08.479Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/9", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:33:08.487Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/11", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:33:08.488Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/1", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:33:08.489Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/12", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:33:08.489Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/6", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:33:08.491Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/5", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:33:08.491Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:33:08.493Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/3", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:33:21.063Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T22:33:34.833Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000&department_id=1", - "statusCode": 200, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:33:34.934Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects?is_active=1", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:33:34.957Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/safety-checks", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:33:34.965Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:33:34.972Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks/active/list", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:33:34.979Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?is_active=true", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:33:34.983Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/active/list", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:33:34.991Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-04", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:33:38.996Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000&department_id=1", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:33:39.092Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:33:39.211Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:33:39.228Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:33:39.240Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:33:39.245Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues/categories/type/nonconformity", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:33:39.250Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues/items", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:33:39.256Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:33:50.281Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:33:50.284Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:33:50.375Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/2", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:33:50.378Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/10", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:33:50.388Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/7", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:33:50.391Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/1", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:33:50.393Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/9", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:33:50.396Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/11", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:33:50.398Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/8", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:33:50.399Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/4", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:33:50.412Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/3", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:33:50.416Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/12", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:33:50.418Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/6", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:33:50.420Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/5", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:33:50.421Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:33:50.423Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260204", - "baseTime": "0700", - "nx": 57, - "ny": 119 -} -[2026-02-03T22:33:51.032Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 1.1, - "humidity": 73, - "windSpeed": 1.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T22:33:51.035Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 1.1, - "humidity": 73, - "windSpeed": 1.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T22:33:51.038Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "616ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:33:51.148Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T22:33:58.012Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/workplace/2", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:34:12.330Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:34:12.335Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/types", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:34:12.337Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:34:13.275Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:34:21.236Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T22:34:51.347Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T22:35:21.465Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T22:35:34.477Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:35:34.480Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:35:34.689Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/10", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:35:34.692Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/7", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:35:34.695Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/4", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:35:34.696Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/9", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:35:34.697Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/2", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:35:34.711Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/1", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:35:34.715Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/11", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:35:34.717Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/8", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:35:34.719Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/12", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:35:34.720Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/6", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:35:34.725Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/5", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:35:34.729Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:35:34.730Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/3", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:35:45.889Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:35:45.896Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:35:45.982Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/2", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:35:45.984Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/7", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:35:45.986Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/4", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:35:45.989Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/3", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:35:45.992Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/10", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:35:45.997Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/9", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:35:46.002Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/1", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:35:46.004Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/11", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:35:46.006Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/8", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:35:46.011Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/6", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:35:46.013Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/5", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:35:46.015Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:35:46.017Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/12", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:35:51.568Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T22:36:21.658Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T22:36:51.749Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T22:37:21.833Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T22:37:38.630Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "22ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:37:38.639Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces", - "statusCode": 200, - "duration": "18ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:37:38.739Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/2", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:37:38.743Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/7", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:37:38.744Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/4", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:37:38.747Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/3", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:37:38.747Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/10", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:37:38.751Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/9", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:37:38.754Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/11", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:37:38.756Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/1", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:37:38.759Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/8", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:37:38.760Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/6", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:37:38.762Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/5", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:37:38.764Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:37:38.766Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/12", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:37:51.947Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T22:38:22.051Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T22:38:52.142Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T22:39:00.995Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:39:00.998Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:39:01.145Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/10", - "statusCode": 200, - "duration": "15ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:39:01.148Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/7", - "statusCode": 200, - "duration": "15ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:39:01.151Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/2", - "statusCode": 200, - "duration": "16ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:39:01.154Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/4", - "statusCode": 200, - "duration": "17ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:39:01.161Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/3", - "statusCode": 200, - "duration": "21ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:39:01.167Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/9", - "statusCode": 200, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:39:01.172Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/1", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:39:01.177Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/11", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:39:01.178Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/8", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:39:01.179Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/6", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:39:01.183Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/5", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:39:01.184Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:39:01.186Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260204", - "baseTime": "0700", - "nx": 57, - "ny": 119 -} -[2026-02-03T22:39:01.195Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/12", - "statusCode": 200, - "duration": "15ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:39:01.399Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 0.9, - "humidity": 74, - "windSpeed": 1.9, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T22:39:01.402Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 0.9, - "humidity": 74, - "windSpeed": 1.9, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T22:39:01.404Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "219ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:39:17.489Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:39:17.621Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:39:17.814Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:39:17.836Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-04", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:39:17.845Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:39:18.477Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:39:22.237Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T22:39:51.763Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000&department_id=1", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:39:51.862Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects?is_active=1", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:39:51.919Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/safety-checks", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:39:51.929Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:39:51.936Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks/active/list", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:39:51.942Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?is_active=true", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:39:51.947Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/active/list", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:39:51.952Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-04", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:39:52.321Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T22:40:01.556Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000&department_id=1", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:40:01.652Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:40:01.682Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:40:01.690Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:40:01.699Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:40:01.704Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues/categories/type/nonconformity", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:40:01.714Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues/items", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:40:01.720Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:40:05.265Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:40:06.263Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:40:12.731Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues/stats/summary?category_type=nonconformity", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:40:12.737Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues?category_type=nonconformity", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:40:17.529Z] [INFO] ℹ️ 출근 체크 목록 조회 요청 - Context: { - "date": "2026-02-03" -} -[2026-02-03T22:40:17.535Z] [INFO] ℹ️ 일일 근태 기록 조회 요청 - Context: { - "date": "2026-02-03", - "workerId": null -} -[2026-02-03T22:40:17.539Z] [INFO] ℹ️ 출근 체크 목록 조회 성공 - Context: { - "date": "2026-02-03", - "count": 10 -} -[2026-02-03T22:40:17.541Z] [INFO] ℹ️ 일일 근태 기록 조회 성공 - Context: { - "date": "2026-02-03", - "count": 0 -} -[2026-02-03T22:40:17.542Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/daily-records?date=2026-02-03", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:40:17.544Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/checkin-list?date=2026-02-03", - "statusCode": 200, - "duration": "19ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:40:17.546Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "23ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:40:22.411Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T22:40:39.749Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/departments", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:40:49.130Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:40:49.133Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:40:49.157Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/2", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:40:49.159Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/10", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:40:49.165Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/7", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:40:49.167Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/9", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:40:49.168Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/1", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:40:49.169Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/11", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:40:49.170Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/8", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:40:49.171Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/4", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:40:49.174Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/3", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:40:49.177Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/12", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:40:49.177Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/6", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:40:49.179Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/5", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:40:49.180Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:40:52.497Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T22:40:55.549Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/departments", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:41:05.872Z] [INFO] ℹ️ 사용자 목록 조회 요청 - Context: { - "requestedBy": "hyungi" -} -[2026-02-03T22:41:05.875Z] [INFO] ℹ️ 사용자 목록 조회 성공 - Context: { - "count": 5 -} -[2026-02-03T22:41:05.877Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:41:12.951Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:41:22.593Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T22:41:24.235Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:41:24.430Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:41:35.858Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:41:35.860Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:41:52.683Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T22:41:53.778Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues/categories/type/nonconformity", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:41:53.807Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues/items", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:41:54.771Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:42:22.780Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T22:42:52.877Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T22:43:22.975Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T22:43:53.078Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T22:44:23.177Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T22:44:53.275Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T22:45:23.374Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T22:45:53.483Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T22:46:23.589Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T22:46:53.677Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T22:47:23.784Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T22:47:53.872Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T22:48:23.950Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T22:48:54.033Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T22:49:24.165Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T22:49:54.271Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T22:50:24.444Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T22:50:54.547Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T22:51:24.665Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T22:51:54.763Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T22:51:55.401Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues/categories/type/nonconformity", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:51:55.703Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260204", - "baseTime": "0700", - "nx": 57, - "ny": 119 -} -[2026-02-03T22:51:55.718Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues/items", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:51:55.875Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 0.7, - "humidity": 74, - "windSpeed": 1.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T22:51:55.879Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 0.7, - "humidity": 74, - "windSpeed": 1.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T22:51:55.882Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "182ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:51:56.389Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:52:16.802Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/departments", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:52:24.843Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T22:52:36.452Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:52:36.457Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:52:36.458Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/types", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:52:37.253Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:52:54.928Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T22:53:25.014Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T22:53:28.315Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:53:39.667Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 200, - "duration": "93ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:53:40.507Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:53:40.540Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260204", - "baseTime": "0700", - "nx": 57, - "ny": 119 -} -[2026-02-03T22:53:40.551Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:53:40.557Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:53:40.570Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-04", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:53:40.578Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:53:40.967Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 0.7, - "humidity": 74, - "windSpeed": 1.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T22:53:40.974Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 0.7, - "humidity": 74, - "windSpeed": 1.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T22:53:40.981Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "442ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:53:41.477Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:53:48.145Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues/categories/type/nonconformity", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:53:48.179Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues/items", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:53:49.139Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:53:52.588Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/departments", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:53:55.121Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T22:54:23.662Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:54:23.666Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/types", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:54:23.667Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:54:24.593Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T22:54:25.204Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T22:54:55.284Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T22:55:25.378Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T22:55:55.459Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T22:56:25.543Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T22:56:55.630Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T22:57:25.719Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T22:57:55.800Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T22:58:25.893Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T22:58:55.989Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T22:59:26.088Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T22:59:56.157Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T23:00:26.247Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T23:00:56.340Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T23:01:26.426Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T23:01:56.518Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T23:02:26.608Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T23:02:56.715Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T23:03:26.849Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T23:03:56.931Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T23:04:27.021Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T23:04:57.103Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T23:05:27.192Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T23:05:57.327Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T23:06:27.434Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T23:06:57.503Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T23:07:27.560Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T23:07:57.626Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T23:08:27.692Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T23:08:57.775Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T23:09:27.861Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T23:09:57.984Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T23:10:28.077Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T23:10:58.174Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T23:11:28.258Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T23:11:58.347Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T23:12:28.444Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T23:12:58.525Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T23:13:28.619Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T23:13:58.705Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T23:14:28.773Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T23:14:58.885Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T23:15:28.988Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T23:15:59.076Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T23:16:29.165Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T23:16:59.246Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T23:17:29.361Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T23:17:59.451Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T23:18:29.545Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T23:18:59.648Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T23:19:10.674Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/types", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:19:10.676Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260204", - "baseTime": "0800", - "nx": 57, - "ny": 119 -} -[2026-02-03T23:19:10.681Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments", - "statusCode": 200, - "duration": "16ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:19:10.683Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces", - "statusCode": 200, - "duration": "16ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:19:10.793Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 1.2, - "humidity": 73, - "windSpeed": 1.9, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T23:19:10.794Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 1.2, - "humidity": 73, - "windSpeed": 1.9, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T23:19:10.796Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "120ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:19:11.589Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:19:27.763Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:19:27.765Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:19:27.828Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/2", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:19:27.830Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/10", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:19:27.834Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/8", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:19:27.836Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments", - "statusCode": 200, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:19:27.840Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/7", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:19:27.841Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/9", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:19:27.847Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/11", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:19:27.848Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/1", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:19:27.851Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/3", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:19:27.852Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/4", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:19:27.856Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/6", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:19:27.857Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/12", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:19:27.859Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/5", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:19:29.669Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/workplace/2", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:19:29.758Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T23:19:59.839Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T23:20:29.913Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T23:21:00.010Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T23:21:30.094Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T23:22:00.182Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T23:22:03.050Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/types", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:22:03.053Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments", - "statusCode": 200, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:22:03.054Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:22:03.982Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:22:24.897Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:22:24.900Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:22:24.962Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/2", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:22:24.963Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/10", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:22:24.966Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/4", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:22:24.968Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/7", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:22:24.969Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments", - "statusCode": 200, - "duration": "16ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:22:24.971Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/9", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:22:24.974Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/3", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:22:24.980Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/12", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:22:24.981Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/1", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:22:24.983Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/11", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:22:24.983Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/8", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:22:24.984Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/5", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:22:24.987Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/6", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:22:26.824Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/workplace/2", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:22:30.271Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T23:23:00.370Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T23:23:30.459Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T23:24:00.548Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T23:24:30.636Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T23:25:00.711Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T23:25:30.795Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T23:26:00.853Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T23:26:30.928Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T23:27:01.012Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T23:27:31.108Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T23:27:34.234Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:27:34.238Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:27:34.297Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/2", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:27:34.298Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/7", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:27:34.299Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/9", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:27:34.301Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/3", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:27:34.302Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/10", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:27:34.306Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/1", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:27:34.313Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/4", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:27:34.314Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/11", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:27:34.317Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/8", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:27:34.319Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/6", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:27:34.321Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/5", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:27:34.326Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/12", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:27:34.332Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments", - "statusCode": 200, - "duration": "17ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:27:34.334Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260204", - "baseTime": "0800", - "nx": 57, - "ny": 119 -} -[2026-02-03T23:27:34.450Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 1.3, - "humidity": 73, - "windSpeed": 1.5, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T23:27:34.452Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 1.3, - "humidity": 73, - "windSpeed": 1.5, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T23:27:34.453Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "121ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:27:36.165Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/workplace/2", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:27:36.169Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments", - "statusCode": 200, - "duration": "16ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:27:47.178Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:27:47.184Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:27:47.257Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/10", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:27:47.260Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/2", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:27:47.262Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/7", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:27:47.265Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/9", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:27:47.267Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/4", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:27:47.271Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/1", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:27:47.275Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/3", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:27:47.276Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/12", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:27:47.278Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/6", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:27:47.278Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/11", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:27:47.280Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/8", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:27:47.284Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/5", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:27:47.285Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:27:49.185Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/workplace/2", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:27:49.189Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments", - "statusCode": 200, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:28:01.186Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T23:28:26.870Z] [INFO] ℹ️ 작업장 레이아웃 이미지 업로드 요청 - Context: { - "workplace_id": "2", - "path": "/uploads/workplace-layout-1770161306860-882895973.jpg" -} -[2026-02-03T23:28:26.875Z] [INFO] ℹ️ 작업장 레이아웃 이미지 업로드 성공 - Context: { - "workplace_id": "2" -} -[2026-02-03T23:28:26.876Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/workplaces/2/layout-image", - "statusCode": 200, - "duration": "25ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:28:26.887Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:28:26.908Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/2", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:28:26.962Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/10", - "statusCode": 200, - "duration": "38ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:28:26.968Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/9", - "statusCode": 200, - "duration": "41ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:28:26.974Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/7", - "statusCode": 200, - "duration": "43ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:28:26.981Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/8", - "statusCode": 200, - "duration": "44ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:28:26.987Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/1", - "statusCode": 200, - "duration": "43ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:28:26.993Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/11", - "statusCode": 200, - "duration": "48ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:28:27.003Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/4", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:28:27.007Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/3", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:28:27.010Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/12", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:28:27.011Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/6", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:28:27.014Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/5", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:28:31.284Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T23:28:38.720Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:28:38.727Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:28:38.772Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/2", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:28:38.774Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/10", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:28:38.776Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/7", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:28:38.777Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/9", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:28:38.779Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/4", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:28:38.784Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/1", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:28:38.791Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/11", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:28:38.793Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/12", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:28:38.794Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/6", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:28:38.795Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/8", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:28:38.797Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/3", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:28:38.799Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/5", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:28:38.802Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:28:44.968Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/workplace/2", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:28:44.971Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:29:01.388Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T23:29:31.477Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T23:30:01.571Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T23:30:31.665Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T23:31:01.768Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T23:31:31.861Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T23:32:01.936Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T23:32:32.030Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T23:33:02.114Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T23:33:32.198Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T23:34:02.308Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T23:34:21.660Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:34:21.662Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:34:21.744Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/10", - "statusCode": 200, - "duration": "16ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:34:21.747Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/7", - "statusCode": 200, - "duration": "17ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:34:21.748Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/9", - "statusCode": 200, - "duration": "16ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:34:21.749Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/1", - "statusCode": 200, - "duration": "15ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:34:21.751Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/4", - "statusCode": 200, - "duration": "15ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:34:21.756Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/2", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:34:21.759Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/11", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:34:21.760Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/8", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:34:21.761Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/6", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:34:21.762Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/5", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:34:21.767Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:34:21.768Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/3", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:34:21.771Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260204", - "baseTime": "0800", - "nx": 57, - "ny": 119 -} -[2026-02-03T23:34:21.774Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/12", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:34:22.763Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 1.3, - "humidity": 73, - "windSpeed": 1.5, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T23:34:22.768Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 1.3, - "humidity": 73, - "windSpeed": 1.5, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T23:34:22.772Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "1002ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:34:24.020Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/workplace/2", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:34:24.021Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:34:32.399Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T23:35:02.504Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T23:35:32.589Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T23:36:02.684Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T23:36:32.785Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T23:37:02.869Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T23:37:32.957Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T23:38:03.035Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T23:38:33.121Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T23:39:03.206Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T23:39:33.290Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T23:40:03.393Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T23:40:33.485Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T23:41:03.573Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T23:41:33.676Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T23:42:03.766Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T23:42:33.856Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T23:43:03.945Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T23:43:34.033Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T23:44:04.120Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T23:44:34.210Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T23:45:04.328Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T23:45:25.780Z] [INFO] ℹ️ 작업장 레이아웃 이미지 업로드 요청 - Context: { - "workplace_id": "2", - "path": "/uploads/workplace-layout-1770162325774-245030548.jpg" -} -[2026-02-03T23:45:25.786Z] [INFO] ℹ️ 작업장 레이아웃 이미지 업로드 성공 - Context: { - "workplace_id": "2" -} -[2026-02-03T23:45:25.787Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/workplaces/2/layout-image", - "statusCode": 200, - "duration": "21ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:45:25.818Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:45:25.919Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/2", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:45:25.922Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/7", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:45:25.927Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/10", - "statusCode": 200, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:45:25.931Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/8", - "statusCode": 200, - "duration": "17ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:45:25.937Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/1", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:45:25.944Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/9", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:45:25.954Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/11", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:45:25.955Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/4", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:45:25.959Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/3", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:45:25.962Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/12", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:45:25.967Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/6", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:45:25.969Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/5", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:45:34.410Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T23:45:34.545Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:45:34.546Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:45:34.611Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/2", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:45:34.612Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/10", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:45:34.620Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/1", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:45:34.621Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/8", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:45:34.622Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/11", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:45:34.623Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/9", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:45:34.625Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/7", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:45:34.626Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/4", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:45:34.632Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/3", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:45:34.633Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/12", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:45:34.634Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/6", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:45:34.635Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/5", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:45:34.638Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260204", - "baseTime": "0800", - "nx": 57, - "ny": 119 -} -[2026-02-03T23:45:34.645Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:45:35.092Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 1.5, - "humidity": 72, - "windSpeed": 1.5, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T23:45:35.096Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 1.5, - "humidity": 72, - "windSpeed": 1.5, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T23:45:35.100Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "463ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:45:36.362Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:45:36.365Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/workplace/2", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:45:40.198Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/workplace/2", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:45:40.204Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:46:04.509Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T23:46:34.591Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T23:47:04.687Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T23:47:34.789Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T23:47:58.341Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2026-02-03T23:47:58.342Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-02-03T23:48:32.421Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-02-03T23:48:32.512Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-02-03T23:48:32.592Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2026-02-03T23:48:32.597Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-02-03T23:48:37.248Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T23:49:00.456Z] [INFO] ℹ️ MariaDB 연결 성공 - Context: { - "connection": "db:3306", - "database": "hyungi", - "connectionLimit": 10 -} -[2026-02-03T23:49:00.466Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/workplace/9", - "statusCode": 200, - "duration": "32ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:49:00.480Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments", - "statusCode": 200, - "duration": "58ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:49:07.351Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T23:49:07.888Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:49:07.892Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:49:07.950Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/2", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:49:07.952Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/7", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:49:07.959Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/9", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:49:07.961Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/1", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:49:07.962Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/4", - "statusCode": 200, - "duration": "19ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:49:07.963Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/3", - "statusCode": 200, - "duration": "18ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:49:07.964Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/10", - "statusCode": 200, - "duration": "18ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:49:07.970Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/8", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:49:07.971Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/6", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:49:07.973Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/11", - "statusCode": 200, - "duration": "16ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:49:07.973Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/5", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:49:07.976Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/12", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:49:07.978Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:49:09.488Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:49:09.490Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/workplace/2", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:49:20.039Z] [INFO] ℹ️ 작업장 레이아웃 이미지 업로드 요청 - Context: { - "workplace_id": "2", - "path": "/uploads/workplace-layout-1770162560033-681774067.jpg" -} -[2026-02-03T23:49:20.048Z] [INFO] ℹ️ 작업장 레이아웃 이미지 업로드 성공 - Context: { - "workplace_id": "2" -} -[2026-02-03T23:49:20.049Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/workplaces/2/layout-image", - "statusCode": 200, - "duration": "25ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:49:20.059Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:49:20.074Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/workplace/2", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:49:20.082Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/7", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:49:20.083Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/10", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:49:20.085Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/1", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:49:20.086Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/9", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:49:20.087Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/8", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:49:20.089Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/11", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:49:20.095Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/4", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:49:20.096Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/3", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:49:20.097Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/12", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:49:20.098Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/6", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:49:20.102Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/5", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:49:20.121Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/workplace/2", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:49:26.323Z] [INFO] ℹ️ 작업장 수정 요청 - Context: { - "workplace_id": "2" -} -[2026-02-03T23:49:26.326Z] [INFO] ℹ️ 작업장 수정 성공 - Context: { - "workplace_id": "2" -} -[2026-02-03T23:49:26.326Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "PUT", - "url": "/api/workplaces/2", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:49:26.335Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:49:26.339Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:49:26.348Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/workplace/2", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:49:26.350Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/10", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:49:26.359Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/7", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:49:26.361Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/4", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:49:26.362Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/9", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:49:26.364Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/1", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:49:26.365Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/11", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:49:26.367Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/8", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:49:26.375Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/3", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:49:26.376Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/12", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:49:26.378Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/6", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:49:26.379Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/5", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:49:26.383Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/workplace/2", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:49:26.385Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:49:30.428Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/workplace/2", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:49:30.438Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments", - "statusCode": 200, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:49:37.445Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T23:50:07.541Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T23:50:37.630Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T23:51:07.708Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T23:51:37.811Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T23:52:07.903Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T23:52:37.988Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T23:53:08.075Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T23:53:38.161Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T23:54:08.243Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T23:54:38.334Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T23:55:08.414Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T23:55:38.508Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T23:56:08.593Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T23:56:38.676Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T23:57:05.467Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:57:05.471Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:57:05.529Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/workplace/2", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:57:05.530Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/10", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:57:05.532Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/7", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:57:05.537Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/4", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:57:05.538Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/8", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:57:05.538Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/1", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:57:05.540Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/9", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:57:05.542Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/11", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:57:05.545Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/12", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:57:05.581Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260204", - "baseTime": "0800", - "nx": 57, - "ny": 119 -} -[2026-02-03T23:57:05.614Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/6", - "statusCode": 200, - "duration": "71ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:57:05.617Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/5", - "statusCode": 200, - "duration": "72ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:57:05.619Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/3", - "statusCode": 200, - "duration": "73ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:57:05.625Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments", - "statusCode": 200, - "duration": "79ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:57:05.650Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/workplace/2", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:57:07.460Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 1.7, - "humidity": 71, - "windSpeed": 1.5, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-03T23:57:07.470Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 1.7, - "humidity": 71, - "windSpeed": 1.5, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-03T23:57:07.473Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "1926ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:57:08.245Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/workplace/2", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:57:08.249Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments", - "statusCode": 200, - "duration": "17ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:57:08.795Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T23:57:11.966Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/workplace/2", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:57:11.969Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:57:25.543Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "PATCH", - "url": "/api/equipments/2/map-position", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:57:25.556Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/workplace/2", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:57:25.563Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:57:38.893Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T23:57:40.157Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "PATCH", - "url": "/api/equipments/24/map-position", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:57:40.173Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/workplace/2", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:57:40.177Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:58:08.989Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T23:58:19.992Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/workplace/2", - "statusCode": 200, - "duration": "17ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:58:19.994Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/10", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:58:19.996Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/9", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:58:20.001Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/11", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:58:20.005Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/1", - "statusCode": 200, - "duration": "17ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:58:20.014Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/8", - "statusCode": 200, - "duration": "24ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:58:20.053Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/7", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:58:20.055Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/4", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:58:20.056Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/3", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:58:20.058Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/12", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:58:20.061Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/6", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:58:20.065Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/5", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:58:20.071Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/workplace/2", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:58:34.464Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:58:34.507Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:58:34.514Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:58:34.539Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-04", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:58:34.547Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:58:35.463Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:58:39.081Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T23:58:56.501Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/types", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:58:56.503Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments", - "statusCode": 200, - "duration": "15ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:58:56.504Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces", - "statusCode": 200, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:58:57.436Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:59:09.199Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T23:59:39.284Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-03T23:59:54.859Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/types", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:59:54.864Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:59:54.865Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T23:59:55.805Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T00:00:09.382Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T00:00:39.479Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T00:00:57.284Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/2", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T00:01:09.559Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T00:01:39.653Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T00:02:09.738Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T00:02:39.816Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T00:03:09.905Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T00:03:39.991Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T00:04:10.076Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T00:04:40.161Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T00:05:10.248Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T00:05:40.339Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T00:06:10.435Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T00:06:23.486Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/types", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T00:06:23.489Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments", - "statusCode": 200, - "duration": "15ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T00:06:23.492Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces", - "statusCode": 200, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T00:06:23.495Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260204", - "baseTime": "0800", - "nx": 57, - "ny": 119 -} -[2026-02-04T00:06:24.407Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T00:06:24.756Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/equipments/next-code", - "statusCode": 404, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T00:06:24.782Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 1.7, - "humidity": 71, - "windSpeed": 1.5, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-04T00:06:24.785Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 1.7, - "humidity": 71, - "windSpeed": 1.5, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-04T00:06:24.787Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "1293ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T00:06:40.517Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T00:07:10.616Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T00:07:16.520Z] [WARN] ⚠️ 인증 실패: Authorization 헤더 없음 - Context: { - "path": "/", - "method": "GET", - "ip": "::ffff:185.199.108.133" -} -[2026-02-04T00:07:16.523Z] [WARN] ⚠️ Authorization 헤더가 필요합니다 - Context: { - "code": "AUTHENTICATION_ERROR", - "url": "/api/equipments/next-code", - "method": "GET", - "user": "anonymous" -} -[2026-02-04T00:07:16.525Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/equipments/next-code", - "statusCode": 401, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-02-04T00:07:40.700Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T00:08:10.790Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T00:08:12.816Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/equipments/next-code", - "statusCode": 404, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T00:08:40.885Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T00:09:10.973Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T00:09:41.072Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T00:09:41.627Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T00:09:41.628Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T00:09:41.629Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/types", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T00:09:42.557Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T00:09:42.675Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/equipments/next-code", - "statusCode": 404, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T00:10:11.165Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T00:10:41.259Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T00:11:11.346Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T00:11:41.439Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T00:12:11.527Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T00:12:41.629Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T00:13:11.726Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T00:13:41.822Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T00:14:11.925Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T00:14:17.686Z] [WARN] ⚠️ 인증 실패: 유효하지 않은 토큰 - Context: { - "error": "jwt malformed", - "path": "/", - "ip": "::ffff:185.199.108.133" -} -[2026-02-04T00:14:17.687Z] [WARN] ⚠️ 유효하지 않은 토큰입니다 - Context: { - "code": "AUTHENTICATION_ERROR", - "url": "/api/equipments/next-code", - "method": "GET", - "user": "anonymous" -} -[2026-02-04T00:14:17.688Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/equipments/next-code", - "statusCode": 401, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-02-04T00:14:42.018Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T00:14:42.372Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260204", - "baseTime": "0900", - "nx": 57, - "ny": 119 -} -[2026-02-04T00:14:42.376Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/types", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T00:14:42.379Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T00:14:42.380Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T00:14:42.501Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 1.9, - "humidity": 71, - "windSpeed": 1.9, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-04T00:14:42.504Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 1.9, - "humidity": 71, - "windSpeed": 1.9, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-04T00:14:42.505Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "135ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T00:14:43.252Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/equipments/next-code", - "statusCode": 404, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T00:14:43.281Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T00:15:02.638Z] [WARN] ⚠️ 인증 실패: 유효하지 않은 토큰 - Context: { - "error": "jwt malformed", - "path": "/", - "ip": "::ffff:185.199.108.133" -} -[2026-02-04T00:15:02.640Z] [WARN] ⚠️ 유효하지 않은 토큰입니다 - Context: { - "code": "AUTHENTICATION_ERROR", - "url": "/api/equipments/next-code", - "method": "GET", - "user": "anonymous" -} -[2026-02-04T00:15:02.641Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/equipments/next-code", - "statusCode": 401, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-02-04T00:15:12.101Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T00:15:42.192Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T00:16:12.251Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T00:16:42.320Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T00:16:44.918Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2026-02-04T00:16:44.920Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-02-04T00:16:45.366Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-02-04T00:16:45.437Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-02-04T00:16:45.512Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2026-02-04T00:16:45.523Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-02-04T00:16:50.258Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T00:16:52.318Z] [WARN] ⚠️ 인증 실패: 유효하지 않은 토큰 - Context: { - "error": "jwt malformed", - "path": "/", - "ip": "::ffff:185.199.108.133" -} -[2026-02-04T00:16:52.319Z] [WARN] ⚠️ 유효하지 않은 토큰입니다 - Context: { - "code": "AUTHENTICATION_ERROR", - "url": "/api/equipments/next-code", - "method": "GET", - "user": "anonymous" -} -[2026-02-04T00:16:52.320Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/equipments/next-code", - "statusCode": 401, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-02-04T00:17:04.557Z] [INFO] ℹ️ MariaDB 연결 성공 - Context: { - "connection": "db:3306", - "database": "hyungi", - "connectionLimit": 10 -} -[2026-02-04T00:17:04.560Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/types", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T00:17:04.568Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces", - "statusCode": 200, - "duration": "23ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T00:17:04.569Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments", - "statusCode": 200, - "duration": "32ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T00:17:05.452Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T00:17:06.233Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/next-code", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T00:17:20.362Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T00:17:49.324Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/equipments", - "statusCode": 201, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T00:17:50.444Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T00:17:51.377Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T00:17:51.391Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/types", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T00:17:52.804Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/next-code", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T00:18:20.541Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T00:18:26.248Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/equipments", - "statusCode": 201, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T00:18:27.966Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T00:18:27.985Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/types", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T00:18:28.686Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/next-code", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T00:18:50.637Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T00:18:59.993Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/equipments", - "statusCode": 201, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T00:19:01.383Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T00:19:01.403Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/types", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T00:19:09.129Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T00:19:09.136Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces", - "statusCode": 200, - "duration": "21ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T00:19:09.251Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/4", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T00:19:09.253Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T00:19:09.253Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/workplace/2", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T00:19:09.255Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/3", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T00:19:09.262Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/7", - "statusCode": 200, - "duration": "19ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T00:19:09.264Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/9", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T00:19:09.265Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/10", - "statusCode": 200, - "duration": "19ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T00:19:09.266Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/1", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T00:19:09.267Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/8", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T00:19:09.275Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/6", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T00:19:09.284Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/5", - "statusCode": 200, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T00:19:09.286Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/12", - "statusCode": 200, - "duration": "16ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T00:19:09.295Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/11", - "statusCode": 200, - "duration": "34ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T00:19:09.329Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/workplace/2", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T00:19:12.174Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/workplace/2", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T00:19:12.176Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T00:19:14.760Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/workplace/2", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T00:19:14.761Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T00:19:14.787Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/next-code", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T00:19:20.733Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T00:19:50.826Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T00:19:51.384Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "PATCH", - "url": "/api/equipments/66/map-position", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T00:19:51.401Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/workplace/2", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T00:19:51.409Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments", - "statusCode": 200, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T00:19:51.427Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/next-code", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T00:19:57.676Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "PATCH", - "url": "/api/equipments/67/map-position", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T00:19:57.689Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/workplace/2", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T00:19:57.695Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T00:19:57.707Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/next-code", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T00:20:04.511Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "PATCH", - "url": "/api/equipments/68/map-position", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T00:20:04.526Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/workplace/2", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T00:20:04.530Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T00:20:04.540Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/next-code", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T00:20:20.921Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T00:20:51.011Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T00:21:21.108Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T00:21:51.203Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T00:22:21.306Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T00:22:51.405Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T00:22:53.745Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "PATCH", - "url": "/api/equipments/16/map-position", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T00:22:53.775Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/workplace/2", - "statusCode": 200, - "duration": "24ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T00:22:53.777Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments", - "statusCode": 200, - "duration": "25ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T00:22:53.807Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/next-code", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T00:23:21.524Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T00:23:29.465Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "PATCH", - "url": "/api/equipments/6/map-position", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T00:23:29.489Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/workplace/2", - "statusCode": 200, - "duration": "18ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T00:23:29.493Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T00:23:29.500Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/next-code", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T00:23:46.104Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "PATCH", - "url": "/api/equipments/17/map-position", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T00:23:46.114Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/workplace/2", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T00:23:46.118Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T00:23:46.125Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/next-code", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T00:23:51.599Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T00:23:55.488Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "PATCH", - "url": "/api/equipments/18/map-position", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T00:23:55.504Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/workplace/2", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T00:23:55.510Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T00:23:55.523Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/next-code", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T00:24:21.689Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T00:24:51.784Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T00:25:21.872Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T00:25:51.969Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T00:25:59.051Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/10", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T00:25:59.053Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/workplace/2", - "statusCode": 200, - "duration": "21ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T00:25:59.055Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/9", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T00:25:59.058Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/1", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T00:25:59.061Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/11", - "statusCode": 200, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T00:25:59.069Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/8", - "statusCode": 200, - "duration": "20ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T00:25:59.114Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/7", - "statusCode": 200, - "duration": "41ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T00:25:59.117Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/4", - "statusCode": 200, - "duration": "42ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T00:25:59.118Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/3", - "statusCode": 200, - "duration": "28ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T00:25:59.121Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/12", - "statusCode": 200, - "duration": "29ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T00:25:59.124Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/6", - "statusCode": 200, - "duration": "18ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T00:25:59.131Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/5", - "statusCode": 200, - "duration": "22ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T00:25:59.139Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/workplace/2", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T00:26:04.003Z] [INFO] ℹ️ 작업장 수정 요청 - Context: { - "workplace_id": "2" -} -[2026-02-04T00:26:04.013Z] [INFO] ℹ️ 작업장 수정 성공 - Context: { - "workplace_id": "2" -} -[2026-02-04T00:26:04.015Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "PUT", - "url": "/api/workplaces/2", - "statusCode": 200, - "duration": "15ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T00:26:04.023Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T00:26:04.026Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T00:26:04.038Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/10", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T00:26:04.044Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/9", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T00:26:04.045Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/workplace/2", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T00:26:04.047Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/1", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T00:26:04.049Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/11", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T00:26:04.051Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/8", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T00:26:04.058Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/7", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T00:26:04.061Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/4", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T00:26:04.064Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/3", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T00:26:04.065Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/12", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T00:26:04.067Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/6", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T00:26:04.070Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/5", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T00:26:04.076Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T00:26:04.078Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/workplace/2", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T00:26:05.808Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/workplace/2", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T00:26:05.811Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T00:26:22.067Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T00:26:52.158Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T00:27:22.256Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T00:27:52.332Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T00:28:22.424Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T00:28:52.507Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T00:29:22.567Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T00:29:52.623Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T00:30:22.685Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T00:30:52.760Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T00:31:22.872Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T00:31:52.962Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T00:32:23.038Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T00:32:53.110Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T00:33:23.205Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T00:33:53.279Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T00:34:23.361Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T00:34:53.437Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T00:35:23.515Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T00:35:53.596Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T00:36:23.690Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T00:36:53.780Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T00:37:23.852Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T00:37:53.941Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T00:38:24.025Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T00:38:54.131Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T00:39:24.215Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T00:39:54.305Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T00:40:24.398Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T00:40:54.501Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T00:41:24.597Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T00:41:54.689Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T00:42:24.773Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T00:42:54.871Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T00:43:24.958Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T00:43:55.049Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T00:44:25.134Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T00:44:55.246Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T00:45:25.348Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T00:45:55.425Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T00:46:25.525Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T00:46:55.613Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T00:47:25.693Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T00:47:55.764Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T00:48:25.841Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T00:48:55.908Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T00:49:25.982Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T00:49:56.071Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T00:50:26.163Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T00:50:56.235Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T00:51:26.324Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T00:51:56.425Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T00:52:26.515Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T00:52:56.607Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T00:53:26.699Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T00:53:56.796Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T00:54:26.890Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T00:54:56.990Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T00:55:27.081Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T00:55:57.180Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T00:56:27.276Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T00:56:57.367Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T00:57:27.458Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T00:57:57.556Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T00:58:27.657Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T00:58:57.743Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T00:59:27.846Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T00:59:57.938Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T01:00:28.034Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T01:00:58.128Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T01:01:28.217Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T01:01:58.314Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T01:02:28.406Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T01:02:58.499Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T01:03:28.588Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T01:03:58.682Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T01:04:28.778Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T01:04:58.864Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T01:05:28.949Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T01:05:59.038Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T01:06:29.124Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T01:06:59.226Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T01:07:29.332Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T01:07:59.432Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T01:08:29.519Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T01:08:59.603Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T01:09:29.693Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T01:09:59.780Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T01:10:29.866Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T01:10:59.962Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T01:11:30.049Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T01:12:00.138Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T01:12:30.233Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T01:13:00.323Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T01:13:30.412Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T01:14:00.509Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T01:14:30.609Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T01:15:00.706Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T01:15:30.812Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T01:16:00.904Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T01:16:30.989Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T01:17:01.085Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T01:17:31.186Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T01:18:01.278Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T01:18:31.377Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T01:19:01.473Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T01:19:31.559Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T01:20:01.649Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T01:20:31.748Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T01:21:01.846Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T01:21:31.939Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T01:22:02.041Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T01:22:32.134Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T01:23:02.228Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T01:23:32.325Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T01:24:02.420Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T01:24:32.510Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T01:25:02.595Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T01:25:32.676Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T01:26:02.764Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T01:26:32.853Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T01:27:02.941Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T01:27:33.038Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T01:28:03.140Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T01:28:33.242Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T01:29:03.341Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T01:29:33.435Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T01:30:03.532Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T01:30:33.622Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T01:31:03.710Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T01:31:33.799Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T01:32:03.891Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T01:32:33.983Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T01:33:04.082Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T01:33:34.197Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T01:33:40.768Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "15ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T01:33:40.778Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces", - "statusCode": 200, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T01:33:40.855Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/7", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T01:33:40.856Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/4", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T01:33:40.858Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/9", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T01:33:40.860Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/10", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T01:33:40.862Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/workplace/2", - "statusCode": 200, - "duration": "16ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T01:33:40.863Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/3", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T01:33:40.868Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/12", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T01:33:40.870Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/1", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T01:33:40.871Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/11", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T01:33:40.872Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/8", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T01:33:40.874Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/5", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T01:33:40.915Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260204", - "baseTime": "1000", - "nx": 57, - "ny": 119 -} -[2026-02-04T01:33:40.948Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments", - "statusCode": 200, - "duration": "81ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T01:33:40.949Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/6", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T01:33:40.979Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/workplace/2", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T01:33:41.642Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 3.4, - "humidity": 65, - "windSpeed": 2.4, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-04T01:33:41.645Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 3.4, - "humidity": 65, - "windSpeed": 2.4, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-04T01:33:41.651Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "773ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T01:34:04.299Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T01:34:34.381Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T01:35:04.474Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T01:35:34.555Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T01:36:04.631Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T01:36:34.716Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T01:37:04.816Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T01:37:34.883Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T01:38:04.945Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T01:38:35.009Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T01:39:05.090Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T01:39:35.172Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T01:40:05.266Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T01:40:35.352Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T01:41:05.435Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T01:41:35.513Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T01:42:05.606Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T01:42:35.693Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T01:43:05.773Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T01:43:35.861Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T01:44:05.965Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T01:44:36.063Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T01:45:06.151Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T01:45:36.251Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T01:46:06.338Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T01:46:36.393Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T01:47:06.478Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T01:47:36.543Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T01:48:06.626Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T01:48:36.705Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T01:49:06.801Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T01:49:36.881Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T01:49:48.347Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2026-02-04T01:49:48.350Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-02-04T01:49:48.800Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-02-04T01:49:49.319Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-02-04T01:49:49.842Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-02-04T01:49:50.601Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-02-04T01:49:51.782Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-02-04T01:49:53.731Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-02-04T01:49:57.284Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-02-04T01:50:04.047Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-02-04T01:50:17.173Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-02-04T01:50:17.243Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-02-04T01:50:17.318Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2026-02-04T01:50:17.324Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-02-04T01:50:21.234Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2026-02-04T01:50:21.235Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-02-04T01:50:21.636Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-02-04T01:50:21.729Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-02-04T01:50:21.797Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2026-02-04T01:50:21.804Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-02-04T01:50:26.547Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T01:50:30.438Z] [WARN] ⚠️ 인증 실패: Authorization 헤더 없음 - Context: { - "path": "/", - "method": "GET", - "ip": "::ffff:185.199.108.133" -} -[2026-02-04T01:50:30.441Z] [WARN] ⚠️ Authorization 헤더가 필요합니다 - Context: { - "code": "AUTHENTICATION_ERROR", - "url": "/api/patrol/item-types", - "method": "GET", - "user": "anonymous" -} -[2026-02-04T01:50:30.444Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/patrol/item-types", - "statusCode": 401, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-02-04T01:50:56.651Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T01:51:26.738Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T01:51:56.828Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T01:52:26.935Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T01:52:32.299Z] [INFO] ℹ️ MariaDB 연결 성공 - Context: { - "connection": "db:3306", - "database": "hyungi", - "connectionLimit": 10 -} -[2026-02-04T01:52:32.304Z] [WARN] ⚠️ 아이디 또는 비밀번호가 올바르지 않습니다. - Context: { - "code": "AUTHENTICATION_ERROR", - "url": "/api/auth/login", - "method": "POST", - "user": "anonymous" -} -[2026-02-04T01:52:32.305Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 401, - "duration": "21ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-02-04T01:52:32.316Z] [WARN] ⚠️ 인증 실패: Bearer 토큰 누락 - Context: { - "path": "/", - "method": "GET", - "ip": "::ffff:185.199.108.133" -} -[2026-02-04T01:52:32.317Z] [WARN] ⚠️ Bearer 토큰이 필요합니다 - Context: { - "code": "AUTHENTICATION_ERROR", - "url": "/api/patrol/item-types", - "method": "GET", - "user": "anonymous" -} -[2026-02-04T01:52:32.317Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/patrol/item-types", - "statusCode": 401, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-02-04T01:52:37.310Z] [WARN] ⚠️ 아이디 또는 비밀번호가 올바르지 않습니다. - Context: { - "code": "AUTHENTICATION_ERROR", - "url": "/api/auth/login", - "method": "POST", - "user": "anonymous" -} -[2026-02-04T01:52:37.312Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 401, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-02-04T01:52:57.047Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T01:53:27.169Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T01:53:57.257Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T01:54:27.345Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T01:54:57.425Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T01:55:27.504Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T01:55:57.602Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T01:56:27.711Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T01:56:57.803Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T01:57:27.895Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T01:57:57.966Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T01:58:28.047Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T01:58:58.121Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T01:59:28.197Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T01:59:58.274Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T02:00:28.351Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T02:00:58.560Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T02:01:28.640Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T02:01:58.730Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T02:02:28.832Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T02:02:58.921Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T02:03:29.015Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T02:03:59.101Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T02:04:29.183Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T02:04:59.267Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T02:05:29.378Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T02:05:59.477Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T02:06:29.576Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T02:06:59.667Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T02:07:29.764Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T02:07:59.846Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T02:08:29.943Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T02:09:00.028Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T02:09:26.642Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "20ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T02:09:26.651Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces", - "statusCode": 200, - "duration": "19ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T02:09:26.793Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260204", - "baseTime": "1000", - "nx": 57, - "ny": 119 -} -[2026-02-04T02:09:26.835Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/8", - "statusCode": 200, - "duration": "83ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T02:09:26.841Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/workplace/2", - "statusCode": 200, - "duration": "90ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T02:09:26.844Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/4", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T02:09:26.847Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/10", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T02:09:26.865Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/7", - "statusCode": 200, - "duration": "37ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T02:09:26.866Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/9", - "statusCode": 200, - "duration": "18ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T02:09:26.868Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/1", - "statusCode": 200, - "duration": "16ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T02:09:26.876Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/6", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T02:09:26.878Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/5", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T02:09:26.887Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/11", - "statusCode": 200, - "duration": "34ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T02:09:26.889Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/12", - "statusCode": 200, - "duration": "33ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T02:09:26.892Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments", - "statusCode": 200, - "duration": "18ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T02:09:26.894Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/3", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T02:09:26.925Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/workplace/2", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T02:09:27.002Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 4.1, - "humidity": 65, - "windSpeed": 2.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-04T02:09:27.005Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 4.1, - "humidity": 65, - "windSpeed": 2.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-04T02:09:27.007Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "252ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T02:09:30.131Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T02:09:40.529Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T02:09:40.574Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T02:09:40.582Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T02:09:40.613Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-04", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T02:09:40.624Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T02:09:41.533Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T02:09:54.507Z] [INFO] ℹ️ 일일 근태 기록 조회 요청 - Context: { - "date": "2026-02-04", - "workerId": null -} -[2026-02-04T02:09:54.515Z] [INFO] ℹ️ 출근 체크 목록 조회 요청 - Context: { - "date": "2026-02-04" -} -[2026-02-04T02:09:54.526Z] [INFO] ℹ️ 출근 체크 목록 조회 성공 - Context: { - "date": "2026-02-04", - "count": 10 -} -[2026-02-04T02:09:54.530Z] [INFO] ℹ️ 일일 근태 기록 조회 성공 - Context: { - "date": "2026-02-04", - "count": 0 -} -[2026-02-04T02:09:54.531Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/daily-records?date=2026-02-04", - "statusCode": 200, - "duration": "26ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T02:09:54.533Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/checkin-list?date=2026-02-04", - "statusCode": 200, - "duration": "22ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T02:09:54.536Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "42ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T02:10:00.221Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T02:10:30.308Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T02:11:00.405Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T02:11:30.539Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T02:12:00.653Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T02:12:30.756Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T02:13:00.881Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T02:13:30.976Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T02:14:01.088Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T02:14:31.183Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T02:15:01.270Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T02:15:31.376Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T02:16:01.504Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T02:16:31.601Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T02:17:01.692Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T02:17:31.786Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T02:18:01.887Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T02:18:31.971Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T02:18:40.053Z] [INFO] ℹ️ 출근 체크 목록 조회 요청 - Context: { - "date": "2026-02-04" -} -[2026-02-04T02:18:40.055Z] [INFO] ℹ️ 일일 근태 기록 조회 요청 - Context: { - "date": "2026-02-04", - "workerId": null -} -[2026-02-04T02:18:40.059Z] [INFO] ℹ️ 출근 체크 목록 조회 성공 - Context: { - "date": "2026-02-04", - "count": 10 -} -[2026-02-04T02:18:40.061Z] [INFO] ℹ️ 일일 근태 기록 조회 성공 - Context: { - "date": "2026-02-04", - "count": 0 -} -[2026-02-04T02:18:40.062Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/daily-records?date=2026-02-04", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T02:18:40.063Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/checkin-list?date=2026-02-04", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T02:18:40.066Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "17ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T02:18:40.075Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260204", - "baseTime": "1100", - "nx": 57, - "ny": 119 -} -[2026-02-04T02:18:40.315Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 4.3, - "humidity": 64, - "windSpeed": 2.2, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-04T02:18:40.320Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 4.3, - "humidity": 64, - "windSpeed": 2.2, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-04T02:18:40.329Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "255ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T02:18:47.636Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T02:18:47.680Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T02:18:51.031Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T02:18:51.078Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "18ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T02:18:51.113Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T02:18:51.132Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-04", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T02:18:51.149Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T02:18:52.035Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T02:19:02.075Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T02:19:23.329Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T02:19:23.336Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/safety-checks", - "statusCode": 200, - "duration": "16ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T02:19:23.337Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/conditions", - "statusCode": 200, - "duration": "15ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T02:19:24.289Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T02:19:32.176Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T02:19:38.524Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues/stats/summary?category_type=safety", - "statusCode": 200, - "duration": "15ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T02:19:38.529Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues?category_type=safety", - "statusCode": 200, - "duration": "15ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T02:19:47.409Z] [INFO] ℹ️ 일일 근태 기록 조회 요청 - Context: { - "date": "2026-02-04", - "workerId": null -} -[2026-02-04T02:19:47.416Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T02:19:47.417Z] [INFO] ℹ️ 일일 근태 기록 조회 성공 - Context: { - "date": "2026-02-04", - "count": 0 -} -[2026-02-04T02:19:47.417Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/daily-records?date=2026-02-04", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T02:20:01.351Z] [INFO] ℹ️ 일일 근태 기록 조회 요청 - Context: { - "date": "2026-02-04", - "workerId": null -} -[2026-02-04T02:20:01.355Z] [INFO] ℹ️ 일일 근태 기록 조회 성공 - Context: { - "date": "2026-02-04", - "count": 0 -} -[2026-02-04T02:20:01.356Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/daily-records?date=2026-02-04", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T02:20:01.356Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T02:20:02.304Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T02:20:20.457Z] [INFO] ℹ️ 일일 근태 기록 조회 요청 - Context: { - "date": "2026-02-04", - "workerId": null -} -[2026-02-04T02:20:20.462Z] [INFO] ℹ️ 일일 근태 기록 조회 성공 - Context: { - "date": "2026-02-04", - "count": 0 -} -[2026-02-04T02:20:20.463Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/daily-records?date=2026-02-04", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T02:20:20.464Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T02:20:25.068Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "22ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T02:20:25.074Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/patrol/item-types", - "statusCode": 200, - "duration": "22ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T02:20:25.101Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/patrol/today-status", - "statusCode": 200, - "duration": "24ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T02:20:25.952Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T02:20:32.408Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T02:20:32.744Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/patrol/sessions", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T02:20:32.762Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T02:20:32.773Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/patrol/checklist?category_id=1", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T02:21:02.510Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T02:21:32.612Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T02:22:02.708Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T02:22:32.789Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T02:23:02.873Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T02:23:32.963Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T02:24:03.067Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T02:24:33.164Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T02:25:03.255Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T02:25:33.563Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "5ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T02:25:39.490Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T02:25:39.491Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/patrol/item-types", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T02:25:39.493Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/patrol/today-status", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T02:25:39.494Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260204", - "baseTime": "1100", - "nx": 57, - "ny": 119 -} -[2026-02-04T02:25:39.706Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 4.9, - "humidity": 63, - "windSpeed": 2.2, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-04T02:25:39.712Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 4.9, - "humidity": 63, - "windSpeed": 2.2, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-04T02:25:39.716Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "223ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T02:25:40.403Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T02:25:43.426Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/patrol/sessions", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T02:25:43.446Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T02:25:43.459Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/patrol/checklist?category_id=1", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T02:25:43.466Z] [WARN] ⚠️ 인증 실패: Authorization 헤더 없음 - Context: { - "path": "/", - "method": "GET", - "ip": "::ffff:185.199.108.133" -} -[2026-02-04T02:25:43.467Z] [WARN] ⚠️ Authorization 헤더가 필요합니다 - Context: { - "code": "AUTHENTICATION_ERROR", - "url": "/api/uploads/workplace-layout-1769485965188-143426330.jpg", - "method": "GET", - "user": "anonymous" -} -[2026-02-04T02:25:43.468Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/uploads/workplace-layout-1769485965188-143426330.jpg", - "statusCode": 401, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T02:25:56.556Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000&department_id=1", - "statusCode": 200, - "duration": "16ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T02:25:56.697Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects?is_active=1", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T02:25:56.705Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/safety-checks", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T02:25:56.711Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T02:25:56.719Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks/active/list", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T02:25:56.726Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?is_active=true", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T02:25:56.732Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/active/list", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T02:25:56.739Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-04", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T02:26:03.699Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T02:26:03.939Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T02:26:03.977Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "29ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T02:26:33.793Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T02:27:03.887Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T02:27:33.975Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T02:28:04.064Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T02:28:34.149Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T02:29:04.238Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T02:29:34.332Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T02:30:04.428Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T02:30:34.507Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T02:31:04.598Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T02:31:34.706Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T02:32:04.796Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T02:32:34.885Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T02:33:04.970Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T02:33:35.054Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T02:34:05.140Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T02:34:35.225Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T02:35:05.330Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T02:35:35.406Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T02:36:05.482Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T02:36:35.576Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T02:37:05.675Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T02:37:35.768Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T02:38:05.858Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T02:38:35.948Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T02:39:06.056Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T02:39:36.145Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T02:40:06.255Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T02:40:28.740Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260204", - "baseTime": "1100", - "nx": 57, - "ny": 119 -} -[2026-02-04T02:40:28.834Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T02:40:28.835Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/patrol/item-types", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T02:40:28.837Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/patrol/today-status", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T02:40:29.542Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 4.7, - "humidity": 62, - "windSpeed": 2.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-04T02:40:29.546Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 4.7, - "humidity": 62, - "windSpeed": 2.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-04T02:40:29.553Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "817ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T02:40:29.769Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T02:40:33.748Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/patrol/sessions", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T02:40:33.764Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T02:40:33.775Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/patrol/checklist?category_id=1", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T02:40:36.364Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T02:41:06.430Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T02:41:36.522Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T02:42:06.606Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T02:42:36.668Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T02:43:06.745Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T02:43:36.818Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T02:44:06.906Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T02:44:37.011Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T02:45:07.100Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T02:45:37.199Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T02:46:07.285Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T02:46:28.322Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T02:46:28.560Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260204", - "baseTime": "1100", - "nx": 57, - "ny": 119 -} -[2026-02-04T02:46:28.579Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "34ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T02:46:28.592Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T02:46:28.629Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-04", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T02:46:28.651Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T02:46:28.835Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 4.9, - "humidity": 63, - "windSpeed": 2.1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-04T02:46:28.839Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 4.9, - "humidity": 63, - "windSpeed": 2.1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-04T02:46:28.842Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "295ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T02:46:29.243Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T02:46:37.395Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T02:47:07.483Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T02:47:37.575Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T02:48:07.680Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T02:48:37.784Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T02:49:07.862Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T02:49:37.968Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T02:50:08.048Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T02:50:38.138Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T02:51:08.224Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T02:51:11.252Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T02:51:11.395Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T02:51:11.404Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T02:51:11.419Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-04", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T02:51:11.428Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T02:51:12.238Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T02:51:13.842Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments?workplace_id=2", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T02:51:38.309Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T02:52:08.401Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T02:52:38.499Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T02:53:08.603Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T02:53:38.707Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T02:54:08.785Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T02:54:38.855Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T02:55:08.943Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T02:55:34.889Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T02:55:35.031Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260204", - "baseTime": "1100", - "nx": 57, - "ny": 119 -} -[2026-02-04T02:55:35.047Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T02:55:35.060Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T02:55:35.081Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-04", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T02:55:35.091Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T02:55:35.316Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 5.2, - "humidity": 62, - "windSpeed": 2.2, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-04T02:55:35.320Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 5.2, - "humidity": 62, - "windSpeed": 2.2, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-04T02:55:35.323Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "294ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T02:55:35.889Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T02:55:36.587Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments?workplace_id=2", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T02:55:36.590Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments?workplace_id=2", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T02:55:39.040Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T02:56:09.164Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T02:56:39.244Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T02:57:09.324Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T02:57:39.399Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T02:58:09.483Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T02:58:39.565Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T02:59:09.656Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T02:59:24.343Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T02:59:24.415Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T02:59:24.424Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T02:59:24.523Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-04", - "statusCode": 200, - "duration": "16ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T02:59:24.541Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T02:59:25.329Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T02:59:25.569Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments?workplace_id=2", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T02:59:25.593Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments?workplace_id=2", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T02:59:39.743Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T03:00:09.818Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T03:00:39.898Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T03:01:09.984Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T03:01:18.601Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T03:01:18.604Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T03:01:18.677Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260204", - "baseTime": "1100", - "nx": 57, - "ny": 119 -} -[2026-02-04T03:01:18.689Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/8", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T03:01:18.704Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/11", - "statusCode": 200, - "duration": "19ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T03:01:18.714Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/workplace/2", - "statusCode": 200, - "duration": "33ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T03:01:18.719Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/7", - "statusCode": 200, - "duration": "29ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T03:01:18.723Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/9", - "statusCode": 200, - "duration": "31ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T03:01:18.739Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/10", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T03:01:18.742Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/1", - "statusCode": 200, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T03:01:18.744Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/3", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T03:01:18.745Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/12", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T03:01:18.748Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/6", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T03:01:18.751Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/4", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T03:01:18.752Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/5", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T03:01:18.762Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T03:01:18.794Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/workplace/2", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T03:01:19.889Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 5.2, - "humidity": 62, - "windSpeed": 2.1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-04T03:01:19.893Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 5.2, - "humidity": 62, - "windSpeed": 2.1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-04T03:01:19.896Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "1221ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T03:01:20.693Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/workplace/2", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T03:01:20.696Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T03:01:22.950Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/workplace/2", - "statusCode": 200, - "duration": "18ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T03:01:22.952Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T03:01:22.989Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/next-code", - "statusCode": 200, - "duration": "16ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T03:01:40.097Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T03:02:10.227Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T03:02:36.576Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/10", - "statusCode": 200, - "duration": "17ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T03:02:36.580Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/9", - "statusCode": 200, - "duration": "20ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T03:02:36.584Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/1", - "statusCode": 200, - "duration": "23ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T03:02:36.589Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/8", - "statusCode": 200, - "duration": "27ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T03:02:36.641Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/workplace/2", - "statusCode": 200, - "duration": "87ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T03:02:36.691Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/7", - "statusCode": 200, - "duration": "48ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T03:02:36.695Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/4", - "statusCode": 200, - "duration": "50ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T03:02:36.699Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/3", - "statusCode": 200, - "duration": "50ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T03:02:36.703Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/12", - "statusCode": 200, - "duration": "50ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T03:02:36.734Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/11", - "statusCode": 200, - "duration": "171ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T03:02:36.738Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/6", - "statusCode": 200, - "duration": "32ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T03:02:36.743Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/5", - "statusCode": 200, - "duration": "19ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T03:02:36.768Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/workplace/2", - "statusCode": 200, - "duration": "29ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T03:02:40.314Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T03:02:42.729Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T03:02:42.806Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T03:02:42.815Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T03:02:42.867Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-04", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T03:02:42.890Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T03:02:43.726Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T03:02:44.393Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments?workplace_id=2", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T03:02:44.430Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments?workplace_id=2", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T03:03:10.414Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T03:03:40.510Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T03:04:10.613Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T03:04:40.705Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T03:05:10.786Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T03:05:40.877Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T03:06:10.960Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T03:06:41.044Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T03:07:11.129Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T03:07:41.215Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T03:08:11.310Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T03:08:41.401Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T03:09:11.488Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T03:09:41.586Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T03:10:11.673Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T03:10:25.716Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260204", - "baseTime": "1200", - "nx": 57, - "ny": 119 -} -[2026-02-04T03:10:25.838Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 5.1, - "humidity": 64, - "windSpeed": 2.5, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-04T03:10:25.846Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 5.1, - "humidity": 64, - "windSpeed": 2.5, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-04T03:10:25.850Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "140ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T03:10:25.855Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T03:10:25.969Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T03:10:25.978Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T03:10:25.990Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-04", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T03:10:25.999Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T03:10:26.613Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T03:10:30.706Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments?workplace_id=2", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T03:10:30.734Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments?workplace_id=2", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T03:10:41.778Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T03:11:11.877Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T03:11:41.965Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T03:12:12.044Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T03:12:42.264Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T03:13:12.350Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T03:13:42.442Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T03:14:12.530Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T03:14:42.620Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T03:15:12.759Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T03:15:42.854Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T03:16:12.965Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T03:16:43.095Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T03:17:13.191Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T03:17:43.272Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T03:18:13.349Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T03:18:43.420Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T03:19:13.501Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T03:19:43.614Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T03:20:13.700Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T03:20:43.775Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T03:21:13.867Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T03:21:43.963Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T03:22:14.060Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T03:22:44.151Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T03:23:14.252Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T03:23:44.338Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T03:24:14.423Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T03:24:44.522Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T03:25:14.614Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T03:25:44.698Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T03:26:14.840Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "5ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T03:26:44.922Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T03:27:15.023Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T03:27:45.099Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T03:28:15.196Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T03:28:45.281Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T03:29:15.362Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T03:29:45.447Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T03:30:15.535Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T03:30:45.637Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T03:31:15.731Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T03:31:45.829Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T03:32:15.920Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T03:32:45.998Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T03:33:16.101Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T03:33:46.234Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T03:34:16.326Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T03:34:46.430Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T03:35:06.680Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260204", - "baseTime": "1200", - "nx": 57, - "ny": 119 -} -[2026-02-04T03:35:06.723Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T03:35:06.810Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T03:35:06.839Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T03:35:06.846Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 7.1, - "humidity": 59, - "windSpeed": 2, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-04T03:35:06.848Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 7.1, - "humidity": 59, - "windSpeed": 2, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-04T03:35:06.850Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "177ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T03:35:06.890Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-04", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T03:35:06.897Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T03:35:07.715Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T03:35:08.016Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments?workplace_id=2", - "statusCode": 200, - "duration": "22ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T03:35:08.019Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments?workplace_id=2", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T03:35:16.525Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T03:35:17.715Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/2", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T03:35:17.716Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplace-categories", - "method": "GET" -} -[2026-02-04T03:35:17.717Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplace-categories", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T03:35:17.719Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/equipments/repair-categories", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T03:35:17.760Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/equipments/2/photos", - "method": "GET" -} -[2026-02-04T03:35:17.761Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/equipments/2/photos", - "statusCode": 404, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T03:35:17.763Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/equipments/2/repair-history", - "method": "GET" -} -[2026-02-04T03:35:17.764Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/equipments/2/repair-history", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T03:35:17.769Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/2", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T03:35:17.771Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/equipments/2/external-logs", - "method": "GET" -} -[2026-02-04T03:35:17.772Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/equipments/2/external-logs", - "statusCode": 404, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T03:35:17.775Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/equipments/2/move-logs", - "method": "GET" -} -[2026-02-04T03:35:17.775Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/equipments/2/move-logs", - "statusCode": 404, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T03:35:18.660Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T03:35:46.642Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T03:35:50.716Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/types", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T03:35:50.720Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments", - "statusCode": 200, - "duration": "16ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T03:35:50.721Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T03:35:51.616Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T03:36:16.745Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T03:36:46.843Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T03:37:01.069Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2026-02-04T03:37:01.071Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-02-04T03:37:01.510Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-02-04T03:37:01.588Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-02-04T03:37:01.663Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2026-02-04T03:37:01.669Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-02-04T03:37:06.395Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T03:37:36.488Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T03:38:06.574Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T03:38:36.678Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T03:39:06.772Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T03:39:36.831Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T03:40:06.934Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T03:40:37.003Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T03:40:37.812Z] [INFO] ℹ️ MariaDB 연결 성공 - Context: { - "connection": "db:3306", - "database": "hyungi", - "connectionLimit": 10 -} -[2026-02-04T03:40:37.820Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "89ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T03:40:38.120Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260204", - "baseTime": "1200", - "nx": 57, - "ny": 119 -} -[2026-02-04T03:40:38.152Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "70ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T03:40:38.209Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T03:40:38.227Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-04", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T03:40:38.235Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T03:40:38.267Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 7.1, - "humidity": 59, - "windSpeed": 1.9, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-04T03:40:38.271Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 7.1, - "humidity": 59, - "windSpeed": 1.9, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-04T03:40:38.272Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "186ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T03:40:38.707Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T03:40:39.638Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments?workplace_id=2", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T03:40:39.657Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments?workplace_id=2", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T03:41:07.097Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T03:41:37.186Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T03:42:07.281Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T03:42:37.375Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T03:43:07.458Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T03:43:37.553Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T03:44:07.647Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T03:44:29.650Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T03:44:29.740Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T03:44:29.751Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T03:44:29.806Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-04", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T03:44:29.821Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T03:44:30.629Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments?workplace_id=2", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T03:44:30.640Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T03:44:30.643Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments?workplace_id=2", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T03:44:34.426Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/68/photos", - "statusCode": 200, - "duration": "16ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T03:44:34.443Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/repair-categories", - "statusCode": 200, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T03:44:34.452Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "38ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T03:44:34.456Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/equipments/68/repair-history", - "statusCode": 500, - "duration": "43ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T03:44:34.459Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/68/external-logs", - "statusCode": 200, - "duration": "26ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T03:44:37.745Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T03:44:52.867Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T03:45:07.815Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T03:45:37.877Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T03:46:07.947Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T03:46:10.525Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2026-02-04T03:46:10.527Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-02-04T03:46:10.965Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-02-04T03:46:11.043Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-02-04T03:46:11.115Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2026-02-04T03:46:11.121Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-02-04T03:46:15.860Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T03:46:44.070Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260204", - "baseTime": "1200", - "nx": 57, - "ny": 119 -} -[2026-02-04T03:46:44.123Z] [INFO] ℹ️ MariaDB 연결 성공 - Context: { - "connection": "db:3306", - "database": "hyungi", - "connectionLimit": 10 -} -[2026-02-04T03:46:44.129Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "20ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T03:46:44.170Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 6.9, - "humidity": 59, - "windSpeed": 2.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-04T03:46:44.175Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 6.9, - "humidity": 59, - "windSpeed": 2.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-04T03:46:44.178Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "148ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T03:46:44.183Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T03:46:44.242Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T03:46:44.275Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-04", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T03:46:44.288Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T03:46:45.078Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T03:46:45.360Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments?workplace_id=2", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T03:46:45.377Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments?workplace_id=2", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T03:46:45.956Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T03:46:48.166Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/68/photos", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T03:46:48.168Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T03:46:48.173Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/68/external-logs", - "statusCode": 200, - "duration": "16ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T03:46:48.175Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/repair-categories", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T03:46:48.182Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/68/repair-history", - "statusCode": 200, - "duration": "21ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T03:47:16.067Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T03:47:46.157Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T03:48:16.258Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T03:48:46.334Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T03:49:16.430Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T03:49:46.517Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T03:50:16.605Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T03:50:46.693Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T03:51:16.784Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T03:51:46.872Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T03:52:16.966Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T03:52:48.511Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "9ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T03:53:18.635Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T03:53:48.733Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T03:54:18.822Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T03:54:48.918Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T03:55:19.011Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T03:55:49.103Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T03:56:19.202Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T03:56:49.295Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T03:57:19.382Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T03:57:49.472Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T03:58:19.554Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T03:58:49.668Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T03:59:19.752Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T03:59:49.839Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T03:59:55.911Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260204", - "baseTime": "1200", - "nx": 57, - "ny": 119 -} -[2026-02-04T03:59:55.936Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "16ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T03:59:56.050Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 7.3, - "humidity": 56, - "windSpeed": 2, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-04T03:59:56.053Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 7.3, - "humidity": 56, - "windSpeed": 2, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-04T03:59:56.055Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "157ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T03:59:56.075Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T03:59:56.088Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T03:59:56.147Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-04", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T03:59:56.155Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T03:59:56.896Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T03:59:57.401Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments?workplace_id=2", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T03:59:57.417Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments?workplace_id=2", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:00:02.308Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/68/photos", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:00:02.310Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:00:02.314Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/repair-categories", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:00:02.316Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/68/repair-history", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:00:02.318Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/68/external-logs", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:00:05.170Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:00:19.954Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T04:00:50.060Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T04:01:20.161Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T04:01:50.252Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T04:02:20.357Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T04:02:50.447Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T04:03:20.523Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T04:03:50.611Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T04:04:20.709Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T04:04:30.366Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "15ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:04:30.586Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:04:30.613Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:04:30.631Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-04", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:04:30.642Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:04:31.344Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:04:31.827Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments?workplace_id=2", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:04:31.842Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments?workplace_id=2", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:04:34.778Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/68/photos", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:04:34.781Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:04:34.787Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/68/external-logs", - "statusCode": 200, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:04:34.791Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/68/repair-history", - "statusCode": 200, - "duration": "17ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:04:34.795Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/repair-categories", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:04:37.295Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:04:50.840Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "5ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T04:05:20.937Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T04:05:51.026Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T04:06:19.121Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260204", - "baseTime": "1200", - "nx": 57, - "ny": 119 -} -[2026-02-04T04:06:19.217Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 7.3, - "humidity": 56, - "windSpeed": 2, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-04T04:06:19.226Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 7.3, - "humidity": 56, - "windSpeed": 2, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-04T04:06:19.228Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "113ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:06:19.250Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:06:19.364Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:06:19.429Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:06:19.455Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-04", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:06:19.465Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:06:20.254Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:06:20.535Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments?workplace_id=2", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:06:20.546Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments?workplace_id=2", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:06:21.140Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T04:06:23.232Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:06:23.234Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/68/external-logs", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:06:23.234Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/68/photos", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:06:23.239Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/68/repair-history", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:06:23.242Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/repair-categories", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:06:25.111Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:06:51.231Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T04:07:21.321Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T04:07:51.408Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T04:07:53.559Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:07:53.644Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:07:53.653Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:07:53.740Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-04", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:07:53.750Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:07:54.550Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:07:56.016Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments?workplace_id=2", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:07:56.027Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments?workplace_id=2", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:07:58.806Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/68/photos", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:07:58.812Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/68/repair-history", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:07:58.815Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:07:58.817Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/68/external-logs", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:07:58.822Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/repair-categories", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:08:00.556Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:08:21.500Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T04:08:51.585Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T04:09:21.673Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T04:09:51.761Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T04:09:58.842Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:09:58.939Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:09:58.960Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:09:59.054Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-04", - "statusCode": 200, - "duration": "19ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:09:59.067Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:09:59.741Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:10:00.408Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments?workplace_id=2", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:10:00.422Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments?workplace_id=2", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:10:04.096Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/68/photos", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:10:04.098Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:10:04.100Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/68/external-logs", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:10:04.105Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/68/repair-history", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:10:04.108Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/repair-categories", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:10:06.472Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:10:06.477Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:10:21.854Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T04:10:51.950Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T04:11:22.037Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T04:11:52.132Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T04:12:22.221Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T04:12:52.290Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T04:13:22.386Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T04:13:52.477Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T04:14:22.579Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T04:14:52.678Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T04:15:22.773Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T04:15:52.876Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T04:16:22.971Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T04:16:53.067Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T04:17:23.165Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T04:17:53.255Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T04:18:23.362Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T04:18:53.476Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "6ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T04:18:55.025Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260204", - "baseTime": "1300", - "nx": 57, - "ny": 119 -} -[2026-02-04T04:18:55.100Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:18:55.168Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 7.6, - "humidity": 58, - "windSpeed": 2, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-04T04:18:55.169Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 7.6, - "humidity": 58, - "windSpeed": 2, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-04T04:18:55.172Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "157ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:18:55.272Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:18:55.287Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:18:55.348Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-04", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:18:55.356Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:18:56.100Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:18:57.685Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments?workplace_id=2", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:18:57.704Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments?workplace_id=2", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:19:00.807Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/68/photos", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:19:00.811Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:19:00.814Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/68/repair-history", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:19:00.817Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/repair-categories", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:19:00.819Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/68/external-logs", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:19:03.071Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:19:03.073Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:19:23.579Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T04:19:49.890Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:19:49.896Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:19:49.985Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/4", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:19:49.986Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/10", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:19:49.987Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/7", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:19:49.990Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/workplace/2", - "statusCode": 200, - "duration": "17ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:19:49.995Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/9", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:19:49.997Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/1", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:19:49.998Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/8", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:19:49.999Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/3", - "statusCode": 200, - "duration": "21ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:19:50.001Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/12", - "statusCode": 200, - "duration": "20ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:19:50.002Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/11", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:19:50.005Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/6", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:19:50.006Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/5", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:19:50.010Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:19:50.077Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/workplace/2", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:19:53.682Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T04:20:23.791Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T04:20:53.876Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T04:21:13.127Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:21:13.221Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:21:13.313Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:21:13.334Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-04", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:21:13.342Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:21:14.118Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments?workplace_id=2", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:21:14.128Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:21:14.134Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments?workplace_id=2", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:21:17.094Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/68/photos", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:21:17.104Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:21:17.107Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/68/external-logs", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:21:17.111Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/68/repair-history", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:21:17.114Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/repair-categories", - "statusCode": 200, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:21:19.702Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "15ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:21:19.706Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:21:23.986Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T04:21:54.082Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T04:22:24.177Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T04:22:28.738Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:22:28.958Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:22:28.969Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:22:29.065Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-04", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:22:29.090Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "17ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:22:29.731Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:22:29.849Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments?workplace_id=2", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:22:29.859Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments?workplace_id=2", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:22:32.913Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/68/photos", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:22:32.916Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:22:32.920Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/68/repair-history", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:22:32.923Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/68/external-logs", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:22:32.926Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/repair-categories", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:22:34.604Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:22:34.606Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:22:54.284Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T04:23:24.372Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T04:23:54.465Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T04:24:24.564Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T04:24:35.646Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260204", - "baseTime": "1300", - "nx": 57, - "ny": 119 -} -[2026-02-04T04:24:35.661Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:24:35.742Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:24:35.748Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:24:35.832Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-04", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:24:35.854Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:24:35.919Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 7.6, - "humidity": 58, - "windSpeed": 2, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-04T04:24:35.920Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 7.6, - "humidity": 58, - "windSpeed": 2, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-04T04:24:35.921Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "279ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:24:36.657Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:24:37.823Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments?workplace_id=2", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:24:37.840Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments?workplace_id=2", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:24:40.669Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/68/photos", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:24:40.672Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:24:40.673Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/68/repair-history", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:24:40.677Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/68/external-logs", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:24:40.679Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/repair-categories", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:24:42.719Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:24:42.722Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:24:54.672Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T04:25:24.766Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T04:25:54.868Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T04:26:24.965Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T04:26:55.050Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T04:27:25.146Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T04:27:55.237Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T04:28:15.994Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments?workplace_id=2", - "statusCode": 200, - "duration": "16ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:28:15.995Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments?workplace_id=2", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:28:25.317Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T04:28:35.103Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:28:55.412Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T04:29:25.502Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T04:29:35.894Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:29:35.983Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:29:35.995Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:29:36.087Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-04", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:29:36.102Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:29:36.884Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:29:38.322Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments?workplace_id=2", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:29:38.339Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments?workplace_id=2", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:29:42.275Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/68/photos", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:29:42.277Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:29:42.282Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/68/repair-history", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:29:42.285Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/68/external-logs", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:29:42.288Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/repair-categories", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:29:43.925Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:29:43.927Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:29:44.942Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments?workplace_id=2", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:29:55.617Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T04:30:25.707Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T04:30:55.792Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T04:31:25.886Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T04:31:55.987Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T04:32:12.292Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260204", - "baseTime": "1300", - "nx": 57, - "ny": 119 -} -[2026-02-04T04:32:12.421Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 7, - "humidity": 59, - "windSpeed": 2.9, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-04T04:32:12.426Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 7, - "humidity": 59, - "windSpeed": 2.9, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-04T04:32:12.429Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "145ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:32:12.445Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:32:12.549Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:32:12.563Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:32:12.653Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-04", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:32:12.667Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:32:13.445Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:32:13.539Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments?workplace_id=2", - "statusCode": 200, - "duration": "15ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:32:13.550Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments?workplace_id=2", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:32:16.160Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/68/photos", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:32:16.164Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/68/repair-history", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:32:16.168Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:32:16.168Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/68/external-logs", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:32:16.169Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/repair-categories", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:32:17.671Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:32:17.673Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:32:18.840Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments?workplace_id=2", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:32:26.100Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T04:32:56.206Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T04:33:26.349Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T04:33:56.415Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T04:34:19.841Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "19ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:34:20.027Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:34:20.113Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:34:20.134Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-04", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:34:20.142Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:34:20.728Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments?workplace_id=7", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:34:20.808Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:34:22.571Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments?workplace_id=2", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:34:22.584Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments?workplace_id=2", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:34:25.032Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/68/photos", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:34:25.033Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:34:25.038Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/68/external-logs", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:34:25.041Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/68/repair-history", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:34:25.043Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/repair-categories", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:34:26.505Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T04:34:26.928Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:34:26.932Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:34:28.094Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments?workplace_id=2", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:34:37.594Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:34:37.596Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:34:45.696Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/equipments/68/move", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:34:56.604Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T04:35:26.716Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T04:35:56.808Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T04:36:26.914Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T04:36:56.999Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T04:37:27.089Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T04:37:57.188Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T04:38:27.283Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T04:38:57.374Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T04:39:27.469Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T04:39:57.554Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T04:40:27.644Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T04:40:57.734Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T04:41:27.850Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T04:41:57.939Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T04:42:28.025Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T04:42:58.112Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T04:43:28.223Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T04:43:58.307Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T04:44:26.755Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:44:27.118Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260204", - "baseTime": "1300", - "nx": 57, - "ny": 119 -} -[2026-02-04T04:44:27.126Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:44:27.200Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:44:27.231Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-04", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:44:27.240Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:44:27.287Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 7.3, - "humidity": 58, - "windSpeed": 2.2, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-04T04:44:27.288Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 7.3, - "humidity": 58, - "windSpeed": 2.2, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-04T04:44:27.289Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "172ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:44:27.737Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:44:28.421Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T04:44:28.576Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments?workplace_id=2", - "statusCode": 200, - "duration": "15ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:44:28.598Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments?workplace_id=2", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:44:31.736Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:44:31.738Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/68/photos", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:44:31.740Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/68/repair-history", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:44:31.742Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/68/external-logs", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:44:31.743Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/repair-categories", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:44:33.366Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:44:33.370Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:44:36.453Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/equipments/68/move", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:44:38.269Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments?workplace_id=2", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:44:57.309Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:44:57.384Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:44:57.391Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:44:57.489Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-04", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:44:57.503Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:44:58.320Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:44:58.503Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T04:45:28.602Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T04:45:53.347Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:45:53.351Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/patrol/item-types", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:45:53.353Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/patrol/today-status", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:45:54.231Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:45:58.696Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T04:45:58.753Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/patrol/sessions", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:45:58.762Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:45:58.770Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/patrol/checklist?category_id=1", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:46:28.780Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T04:46:30.209Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/active/list", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:46:30.275Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:46:30.285Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:46:30.287Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-04", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:46:30.301Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:46:51.176Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues/categories/type/safety", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:46:55.823Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues/categories/type/nonconformity", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:46:57.250Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues/categories/type/safety", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:46:58.226Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues/items/category/9", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:46:58.865Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T04:47:13.991Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:47:14.065Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:47:14.072Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:47:14.153Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-04", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:47:14.170Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:47:14.985Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:47:15.824Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments?workplace_id=10", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:47:28.976Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T04:47:59.070Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T04:48:29.271Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T04:48:59.374Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T04:49:29.451Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T04:49:59.517Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T04:50:29.574Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T04:50:59.652Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T04:51:29.739Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T04:51:59.833Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T04:52:29.920Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T04:52:57.793Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "24ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:52:58.117Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260204", - "baseTime": "1300", - "nx": 57, - "ny": 119 -} -[2026-02-04T04:52:58.130Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "23ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:52:58.211Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:52:58.244Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-04", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:52:58.253Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:52:58.257Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 7.6, - "humidity": 57, - "windSpeed": 2.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-04T04:52:58.259Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 7.6, - "humidity": 57, - "windSpeed": 2.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-04T04:52:58.263Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "152ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:52:58.271Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/moved/list", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:52:58.699Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:53:00.032Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T04:53:30.122Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T04:53:35.227Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments?workplace_id=2", - "statusCode": 200, - "duration": "20ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:53:35.244Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments?workplace_id=2", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:53:46.447Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments?workplace_id=10", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T04:54:00.210Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T04:54:30.302Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T04:55:00.388Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T04:55:30.488Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T04:56:00.575Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T04:56:30.660Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T04:57:00.743Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T04:57:30.850Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T04:58:01.024Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T04:58:31.127Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T04:59:01.233Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T04:59:31.352Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T05:00:01.512Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T05:00:05.799Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "46ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:00:06.252Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260204", - "baseTime": "1300", - "nx": 57, - "ny": 119 -} -[2026-02-04T05:00:06.266Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "20ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:00:06.361Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:00:06.390Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-04", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:00:06.397Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:00:06.412Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/moved/list", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:00:06.740Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:00:07.044Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 7.4, - "humidity": 57, - "windSpeed": 2.4, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-04T05:00:07.048Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 7.4, - "humidity": 57, - "windSpeed": 2.4, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-04T05:00:07.052Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "804ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:00:31.656Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T05:01:01.784Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T05:01:31.901Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T05:02:02.031Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T05:02:32.122Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T05:02:45.453Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments?workplace_id=2", - "statusCode": 200, - "duration": "17ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:02:45.512Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments?workplace_id=2", - "statusCode": 200, - "duration": "28ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:02:47.882Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/moved/list", - "statusCode": 200, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:02:53.982Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments?workplace_id=10", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:02:54.977Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/moved/list", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:03:02.234Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T05:03:32.323Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T05:04:02.417Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T05:04:32.520Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T05:05:02.661Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T05:05:32.777Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T05:06:02.860Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T05:06:32.951Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T05:07:03.028Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T05:07:33.120Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T05:08:03.213Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T05:08:33.302Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T05:09:03.397Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T05:09:33.497Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T05:10:03.585Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T05:10:33.713Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "12ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T05:11:03.804Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T05:11:33.882Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T05:12:03.988Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T05:12:34.088Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T05:13:04.179Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T05:13:34.272Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T05:14:04.420Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T05:14:34.570Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T05:15:04.768Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "5ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T05:15:34.922Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "14ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T05:16:05.033Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T05:16:35.140Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T05:17:05.224Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T05:17:35.315Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T05:18:05.415Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T05:18:35.519Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T05:19:05.609Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T05:19:35.708Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T05:20:05.791Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T05:20:35.883Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T05:21:05.976Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T05:21:36.077Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T05:22:06.155Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T05:22:36.235Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T05:23:06.332Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T05:23:11.045Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260204", - "baseTime": "1400", - "nx": 57, - "ny": 119 -} -[2026-02-04T05:23:11.072Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:23:11.184Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 7.7, - "humidity": 56, - "windSpeed": 2.5, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-04T05:23:11.186Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 7.7, - "humidity": 56, - "windSpeed": 2.5, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-04T05:23:11.187Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "146ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:23:11.188Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:23:11.284Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:23:11.337Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-04", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:23:11.350Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:23:11.369Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/moved/list", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:23:12.044Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:23:36.470Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T05:23:37.695Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:23:37.785Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:23:37.795Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:23:37.921Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-04", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:23:37.929Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:23:37.947Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/moved/list", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:23:38.689Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:24:06.566Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T05:24:36.639Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T05:25:06.765Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T05:25:36.878Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T05:26:06.977Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T05:26:37.104Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T05:27:06.379Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:27:06.621Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:27:06.644Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:27:06.761Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-04", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:27:06.769Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:27:06.786Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/moved/list", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:27:07.259Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T05:27:07.344Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:27:23.640Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:27:23.642Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/patrol/item-types", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:27:23.645Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/patrol/today-status", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:27:24.516Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:27:37.338Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T05:28:07.436Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T05:28:37.538Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T05:29:07.631Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T05:29:37.721Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T05:30:07.811Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T05:30:37.892Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T05:30:49.588Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:31:08.004Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T05:31:13.456Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 200, - "duration": "112ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:31:14.193Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:31:14.240Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:31:14.249Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260204", - "baseTime": "1400", - "nx": 57, - "ny": 119 -} -[2026-02-04T05:31:14.256Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:31:14.268Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-04", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:31:14.275Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:31:14.289Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/equipments/moved/list", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:31:15.186Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:31:15.433Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 7.7, - "humidity": 57, - "windSpeed": 1.5, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-04T05:31:15.437Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 7.7, - "humidity": 57, - "windSpeed": 1.5, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-04T05:31:15.443Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "1197ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:31:22.017Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:31:22.053Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:31:22.059Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:31:22.072Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-04", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:31:22.079Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:31:22.084Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/equipments/moved/list", - "statusCode": 304, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:31:23.015Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:31:37.352Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments?workplace_id=2", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:31:37.410Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/equipments?workplace_id=2", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:31:38.089Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T05:31:42.845Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:31:42.847Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/18/photos", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:31:42.853Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/18/repair-history", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:31:42.854Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/repair-categories", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:31:42.856Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/18/external-logs", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:32:08.185Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T05:32:38.281Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T05:33:08.383Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T05:33:38.497Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T05:34:08.587Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T05:34:38.673Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T05:34:54.044Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2026-02-04T05:34:54.046Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-02-04T05:34:54.607Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-02-04T05:34:54.693Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-02-04T05:34:54.845Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2026-02-04T05:34:54.855Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-02-04T05:34:59.412Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T05:35:29.498Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T05:35:32.596Z] [INFO] ℹ️ MariaDB 연결 성공 - Context: { - "connection": "db:3306", - "database": "hyungi", - "connectionLimit": 10 -} -[2026-02-04T05:35:32.599Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "17ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:35:32.698Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:35:32.707Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:35:32.721Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-04", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:35:32.733Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:35:32.745Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/moved/list", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:35:33.541Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:35:34.263Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments?workplace_id=2", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:35:34.280Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments?workplace_id=2", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:35:38.350Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/18/repair-history", - "statusCode": 200, - "duration": "16ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:35:38.355Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/repair-categories", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:35:38.359Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/18/photos", - "statusCode": 200, - "duration": "22ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:35:38.361Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "21ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:35:38.363Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/18/external-logs", - "statusCode": 200, - "duration": "20ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:35:54.941Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/equipments/18/repair-request", - "statusCode": 201, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:35:54.950Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/18/repair-history", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:35:59.571Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T05:36:29.664Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T05:36:59.752Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T05:37:07.670Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/types", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:37:07.673Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments", - "statusCode": 200, - "duration": "17ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:37:07.675Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces", - "statusCode": 200, - "duration": "15ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:37:07.715Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260204", - "baseTime": "1400", - "nx": 57, - "ny": 119 -} -[2026-02-04T05:37:08.036Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 7.4, - "humidity": 57, - "windSpeed": 1.7, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-04T05:37:08.044Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 7.4, - "humidity": 57, - "windSpeed": 1.7, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-04T05:37:08.049Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "367ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:37:08.597Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:37:29.844Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T05:37:59.923Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T05:38:30.009Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T05:39:00.103Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T05:39:30.195Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T05:40:00.289Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T05:40:30.385Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T05:41:00.470Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T05:41:30.552Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T05:42:00.629Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T05:42:30.688Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T05:43:00.739Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T05:43:30.796Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T05:44:00.873Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T05:44:30.956Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T05:45:01.033Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T05:45:31.142Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T05:46:01.236Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T05:46:31.329Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T05:47:01.413Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T05:47:31.496Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T05:48:01.573Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T05:48:31.687Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T05:49:01.779Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T05:49:31.876Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T05:50:01.951Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T05:50:05.275Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/active/list", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:50:05.360Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260204", - "baseTime": "1400", - "nx": 57, - "ny": 119 -} -[2026-02-04T05:50:05.377Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:50:05.381Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-04", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:50:05.383Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:50:05.399Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:50:05.759Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 7.8, - "humidity": 57, - "windSpeed": 2.6, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-04T05:50:05.764Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 7.8, - "humidity": 57, - "windSpeed": 2.6, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-04T05:50:05.770Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "413ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:50:10.678Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/types", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:50:10.685Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:50:10.686Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:50:11.620Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:50:12.625Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/1", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:50:18.947Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:50:18.994Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:50:19.004Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:50:19.018Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-04", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:50:19.027Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:50:19.040Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/moved/list", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:50:19.722Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments?workplace_id=2", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:50:19.732Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments?workplace_id=2", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:50:19.936Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:50:23.067Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:50:23.068Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/18/photos", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:50:23.071Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/18/repair-history", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:50:23.078Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/repair-categories", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:50:23.079Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/18/external-logs", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:50:32.048Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T05:51:02.137Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T05:51:32.234Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T05:52:02.320Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T05:52:05.031Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:52:05.071Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:52:05.078Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:52:05.109Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-04", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:52:05.117Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:52:05.134Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/moved/list", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:52:06.028Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:52:32.402Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T05:52:51.721Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:52:51.758Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:52:51.769Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:52:51.780Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-04", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:52:51.788Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:52:51.801Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/moved/list", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:52:52.719Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:53:02.488Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T05:53:32.565Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T05:53:53.278Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:53:53.319Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:53:53.327Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:53:53.339Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-04", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:53:53.349Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:53:53.370Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/moved/list", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:53:54.278Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:53:59.293Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:53:59.324Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:53:59.329Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:53:59.341Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-04", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:53:59.387Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:53:59.418Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/moved/list", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:54:00.290Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:54:02.644Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T05:54:32.729Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T05:54:35.170Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:54:35.245Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:54:35.251Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:54:35.263Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260204", - "baseTime": "1400", - "nx": 57, - "ny": 119 -} -[2026-02-04T05:54:35.271Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-04", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:54:35.284Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:54:35.298Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/moved/list", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:54:35.335Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 7.8, - "humidity": 57, - "windSpeed": 2.6, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-04T05:54:35.337Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 7.8, - "humidity": 57, - "windSpeed": 2.6, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-04T05:54:35.338Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "77ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:54:36.167Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:55:02.815Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T05:55:32.907Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T05:56:02.986Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T05:56:33.082Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T05:56:38.231Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:56:38.294Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:56:38.334Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:56:38.362Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-04", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:56:38.374Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:56:38.388Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/moved/list", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:56:39.232Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:57:03.164Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T05:57:18.463Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:57:18.491Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:57:18.497Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:57:18.528Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-04", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:57:18.536Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260204", - "baseTime": "1400", - "nx": 57, - "ny": 119 -} -[2026-02-04T05:57:18.539Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:57:18.556Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/moved/list", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:57:18.604Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 7.4, - "humidity": 57, - "windSpeed": 2.2, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-04T05:57:18.605Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 7.4, - "humidity": 57, - "windSpeed": 2.2, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-04T05:57:18.606Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "71ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:57:19.446Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:57:33.246Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T05:58:03.342Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T05:58:14.028Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/notifications/unread", - "method": "GET" -} -[2026-02-04T05:58:14.029Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 404, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T05:58:33.421Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T05:58:38.884Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2026-02-04T05:58:38.887Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-02-04T05:58:40.140Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-02-04T05:58:40.612Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-02-04T05:58:41.185Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-02-04T05:58:41.932Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-02-04T05:58:43.109Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-02-04T05:58:45.056Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-02-04T05:58:48.624Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-02-04T05:59:27.820Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-02-04T05:59:28.282Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-02-04T05:59:28.808Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-02-04T05:59:29.552Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-02-04T05:59:30.705Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-02-04T05:59:32.663Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-02-04T05:59:36.208Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-02-04T05:59:42.948Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-02-04T05:59:56.112Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-02-04T06:00:22.057Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-02-04T06:01:13.601Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-02-04T06:01:13.666Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-02-04T06:01:13.739Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2026-02-04T06:01:13.746Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-02-04T06:01:18.532Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T06:01:48.623Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T06:02:18.715Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T06:02:48.797Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T06:03:03.759Z] [INFO] ℹ️ MariaDB 연결 성공 - Context: { - "connection": "db:3306", - "database": "hyungi", - "connectionLimit": 10 -} -[2026-02-04T06:03:03.764Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "27ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:03:03.854Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260204", - "baseTime": "1400", - "nx": 57, - "ny": 119 -} -[2026-02-04T06:03:03.893Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:03:03.900Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:03:03.916Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-04", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:03:03.924Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:03:03.942Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/moved/list", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:03:03.980Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 7.4, - "humidity": 57, - "windSpeed": 2.2, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-04T06:03:03.982Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 7.4, - "humidity": 57, - "windSpeed": 2.2, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-04T06:03:03.984Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "184ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:03:04.719Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:03:13.330Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2026-02-04T06:03:13.331Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-02-04T06:03:46.746Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-02-04T06:03:46.833Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-02-04T06:03:46.910Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2026-02-04T06:03:46.917Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-02-04T06:03:51.563Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T06:03:52.721Z] [INFO] ℹ️ MariaDB 연결 성공 - Context: { - "connection": "db:3306", - "database": "hyungi", - "connectionLimit": 10 -} -[2026-02-04T06:03:52.727Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "28ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:03:52.747Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:03:52.757Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:03:52.774Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-04", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:03:52.783Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:03:52.796Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/moved/list", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:03:53.702Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:04:21.658Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T06:04:42.075Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:04:51.748Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T06:05:21.846Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T06:05:51.954Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T06:06:22.089Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T06:06:52.170Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T06:07:22.264Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T06:07:52.350Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T06:08:22.523Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T06:08:25.531Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:08:25.611Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260204", - "baseTime": "1400", - "nx": 57, - "ny": 119 -} -[2026-02-04T06:08:25.640Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "64ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:08:25.643Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:08:25.650Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:08:25.665Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-04", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:08:25.677Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:08:25.692Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/moved/list", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:08:26.008Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 7.4, - "humidity": 57, - "windSpeed": 2.2, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-04T06:08:26.021Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 7.4, - "humidity": 57, - "windSpeed": 2.2, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-04T06:08:26.027Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "450ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:08:26.374Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:08:30.763Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/notifications/1/read", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:08:31.641Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/workplace-categories", - "method": "GET" -} -[2026-02-04T06:08:31.644Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workplace-categories", - "statusCode": 404, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:08:31.646Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/18", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:08:31.651Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/repair-categories", - "statusCode": 200, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:08:31.666Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/2", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:08:31.669Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/18/photos", - "statusCode": 200, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:08:31.675Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/18/external-logs", - "statusCode": 200, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:08:31.677Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/18/repair-history", - "statusCode": 200, - "duration": "20ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:08:31.680Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/18/move-logs", - "statusCode": 200, - "duration": "21ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:08:31.756Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:08:32.567Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:08:52.602Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T06:09:01.568Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:09:14.570Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:09:14.630Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:09:14.640Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:09:14.697Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-04", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:09:14.704Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:09:14.717Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/moved/list", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:09:14.732Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:09:15.546Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:09:20.928Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:09:21.001Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:09:21.065Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:09:21.081Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-04", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:09:21.088Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:09:21.100Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/moved/list", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:09:21.106Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:09:21.922Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:09:22.693Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T06:09:50.918Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:09:52.771Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T06:10:20.922Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:10:22.865Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T06:10:50.926Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:10:52.947Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T06:11:20.919Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:11:23.033Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T06:11:50.916Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:11:53.117Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T06:12:20.925Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:12:23.203Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T06:12:50.944Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:12:53.319Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T06:13:03.764Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:13:03.853Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:13:03.861Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:13:03.878Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-04", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:13:03.884Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:13:03.898Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/moved/list", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:13:03.932Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:13:04.750Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:13:08.331Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:13:08.435Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues?category_type=nonconformity", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:13:23.422Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T06:13:38.147Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:13:50.991Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues?category_type=nonconformity", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:13:53.520Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T06:14:00.364Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260204", - "baseTime": "1500", - "nx": 57, - "ny": 119 -} -[2026-02-04T06:14:00.500Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:14:00.563Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues?category_type=nonconformity", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:14:02.520Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 7.8, - "humidity": 56, - "windSpeed": 1.7, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-04T06:14:02.527Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 7.8, - "humidity": 56, - "windSpeed": 1.7, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-04T06:14:02.532Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "2173ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:14:11.001Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues?category_type=nonconformity", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:14:18.196Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues?category_type=nonconformity", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:14:23.597Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T06:14:30.265Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:14:46.339Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues?category_type=nonconformity", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:14:53.682Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T06:15:00.269Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:15:23.760Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T06:15:25.701Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues?category_type=nonconformity", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:15:30.265Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:15:53.864Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T06:15:54.059Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues?category_type=nonconformity", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:16:00.262Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:16:23.958Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T06:16:30.272Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:16:46.185Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues?category_type=nonconformity", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:16:54.051Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T06:17:00.273Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:17:24.160Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T06:17:30.282Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:17:54.256Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T06:18:00.273Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:18:24.340Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T06:18:27.023Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:18:27.122Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues?category_type=nonconformity", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:18:54.429Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T06:19:02.224Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:19:24.509Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T06:19:32.219Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:19:54.602Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T06:20:02.231Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:20:24.700Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T06:20:32.229Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:20:54.803Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T06:21:02.228Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:21:24.900Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T06:21:32.226Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:21:54.989Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T06:22:02.223Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:22:25.085Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T06:22:32.225Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:22:55.179Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T06:23:02.221Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:23:25.273Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T06:23:32.223Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:23:55.364Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T06:24:02.228Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:24:03.783Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/departments", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:24:03.870Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260204", - "baseTime": "1500", - "nx": 57, - "ny": 119 -} -[2026-02-04T06:24:03.933Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:24:03.938Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 8.1, - "humidity": 55, - "windSpeed": 1.9, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-04T06:24:03.940Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 8.1, - "humidity": 55, - "windSpeed": 1.9, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-04T06:24:03.942Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "75ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:24:20.424Z] [ERROR] ❌ r.toLowerCase is not a function - Context: { - "code": "INTERNAL_ERROR", - "stack": "AppError: r.toLowerCase is not a function\n at errorHandler (/usr/src/app/middlewares/errorHandler.js:51:13)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:71:5)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/src/app/node_modules/express/lib/router/index.js:280:10)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:67:12)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)", - "url": "/api/departments", - "method": "POST", - "user": "hyungi" -} -[2026-02-04T06:24:20.427Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/departments", - "statusCode": 500, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:24:25.452Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T06:24:33.745Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:24:55.551Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T06:25:03.762Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:25:16.380Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/active/list", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:25:16.458Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:25:16.465Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-04", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:25:16.466Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:25:16.564Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:25:16.570Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:25:23.208Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues/categories/type/safety", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:25:25.643Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T06:25:46.351Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:25:55.728Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T06:26:16.359Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:26:25.812Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T06:26:46.359Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:26:55.900Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T06:27:16.353Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:27:25.987Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T06:27:37.212Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/active/list", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:27:37.280Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:27:37.282Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-04", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:27:37.284Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:27:37.292Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:27:37.361Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:27:47.744Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:27:47.872Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues?category_type=nonconformity", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:27:47.880Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?status=active", - "statusCode": 200, - "duration": "17ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:27:56.073Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T06:28:17.673Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:28:26.178Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T06:28:47.680Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:28:56.265Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T06:29:17.773Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:29:26.356Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T06:29:47.879Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:29:56.442Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T06:30:17.976Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:30:26.523Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T06:30:48.071Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:30:56.582Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T06:31:26.636Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T06:31:56.689Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T06:32:07.252Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:32:26.760Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T06:32:56.830Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T06:33:07.260Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:33:26.917Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T06:33:57.013Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T06:34:01.798Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2026-02-04T06:34:01.801Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-02-04T06:34:36.645Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-02-04T06:34:37.106Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-02-04T06:34:37.642Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-02-04T06:34:38.390Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-02-04T06:34:39.556Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-02-04T06:34:41.495Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-02-04T06:34:45.047Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-02-04T06:34:51.823Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-02-04T06:35:04.992Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-02-04T06:35:30.938Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-02-04T06:36:22.517Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-02-04T06:36:22.598Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-02-04T06:36:22.684Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2026-02-04T06:36:22.692Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-02-04T06:36:27.449Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T06:36:37.278Z] [INFO] ℹ️ MariaDB 연결 성공 - Context: { - "connection": "db:3306", - "database": "hyungi", - "connectionLimit": 10 -} -[2026-02-04T06:36:37.283Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "28ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:36:42.619Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260204", - "baseTime": "1500", - "nx": 57, - "ny": 119 -} -[2026-02-04T06:36:42.670Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:36:42.777Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues?category_type=nonconformity", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:36:42.780Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?status=active", - "statusCode": 200, - "duration": "15ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:36:42.842Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 7.6, - "humidity": 56, - "windSpeed": 1.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-04T06:36:42.844Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 7.6, - "humidity": 56, - "windSpeed": 1.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-04T06:36:42.846Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "267ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:36:45.938Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:36:46.062Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:36:46.072Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:36:46.077Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:36:46.107Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-04", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:36:46.117Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:36:46.136Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/moved/list", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:36:46.886Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:36:50.796Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:36:50.903Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues?category_type=nonconformity", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:36:50.905Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?status=active", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:36:57.537Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T06:37:16.860Z] [INFO] ℹ️ 사용자 목록 조회 요청 - Context: { - "requestedBy": "hyungi" -} -[2026-02-04T06:37:16.866Z] [INFO] ℹ️ 사용자 목록 조회 성공 - Context: { - "count": 5 -} -[2026-02-04T06:37:16.870Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:37:16.946Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/notification-recipients", - "statusCode": 500, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:37:17.027Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:37:20.915Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/pages", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:37:20.931Z] [INFO] ℹ️ 사용자 페이지 권한 조회 요청 - Context: { - "userId": "5" -} -[2026-02-04T06:37:20.934Z] [INFO] ℹ️ 사용자 페이지 권한 조회 성공 - Context: { - "userId": "5", - "pageCount": 35 -} -[2026-02-04T06:37:20.936Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users/5/page-access", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:37:27.618Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T06:37:46.840Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:37:57.718Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T06:38:16.833Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:38:27.801Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T06:38:46.852Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:38:57.901Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T06:39:16.837Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:39:28.003Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T06:39:46.837Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:39:58.092Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T06:40:06.572Z] [INFO] ℹ️ 사용자 목록 조회 요청 - Context: { - "requestedBy": "hyungi" -} -[2026-02-04T06:40:06.577Z] [INFO] ℹ️ 사용자 목록 조회 성공 - Context: { - "count": 5 -} -[2026-02-04T06:40:06.585Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users", - "statusCode": 200, - "duration": "16ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:40:06.642Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/notification-recipients", - "statusCode": 500, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:40:06.724Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:40:28.196Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T06:40:36.536Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:40:58.293Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T06:41:06.594Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:41:11.128Z] [INFO] ℹ️ 사용자 목록 조회 요청 - Context: { - "requestedBy": "hyungi" -} -[2026-02-04T06:41:11.133Z] [INFO] ℹ️ 사용자 목록 조회 성공 - Context: { - "count": 5 -} -[2026-02-04T06:41:11.136Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:41:11.237Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/notification-recipients", - "statusCode": 500, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:41:11.381Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:41:28.398Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T06:41:41.115Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:41:58.502Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T06:42:11.117Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:42:28.599Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T06:42:41.118Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:42:58.698Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T06:43:11.125Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:43:17.969Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2026-02-04T06:43:17.973Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-02-04T06:43:53.232Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-02-04T06:43:53.316Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-02-04T06:43:53.407Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2026-02-04T06:43:53.414Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-02-04T06:43:57.975Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T06:44:11.251Z] [INFO] ℹ️ MariaDB 연결 성공 - Context: { - "connection": "db:3306", - "database": "hyungi", - "connectionLimit": 10 -} -[2026-02-04T06:44:11.259Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "40ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:44:22.458Z] [INFO] ℹ️ 사용자 목록 조회 요청 - Context: { - "requestedBy": "hyungi" -} -[2026-02-04T06:44:22.465Z] [INFO] ℹ️ 사용자 목록 조회 성공 - Context: { - "count": 5 -} -[2026-02-04T06:44:22.469Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users", - "statusCode": 200, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:44:22.628Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260204", - "baseTime": "1500", - "nx": 57, - "ny": 119 -} -[2026-02-04T06:44:22.696Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:44:22.703Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/notification-recipients", - "statusCode": 500, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:44:23.090Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 7.6, - "humidity": 56, - "windSpeed": 1.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-04T06:44:23.100Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 7.6, - "humidity": 56, - "windSpeed": 1.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-04T06:44:23.106Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "578ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:44:28.071Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T06:44:52.408Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:44:58.171Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T06:45:22.409Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:45:28.269Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T06:45:52.454Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:45:58.350Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T06:46:22.503Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:46:28.450Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T06:46:52.587Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:46:58.535Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T06:47:14.344Z] [WARN] ⚠️ 인증 실패: Authorization 헤더 없음 - Context: { - "path": "/", - "method": "GET", - "ip": "::1" -} -[2026-02-04T06:47:14.347Z] [WARN] ⚠️ Authorization 헤더가 필요합니다 - Context: { - "code": "AUTHENTICATION_ERROR", - "url": "/api/notification-recipients", - "method": "GET", - "user": "anonymous" -} -[2026-02-04T06:47:14.355Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/notification-recipients", - "statusCode": 401, - "duration": "11ms", - "ip": "::1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:47:14.552Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/apple-touch-icon-precomposed.png", - "method": "GET" -} -[2026-02-04T06:47:14.630Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/apple-touch-icon.png", - "method": "GET" -} -[2026-02-04T06:47:14.676Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/favicon.ico", - "method": "GET" -} -[2026-02-04T06:47:22.693Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:47:28.620Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T06:47:46.730Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/notification-recipients", - "statusCode": 500, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:47:58.713Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T06:48:28.804Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T06:48:29.379Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:48:48.063Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/notification-recipients", - "statusCode": 500, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:48:58.886Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T06:49:18.276Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:49:20.333Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/notification-recipients", - "statusCode": 500, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:49:28.962Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T06:49:43.740Z] [INFO] ℹ️ 사용자 목록 조회 요청 - Context: { - "requestedBy": "hyungi" -} -[2026-02-04T06:49:43.744Z] [INFO] ℹ️ 사용자 목록 조회 성공 - Context: { - "count": 5 -} -[2026-02-04T06:49:43.746Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:49:43.883Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260204", - "baseTime": "1500", - "nx": 57, - "ny": 119 -} -[2026-02-04T06:49:43.895Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/notification-recipients", - "statusCode": 500, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:49:43.898Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:49:46.453Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 7.8, - "humidity": 56, - "windSpeed": 1.6, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-04T06:49:46.459Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 7.8, - "humidity": 56, - "windSpeed": 1.6, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-04T06:49:46.465Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "2587ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:49:59.055Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T06:50:13.774Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:50:29.146Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T06:50:43.875Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:50:48.506Z] [WARN] ⚠️ 인증 실패: Bearer 토큰 누락 - Context: { - "path": "/", - "method": "GET", - "ip": "::1" -} -[2026-02-04T06:50:48.506Z] [WARN] ⚠️ Bearer 토큰이 필요합니다 - Context: { - "code": "AUTHENTICATION_ERROR", - "url": "/api/notification-recipients", - "method": "GET", - "user": "anonymous" -} -[2026-02-04T06:50:48.507Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/notification-recipients", - "statusCode": 401, - "duration": "1ms", - "ip": "::1", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-02-04T06:50:59.248Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T06:51:13.970Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:51:29.331Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T06:51:44.073Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:51:59.393Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T06:52:14.173Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:52:29.469Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T06:52:39.145Z] [INFO] ℹ️ 사용자 목록 조회 요청 - Context: { - "requestedBy": "hyungi" -} -[2026-02-04T06:52:39.152Z] [INFO] ℹ️ 사용자 목록 조회 성공 - Context: { - "count": 5 -} -[2026-02-04T06:52:39.154Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:52:39.264Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/notification-recipients", - "statusCode": 500, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:52:39.294Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:52:50.944Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2026-02-04T06:52:50.946Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-02-04T06:53:24.697Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-02-04T06:53:24.789Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-02-04T06:53:24.883Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2026-02-04T06:53:24.889Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-02-04T06:53:29.522Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T06:53:39.116Z] [INFO] ℹ️ MariaDB 연결 성공 - Context: { - "connection": "db:3306", - "database": "hyungi", - "connectionLimit": 10 -} -[2026-02-04T06:53:39.121Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "25ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:53:54.311Z] [INFO] ℹ️ 사용자 목록 조회 요청 - Context: { - "requestedBy": "hyungi" -} -[2026-02-04T06:53:54.323Z] [INFO] ℹ️ 사용자 목록 조회 성공 - Context: { - "count": 5 -} -[2026-02-04T06:53:54.327Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users", - "statusCode": 200, - "duration": "23ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:53:54.394Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/notification-recipients", - "statusCode": 500, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:53:54.479Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:53:59.622Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T06:54:24.280Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:54:29.719Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T06:54:54.397Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:54:59.810Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T06:55:24.379Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:55:26.496Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2026-02-04T06:55:29.384Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-02-04T06:56:02.082Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-02-04T06:56:02.177Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-02-04T06:56:02.265Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2026-02-04T06:56:02.275Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-02-04T06:56:06.870Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T06:56:20.101Z] [INFO] ℹ️ 사용자 목록 조회 요청 - Context: { - "requestedBy": "hyungi" -} -[2026-02-04T06:56:20.126Z] [INFO] ℹ️ MariaDB 연결 성공 - Context: { - "connection": "db:3306", - "database": "hyungi", - "connectionLimit": 10 -} -[2026-02-04T06:56:20.136Z] [INFO] ℹ️ 사용자 목록 조회 성공 - Context: { - "count": 5 -} -[2026-02-04T06:56:20.142Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/users", - "statusCode": 200, - "duration": "49ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:56:20.273Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260204", - "baseTime": "1500", - "nx": 57, - "ny": 119 -} -[2026-02-04T06:56:20.314Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notification-recipients", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:56:20.319Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:56:20.373Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 7.4, - "humidity": 56, - "windSpeed": 2.7, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-04T06:56:20.375Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 7.4, - "humidity": 56, - "windSpeed": 2.7, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-04T06:56:20.377Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "148ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:56:36.967Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T06:56:50.080Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:57:07.081Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T06:57:37.171Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T06:58:07.268Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T06:58:37.364Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T06:59:40.178Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T07:00:10.273Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T07:01:26.267Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T07:02:25.878Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T07:03:21.156Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T07:14:24.423Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T07:14:54.522Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T07:16:15.201Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T07:16:45.505Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T07:17:15.807Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T07:17:45.962Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T07:18:16.320Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T07:18:46.735Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T07:19:17.319Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T07:19:47.652Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T07:20:18.154Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T07:20:48.462Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T07:21:46.092Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T07:22:16.194Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T07:22:46.287Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T07:23:16.358Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T07:23:46.450Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T07:24:16.560Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T07:24:46.655Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T07:25:16.732Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T07:25:29.167Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T07:25:46.819Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T07:25:57.551Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 200, - "duration": "80ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T07:25:58.237Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T07:25:58.282Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T07:25:58.294Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260204", - "baseTime": "1600", - "nx": 57, - "ny": 119 -} -[2026-02-04T07:25:58.298Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T07:25:58.314Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-04", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T07:25:58.329Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T07:25:58.343Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/moved/list", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T07:25:58.393Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T07:25:59.228Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T07:25:59.312Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 7, - "humidity": 58, - "windSpeed": 1.1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-04T07:25:59.315Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 7, - "humidity": 58, - "windSpeed": 1.1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-04T07:25:59.318Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "1025ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T07:26:16.892Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T07:26:28.196Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T07:26:46.973Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T07:26:58.196Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T07:27:17.039Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T07:27:28.196Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T07:27:47.104Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T07:27:58.197Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T07:28:17.177Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T07:28:28.197Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T07:28:47.257Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T07:28:58.199Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T07:29:17.392Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T07:29:28.204Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T07:29:47.473Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T07:29:58.204Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T07:30:17.562Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T07:30:28.204Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T07:30:47.658Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T07:30:58.206Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T07:31:17.125Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260204", - "baseTime": "1600", - "nx": 57, - "ny": 119 -} -[2026-02-04T07:31:17.211Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T07:31:17.260Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 7, - "humidity": 58, - "windSpeed": 1.1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-04T07:31:17.262Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 7, - "humidity": 58, - "windSpeed": 1.1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-04T07:31:17.264Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "144ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T07:31:17.323Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues?category_type=nonconformity", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T07:31:17.331Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?status=active", - "statusCode": 200, - "duration": "17ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T07:31:17.745Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T07:31:20.428Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T07:31:20.435Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/patrol/item-types", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T07:31:20.444Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/patrol/today-status", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T07:31:20.561Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T07:31:21.366Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T07:31:47.828Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T07:31:50.362Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T07:32:17.903Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T07:32:20.362Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T07:32:47.988Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T07:32:50.360Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T07:32:58.187Z] [INFO] ℹ️ 출근 체크 목록 조회 요청 - Context: { - "date": "2026-02-04" -} -[2026-02-04T07:32:58.191Z] [INFO] ℹ️ 일일 근태 기록 조회 요청 - Context: { - "date": "2026-02-04", - "workerId": null -} -[2026-02-04T07:32:58.195Z] [INFO] ℹ️ 출근 체크 목록 조회 성공 - Context: { - "date": "2026-02-04", - "count": 10 -} -[2026-02-04T07:32:58.199Z] [INFO] ℹ️ 일일 근태 기록 조회 성공 - Context: { - "date": "2026-02-04", - "count": 0 -} -[2026-02-04T07:32:58.199Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/daily-records?date=2026-02-04", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T07:32:58.202Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/checkin-list?date=2026-02-04", - "statusCode": 200, - "duration": "20ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T07:32:58.206Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "25ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T07:32:58.226Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T07:33:18.081Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T07:33:28.037Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T07:33:48.156Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T07:33:58.036Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T07:34:18.246Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T07:34:28.037Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T07:34:48.323Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T07:34:58.033Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T07:35:18.408Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T07:35:28.034Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T07:35:33.014Z] [INFO] ℹ️ 출근 체크 목록 조회 요청 - Context: { - "date": "2026-02-04" -} -[2026-02-04T07:35:33.016Z] [INFO] ℹ️ 일일 근태 기록 조회 요청 - Context: { - "date": "2026-02-04", - "workerId": null -} -[2026-02-04T07:35:33.024Z] [INFO] ℹ️ 출근 체크 목록 조회 성공 - Context: { - "date": "2026-02-04", - "count": 10 -} -[2026-02-04T07:35:33.027Z] [INFO] ℹ️ 일일 근태 기록 조회 성공 - Context: { - "date": "2026-02-04", - "count": 0 -} -[2026-02-04T07:35:33.029Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/daily-records?date=2026-02-04", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T07:35:33.033Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "18ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T07:35:33.036Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/checkin-list?date=2026-02-04", - "statusCode": 200, - "duration": "24ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T07:35:33.135Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T07:35:48.496Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T07:35:52.068Z] [INFO] ℹ️ 출근 체크 목록 조회 요청 - Context: { - "date": "2026-02-04" -} -[2026-02-04T07:35:52.071Z] [INFO] ℹ️ 일일 근태 기록 조회 요청 - Context: { - "date": "2026-02-04", - "workerId": null -} -[2026-02-04T07:35:52.075Z] [INFO] ℹ️ 출근 체크 목록 조회 성공 - Context: { - "date": "2026-02-04", - "count": 10 -} -[2026-02-04T07:35:52.076Z] [INFO] ℹ️ 일일 근태 기록 조회 성공 - Context: { - "date": "2026-02-04", - "count": 0 -} -[2026-02-04T07:35:52.077Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/daily-records?date=2026-02-04", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T07:35:52.079Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "17ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T07:35:52.080Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/checkin-list?date=2026-02-04", - "statusCode": 200, - "duration": "15ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T07:36:00.977Z] [WARN] ⚠️ 인증 실패: Authorization 헤더 없음 - Context: { - "path": "/", - "method": "GET", - "ip": "::ffff:185.199.108.133" -} -[2026-02-04T07:36:00.980Z] [WARN] ⚠️ Authorization 헤더가 필요합니다 - Context: { - "code": "AUTHENTICATION_ERROR", - "url": "/api/workers", - "method": "GET", - "user": "anonymous" -} -[2026-02-04T07:36:00.982Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 401, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-02-04T07:36:02.942Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T07:36:05.006Z] [INFO] ℹ️ 일일 근태 기록 조회 요청 - Context: { - "date": "2026-02-04", - "workerId": null -} -[2026-02-04T07:36:05.010Z] [INFO] ℹ️ 출근 체크 목록 조회 요청 - Context: { - "date": "2026-02-04" -} -[2026-02-04T07:36:05.013Z] [INFO] ℹ️ 일일 근태 기록 조회 성공 - Context: { - "date": "2026-02-04", - "count": 0 -} -[2026-02-04T07:36:05.014Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/daily-records?date=2026-02-04", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T07:36:05.018Z] [INFO] ℹ️ 출근 체크 목록 조회 성공 - Context: { - "date": "2026-02-04", - "count": 10 -} -[2026-02-04T07:36:05.019Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "19ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T07:36:05.021Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/checkin-list?date=2026-02-04", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T07:36:05.150Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T07:36:05.346Z] [WARN] ⚠️ 인증 실패: Authorization 헤더 없음 - Context: { - "path": "/", - "method": "GET", - "ip": "::ffff:185.199.108.133" -} -[2026-02-04T07:36:05.347Z] [WARN] ⚠️ Authorization 헤더가 필요합니다 - Context: { - "code": "AUTHENTICATION_ERROR", - "url": "/api/workers", - "method": "GET", - "user": "anonymous" -} -[2026-02-04T07:36:05.349Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 401, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-02-04T07:36:13.841Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/patrol/item-types", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T07:36:13.845Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T07:36:13.849Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/patrol/today-status", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T07:36:13.967Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T07:36:14.773Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T07:36:18.572Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T07:36:23.841Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/patrol/sessions", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T07:36:23.857Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T07:36:23.873Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/patrol/checklist?category_id=1", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T07:36:43.763Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T07:36:48.653Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T07:37:08.850Z] [INFO] ℹ️ 일일 근태 기록 조회 요청 - Context: { - "date": "2026-02-04", - "workerId": null -} -[2026-02-04T07:37:08.856Z] [INFO] ℹ️ 출근 체크 목록 조회 요청 - Context: { - "date": "2026-02-04" -} -[2026-02-04T07:37:08.861Z] [INFO] ℹ️ 출근 체크 목록 조회 성공 - Context: { - "date": "2026-02-04", - "count": 10 -} -[2026-02-04T07:37:08.862Z] [INFO] ℹ️ 일일 근태 기록 조회 성공 - Context: { - "date": "2026-02-04", - "count": 0 -} -[2026-02-04T07:37:08.864Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/daily-records?date=2026-02-04", - "statusCode": 200, - "duration": "18ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T07:37:08.867Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "27ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T07:37:08.869Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/checkin-list?date=2026-02-04", - "statusCode": 200, - "duration": "17ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T07:37:08.882Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260204", - "baseTime": "1600", - "nx": 57, - "ny": 119 -} -[2026-02-04T07:37:08.973Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T07:37:08.994Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 6.9, - "humidity": 58, - "windSpeed": 1.4, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-04T07:37:08.995Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 6.9, - "humidity": 58, - "windSpeed": 1.4, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-04T07:37:08.996Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "115ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T07:37:18.748Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T07:37:38.787Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T07:37:48.829Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T07:38:08.781Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T07:38:11.609Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T07:38:11.619Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/patrol/item-types", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T07:38:11.622Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/patrol/today-status", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T07:38:11.745Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T07:38:12.552Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T07:38:14.417Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/patrol/sessions", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T07:38:14.427Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T07:38:14.437Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/patrol/checklist?category_id=1", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T07:38:18.919Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T07:38:25.936Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T07:38:25.944Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/patrol/today-status", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T07:38:25.947Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/patrol/item-types", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T07:38:26.075Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T07:38:26.874Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T07:38:29.048Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/patrol/sessions", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T07:38:29.065Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T07:38:29.075Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/patrol/checklist?category_id=1", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T07:38:45.230Z] [INFO] ℹ️ 출근 체크 목록 조회 요청 - Context: { - "date": "2026-02-04" -} -[2026-02-04T07:38:45.233Z] [INFO] ℹ️ 일일 근태 기록 조회 요청 - Context: { - "date": "2026-02-04", - "workerId": null -} -[2026-02-04T07:38:45.236Z] [INFO] ℹ️ 출근 체크 목록 조회 성공 - Context: { - "date": "2026-02-04", - "count": 10 -} -[2026-02-04T07:38:45.239Z] [INFO] ℹ️ 일일 근태 기록 조회 성공 - Context: { - "date": "2026-02-04", - "count": 0 -} -[2026-02-04T07:38:45.240Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/daily-records?date=2026-02-04", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T07:38:45.242Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/checkin-list?date=2026-02-04", - "statusCode": 200, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T07:38:45.245Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "23ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T07:38:45.354Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T07:38:49.014Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T07:39:15.168Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T07:39:19.102Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T07:39:45.160Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T07:39:49.190Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T07:40:15.171Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T07:40:19.270Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T07:40:45.158Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T07:40:49.346Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T07:41:15.158Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T07:41:19.420Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T07:41:45.161Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T07:41:49.484Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T07:42:15.161Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T07:42:19.573Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T07:42:45.393Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T07:42:49.652Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T07:43:16.393Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T07:43:19.723Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T07:43:47.392Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T07:43:49.792Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T07:44:18.393Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T07:44:19.868Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T07:44:49.392Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T07:44:49.946Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T07:45:20.010Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T07:45:20.393Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T07:45:50.085Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T07:45:51.394Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T07:46:20.153Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T07:46:22.392Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T07:46:50.236Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T07:46:53.391Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T07:47:20.308Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T07:47:24.392Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T07:47:50.374Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T07:47:55.393Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T07:48:20.443Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T07:48:26.395Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T07:48:50.526Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T07:48:57.392Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T07:49:20.600Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T07:49:28.393Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T07:49:50.676Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T07:49:59.391Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T07:50:20.737Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T07:50:30.390Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T07:50:50.807Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T07:51:01.392Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T07:51:20.874Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T07:51:32.392Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T07:51:50.949Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T07:52:03.393Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T07:52:21.023Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T07:52:34.393Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T07:52:51.095Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T07:53:05.394Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T07:53:21.169Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T07:53:36.397Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T07:53:51.239Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T07:54:07.396Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T07:54:21.316Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T07:54:38.400Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T07:54:51.389Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T07:55:09.398Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T07:55:21.469Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T07:55:40.397Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T07:55:51.539Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T07:56:11.396Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T07:56:21.617Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T07:56:42.397Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T07:56:51.683Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T07:57:13.397Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T07:57:21.759Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T07:57:44.397Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T07:57:51.836Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T07:58:15.398Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T07:58:21.909Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T07:58:46.402Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T07:58:51.970Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T07:59:17.398Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T07:59:22.043Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T07:59:48.399Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T07:59:52.121Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T08:00:19.398Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T08:00:22.208Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T08:00:50.396Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T08:00:52.277Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T08:01:21.400Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T08:01:22.353Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T08:01:52.396Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T08:01:52.434Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T08:02:22.511Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T08:02:23.397Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T08:02:52.568Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T08:02:54.397Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T08:03:22.629Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T08:03:25.397Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T08:03:52.705Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T08:03:56.399Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T08:04:22.782Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T08:04:27.399Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T08:04:52.860Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T08:04:58.399Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T08:05:22.927Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T08:05:29.396Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T08:05:52.997Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T08:06:00.401Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T08:06:23.081Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T08:06:31.398Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T08:06:53.160Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T08:07:02.398Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T08:07:23.238Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T08:07:33.398Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T08:07:53.317Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T08:08:04.397Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T08:08:23.392Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T08:08:35.399Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T08:08:53.471Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T08:09:06.430Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T08:09:23.548Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T08:09:53.613Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T08:10:00.954Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T08:10:23.689Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T08:10:53.767Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T08:10:58.138Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T08:11:23.856Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T08:11:38.297Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T08:11:53.920Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T08:12:18.296Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T08:12:24.004Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T08:12:54.065Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T08:12:58.139Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T08:13:24.136Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T08:13:38.298Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T08:13:54.204Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T08:14:18.295Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T08:14:24.275Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T08:14:54.347Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T08:14:58.138Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T08:15:24.432Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T08:15:38.300Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T08:15:54.500Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T08:16:18.238Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T08:16:24.573Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T08:16:54.632Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T08:17:24.707Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T08:17:54.785Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T08:18:24.861Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T08:18:54.928Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T08:19:25.001Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T08:19:55.069Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T08:20:25.141Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T08:20:55.209Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T08:21:25.280Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T08:21:55.337Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T08:22:25.402Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T08:22:55.475Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T08:23:25.545Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T08:23:55.609Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T08:24:25.696Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T08:24:55.768Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T08:25:25.832Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T08:25:55.906Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T08:26:25.989Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T08:26:56.058Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T08:27:26.127Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T08:27:56.200Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T08:28:26.270Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T08:28:56.357Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T08:29:26.432Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T08:29:56.496Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T08:30:26.568Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T08:30:56.642Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T08:31:26.722Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T08:31:56.787Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T08:32:26.870Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T08:32:56.950Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T08:33:27.021Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T08:33:57.094Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T08:34:27.166Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T08:34:57.242Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T08:35:27.310Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T08:35:57.378Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T08:36:27.455Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T08:36:57.529Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T08:37:27.600Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T08:37:57.671Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T08:38:27.753Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T08:38:57.824Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T08:39:27.899Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T08:39:57.977Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T08:40:28.047Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T08:40:58.109Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T08:41:28.179Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T08:41:58.266Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T08:42:28.337Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T08:42:58.407Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T08:43:28.471Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T08:43:58.539Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T08:44:28.607Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T08:44:58.680Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T08:45:28.754Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T08:45:58.832Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T08:46:28.906Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T08:46:58.981Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T08:47:29.042Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T08:47:59.119Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T08:48:29.184Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T08:48:59.249Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T08:49:29.328Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T08:49:59.405Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T08:50:29.481Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T08:50:59.555Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T08:51:29.627Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T08:51:59.698Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T08:52:29.778Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T08:52:59.855Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T08:53:29.929Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T08:54:00.001Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T08:54:30.069Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T08:55:00.137Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T08:55:30.195Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T08:56:00.277Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T08:56:30.344Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T08:57:00.426Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T08:57:30.499Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T08:58:00.568Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T08:58:30.638Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T08:59:00.704Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T08:59:30.783Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T09:00:00.866Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T09:00:30.935Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T09:01:01.002Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T09:01:31.072Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T09:02:01.156Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T09:02:31.228Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T09:03:01.300Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T09:03:31.370Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T09:04:01.438Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T09:04:31.503Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T09:05:01.578Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T09:05:31.646Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T09:06:01.719Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T09:06:31.795Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T09:07:01.874Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T09:07:31.957Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T09:08:02.049Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T09:08:32.127Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T09:09:02.209Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T09:09:32.288Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T09:10:02.352Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T09:10:32.428Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T09:11:02.504Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T09:11:32.584Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T09:12:02.657Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T09:12:32.725Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T09:13:02.800Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T09:13:32.871Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T09:14:02.944Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T09:14:33.017Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T09:15:03.088Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T09:15:33.159Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T09:16:03.231Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T09:16:33.296Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T09:17:03.362Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T09:17:33.433Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T09:18:03.507Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T09:18:33.577Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T09:19:03.649Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T09:19:33.727Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T09:20:03.824Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T09:20:33.893Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T09:21:03.955Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T09:21:34.034Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T09:22:04.101Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T09:22:34.172Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T09:23:04.254Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T09:23:34.333Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T09:24:04.409Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T09:24:34.484Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T09:25:04.560Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T09:25:34.635Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T09:26:04.708Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T09:26:34.787Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T09:27:04.865Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T09:27:34.926Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T09:28:04.990Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T09:28:35.062Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T09:29:05.141Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T09:29:35.210Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T09:30:05.287Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T09:30:35.360Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T09:31:05.433Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T09:31:35.505Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T09:32:05.578Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T09:32:35.657Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T09:33:05.728Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T09:33:35.806Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T09:34:05.875Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T09:34:35.956Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T09:35:06.034Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T09:35:36.102Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T09:36:06.179Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T09:36:36.243Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T09:37:06.306Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T09:37:36.379Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T09:38:06.443Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T09:38:36.518Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T09:39:06.599Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T09:39:36.679Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T09:40:06.754Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T09:40:36.831Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T09:41:06.905Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T09:41:36.972Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T09:42:07.058Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T09:42:37.122Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T09:43:07.192Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T09:43:37.266Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T09:44:07.339Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T09:44:37.403Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T09:45:07.472Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T09:45:37.537Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T09:46:07.613Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T09:46:37.695Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T09:47:07.769Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T09:47:37.858Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T09:48:07.939Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T09:48:38.014Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T09:49:08.092Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T09:49:38.156Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T09:50:08.243Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T09:50:38.319Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T09:51:08.404Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T09:51:38.481Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T09:52:08.550Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T09:52:38.620Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T09:53:08.698Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T09:53:38.775Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T09:54:08.845Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T09:54:38.920Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T09:55:08.998Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T09:55:39.076Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T09:56:09.149Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T09:56:39.219Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T09:57:09.287Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T09:57:39.361Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T09:58:09.438Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T09:58:39.513Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T09:59:09.581Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T09:59:39.645Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T10:00:09.722Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T10:00:39.798Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T10:01:09.867Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T10:01:39.947Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T10:02:10.011Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T10:02:40.085Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T10:03:10.157Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T10:03:40.220Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T10:04:10.291Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T10:04:40.362Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T10:05:10.439Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T10:05:40.511Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T10:06:10.592Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T10:06:40.671Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T10:07:10.746Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T10:07:40.816Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T10:08:10.892Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T10:08:40.969Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T10:09:11.052Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T10:09:41.137Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T10:10:11.211Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T10:10:41.287Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T10:11:11.354Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T10:11:41.421Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T10:12:11.488Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T10:12:41.563Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T10:13:11.642Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T10:13:41.714Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T10:14:11.794Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T10:14:41.872Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T10:15:11.948Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T10:15:42.024Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T10:16:12.091Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T10:16:42.166Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T10:17:12.236Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T10:17:42.300Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T10:18:12.372Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T10:18:42.459Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T10:19:12.534Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T10:19:42.604Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T10:20:12.675Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T10:20:42.740Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T10:21:12.816Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T10:21:42.879Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T10:22:12.953Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T10:22:43.021Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T10:23:13.100Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T10:23:43.169Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T10:24:13.239Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T10:24:43.314Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T10:25:13.384Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T10:25:43.461Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T10:26:13.534Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T10:26:43.593Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T10:27:13.665Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T10:27:43.725Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T10:28:13.806Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T10:28:43.883Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T10:29:13.961Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T10:29:44.040Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T10:30:14.109Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T10:30:44.177Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T10:31:14.245Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T10:31:44.315Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T10:32:14.383Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T10:32:44.461Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T10:33:14.528Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T10:33:44.601Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T10:34:14.682Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T10:34:44.755Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T10:35:14.824Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T10:35:44.896Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T10:36:14.963Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T10:36:45.034Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T10:37:15.103Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T10:37:45.189Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T10:38:15.267Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T10:38:45.328Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T10:39:15.390Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T10:39:45.449Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T10:40:15.524Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T10:40:45.594Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T10:41:15.656Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T10:41:45.728Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T10:42:15.793Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T10:42:45.875Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T10:43:15.949Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T10:43:46.017Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T10:44:16.085Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T10:44:46.162Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T10:45:16.247Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T10:45:46.321Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T10:46:16.391Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T10:46:46.459Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T10:47:16.533Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T10:47:46.613Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T10:48:16.677Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T10:48:46.749Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T10:49:16.829Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T10:49:46.897Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T10:50:16.963Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T10:50:47.034Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T10:51:17.103Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T10:51:47.174Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T10:52:17.247Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T10:52:47.323Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T10:53:17.399Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T10:53:47.467Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T10:54:17.526Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T10:54:47.580Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T10:55:17.653Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T10:55:47.729Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T10:56:17.800Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T10:56:47.873Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T10:57:17.931Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T10:57:47.996Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T10:58:18.070Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T10:58:48.151Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T10:59:18.221Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T10:59:48.293Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T11:00:18.358Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T11:00:48.429Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T11:01:18.496Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T11:01:48.573Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T11:02:18.640Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T11:02:48.725Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T11:03:18.800Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T11:03:48.879Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T11:04:18.959Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T11:04:49.032Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T11:05:19.115Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T11:05:49.182Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T11:06:19.259Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T11:06:49.330Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T11:07:19.398Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T11:07:49.473Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T11:08:19.555Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T11:08:49.631Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T11:09:19.702Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T11:09:49.775Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T11:10:19.853Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T11:10:49.926Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T11:11:19.993Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T11:11:50.064Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T11:12:20.131Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T11:12:50.194Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T11:13:20.270Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T11:13:50.346Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T11:14:20.410Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T11:14:50.484Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T11:15:20.553Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T11:15:50.621Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T11:16:20.683Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T11:16:50.769Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T11:17:20.849Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T11:17:50.926Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T11:18:21.002Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T11:18:51.079Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T11:19:21.166Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T11:19:51.244Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T11:20:21.325Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T11:20:51.397Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T11:21:21.470Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T11:21:51.538Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T11:22:21.596Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T11:22:51.667Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T11:23:21.739Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T11:23:51.806Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T11:24:21.876Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T11:24:51.949Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T11:25:22.023Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T11:25:52.082Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T11:26:22.143Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T11:26:52.222Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T11:27:22.309Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T11:27:52.386Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T11:28:22.455Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T11:28:52.540Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T11:29:22.619Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T11:29:52.691Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T11:30:22.762Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T11:30:52.822Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T11:31:22.896Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T11:31:52.972Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T11:32:23.035Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T11:32:53.119Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T11:33:23.189Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T11:33:53.259Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T11:34:23.335Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T11:34:53.411Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T11:35:23.489Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T11:35:53.559Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T11:36:23.628Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T11:36:53.697Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T11:37:23.769Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T11:37:53.842Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T11:38:23.909Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T11:38:53.986Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T11:39:24.060Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T11:39:54.137Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T11:40:24.210Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T11:40:54.276Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T11:41:14.570Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "17ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:41:24.401Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T11:41:35.618Z] [INFO] ℹ️ 출근 체크 목록 조회 요청 - Context: { - "date": "2026-02-04" -} -[2026-02-04T11:41:35.623Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260204", - "baseTime": "2000", - "nx": 57, - "ny": 119 -} -[2026-02-04T11:41:35.640Z] [INFO] ℹ️ 일일 근태 기록 조회 요청 - Context: { - "date": "2026-02-04", - "workerId": null -} -[2026-02-04T11:41:35.642Z] [INFO] ℹ️ 출근 체크 목록 조회 성공 - Context: { - "date": "2026-02-04", - "count": 10 -} -[2026-02-04T11:41:35.644Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/checkin-list?date=2026-02-04", - "statusCode": 200, - "duration": "27ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:41:35.645Z] [INFO] ℹ️ 일일 근태 기록 조회 성공 - Context: { - "date": "2026-02-04", - "count": 0 -} -[2026-02-04T11:41:35.645Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/daily-records?date=2026-02-04", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:41:35.650Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "43ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:41:35.677Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:41:35.753Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 1.1, - "humidity": 83, - "windSpeed": 0.1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-04T11:41:35.754Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 1.1, - "humidity": 83, - "windSpeed": 0.1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-04T11:41:35.755Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "134ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:41:54.476Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T11:42:05.485Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:42:24.636Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T11:42:35.495Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:42:54.733Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T11:43:05.489Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:43:24.870Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T11:43:35.500Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:43:55.007Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T11:44:05.501Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:44:25.130Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T11:44:34.564Z] [INFO] ℹ️ 출근 체크 목록 조회 요청 - Context: { - "date": "2026-02-04" -} -[2026-02-04T11:44:34.571Z] [INFO] ℹ️ 일일 근태 기록 조회 요청 - Context: { - "date": "2026-02-04", - "workerId": null -} -[2026-02-04T11:44:34.573Z] [INFO] ℹ️ 출근 체크 목록 조회 성공 - Context: { - "date": "2026-02-04", - "count": 10 -} -[2026-02-04T11:44:34.576Z] [INFO] ℹ️ 일일 근태 기록 조회 성공 - Context: { - "date": "2026-02-04", - "count": 0 -} -[2026-02-04T11:44:34.577Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/daily-records?date=2026-02-04", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:44:34.579Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/checkin-list?date=2026-02-04", - "statusCode": 200, - "duration": "17ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:44:34.582Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=100", - "statusCode": 200, - "duration": "23ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:44:34.628Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:44:37.025Z] [INFO] ℹ️ 출근 체크 일괄 저장 요청 - Context: { - "date": "2026-02-04", - "count": 10 -} -[2026-02-04T11:44:37.038Z] [INFO] ℹ️ 출근 체크 일괄 저장 성공 - Context: { - "date": "2026-02-04", - "saved": 10 -} -[2026-02-04T11:44:37.039Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/checkins", - "statusCode": 200, - "duration": "15ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:44:40.901Z] [INFO] ℹ️ 일일 근태 기록 조회 요청 - Context: { - "date": "2026-02-04", - "workerId": null -} -[2026-02-04T11:44:40.906Z] [INFO] ℹ️ 일일 근태 기록 조회 성공 - Context: { - "date": "2026-02-04", - "count": 10 -} -[2026-02-04T11:44:40.909Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:44:40.910Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/daily-records?date=2026-02-04", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:44:41.050Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:44:43.596Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-02-04", - "worker_id": 11 -} -[2026-02-04T11:44:43.600Z] [ERROR] ❌ 근태 기록 저장 실패 - Context: { - "record_date": "2026-02-04", - "worker_id": 11, - "error": "Bind parameters must not contain undefined. To pass SQL NULL specify JS null" -} -[2026-02-04T11:44:43.603Z] [ERROR] ❌ 근태 기록 저장 중 데이터베이스 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 근태 기록 저장 중 데이터베이스 오류가 발생했습니다\n at Object.upsertAttendanceRecordService (/usr/src/app/services/attendanceService.js:111:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:50:18", - "url": "/api/attendance/records", - "method": "POST", - "user": "hyungi" -} -[2026-02-04T11:44:43.604Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 500, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:44:43.616Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-02-04", - "worker_id": 10 -} -[2026-02-04T11:44:43.617Z] [ERROR] ❌ 근태 기록 저장 실패 - Context: { - "record_date": "2026-02-04", - "worker_id": 10, - "error": "Bind parameters must not contain undefined. To pass SQL NULL specify JS null" -} -[2026-02-04T11:44:43.617Z] [ERROR] ❌ 근태 기록 저장 중 데이터베이스 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 근태 기록 저장 중 데이터베이스 오류가 발생했습니다\n at Object.upsertAttendanceRecordService (/usr/src/app/services/attendanceService.js:111:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:50:18", - "url": "/api/attendance/records", - "method": "POST", - "user": "hyungi" -} -[2026-02-04T11:44:43.617Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 500, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:44:43.625Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-02-04", - "worker_id": 9 -} -[2026-02-04T11:44:43.626Z] [ERROR] ❌ 근태 기록 저장 실패 - Context: { - "record_date": "2026-02-04", - "worker_id": 9, - "error": "Bind parameters must not contain undefined. To pass SQL NULL specify JS null" -} -[2026-02-04T11:44:43.627Z] [ERROR] ❌ 근태 기록 저장 중 데이터베이스 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 근태 기록 저장 중 데이터베이스 오류가 발생했습니다\n at Object.upsertAttendanceRecordService (/usr/src/app/services/attendanceService.js:111:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:50:18", - "url": "/api/attendance/records", - "method": "POST", - "user": "hyungi" -} -[2026-02-04T11:44:43.627Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 500, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:44:43.633Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-02-04", - "worker_id": 8 -} -[2026-02-04T11:44:43.634Z] [ERROR] ❌ 근태 기록 저장 실패 - Context: { - "record_date": "2026-02-04", - "worker_id": 8, - "error": "Bind parameters must not contain undefined. To pass SQL NULL specify JS null" -} -[2026-02-04T11:44:43.634Z] [ERROR] ❌ 근태 기록 저장 중 데이터베이스 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 근태 기록 저장 중 데이터베이스 오류가 발생했습니다\n at Object.upsertAttendanceRecordService (/usr/src/app/services/attendanceService.js:111:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:50:18", - "url": "/api/attendance/records", - "method": "POST", - "user": "hyungi" -} -[2026-02-04T11:44:43.635Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 500, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:44:43.641Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-02-04", - "worker_id": 6 -} -[2026-02-04T11:44:43.642Z] [ERROR] ❌ 근태 기록 저장 실패 - Context: { - "record_date": "2026-02-04", - "worker_id": 6, - "error": "Bind parameters must not contain undefined. To pass SQL NULL specify JS null" -} -[2026-02-04T11:44:43.643Z] [ERROR] ❌ 근태 기록 저장 중 데이터베이스 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 근태 기록 저장 중 데이터베이스 오류가 발생했습니다\n at Object.upsertAttendanceRecordService (/usr/src/app/services/attendanceService.js:111:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:50:18", - "url": "/api/attendance/records", - "method": "POST", - "user": "hyungi" -} -[2026-02-04T11:44:43.643Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 500, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:44:43.649Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-02-04", - "worker_id": 5 -} -[2026-02-04T11:44:43.650Z] [ERROR] ❌ 근태 기록 저장 실패 - Context: { - "record_date": "2026-02-04", - "worker_id": 5, - "error": "Bind parameters must not contain undefined. To pass SQL NULL specify JS null" -} -[2026-02-04T11:44:43.651Z] [ERROR] ❌ 근태 기록 저장 중 데이터베이스 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 근태 기록 저장 중 데이터베이스 오류가 발생했습니다\n at Object.upsertAttendanceRecordService (/usr/src/app/services/attendanceService.js:111:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:50:18", - "url": "/api/attendance/records", - "method": "POST", - "user": "hyungi" -} -[2026-02-04T11:44:43.651Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 500, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:44:43.657Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-02-04", - "worker_id": 4 -} -[2026-02-04T11:44:43.658Z] [ERROR] ❌ 근태 기록 저장 실패 - Context: { - "record_date": "2026-02-04", - "worker_id": 4, - "error": "Bind parameters must not contain undefined. To pass SQL NULL specify JS null" -} -[2026-02-04T11:44:43.659Z] [ERROR] ❌ 근태 기록 저장 중 데이터베이스 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 근태 기록 저장 중 데이터베이스 오류가 발생했습니다\n at Object.upsertAttendanceRecordService (/usr/src/app/services/attendanceService.js:111:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:50:18", - "url": "/api/attendance/records", - "method": "POST", - "user": "hyungi" -} -[2026-02-04T11:44:43.660Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 500, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:44:43.665Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-02-04", - "worker_id": 3 -} -[2026-02-04T11:44:43.666Z] [ERROR] ❌ 근태 기록 저장 실패 - Context: { - "record_date": "2026-02-04", - "worker_id": 3, - "error": "Bind parameters must not contain undefined. To pass SQL NULL specify JS null" -} -[2026-02-04T11:44:43.667Z] [ERROR] ❌ 근태 기록 저장 중 데이터베이스 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 근태 기록 저장 중 데이터베이스 오류가 발생했습니다\n at Object.upsertAttendanceRecordService (/usr/src/app/services/attendanceService.js:111:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:50:18", - "url": "/api/attendance/records", - "method": "POST", - "user": "hyungi" -} -[2026-02-04T11:44:43.668Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 500, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:44:43.673Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-02-04", - "worker_id": 2 -} -[2026-02-04T11:44:43.674Z] [ERROR] ❌ 근태 기록 저장 실패 - Context: { - "record_date": "2026-02-04", - "worker_id": 2, - "error": "Bind parameters must not contain undefined. To pass SQL NULL specify JS null" -} -[2026-02-04T11:44:43.675Z] [ERROR] ❌ 근태 기록 저장 중 데이터베이스 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 근태 기록 저장 중 데이터베이스 오류가 발생했습니다\n at Object.upsertAttendanceRecordService (/usr/src/app/services/attendanceService.js:111:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:50:18", - "url": "/api/attendance/records", - "method": "POST", - "user": "hyungi" -} -[2026-02-04T11:44:43.676Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 500, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:44:55.250Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T11:45:10.880Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:45:25.361Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T11:45:40.867Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:45:55.470Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T11:46:10.863Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:46:25.577Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T11:46:40.855Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:46:55.674Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T11:47:10.866Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:47:13.361Z] [INFO] ℹ️ 일일 근태 기록 조회 요청 - Context: { - "date": "2026-02-04", - "workerId": null -} -[2026-02-04T11:47:13.367Z] [INFO] ℹ️ 일일 근태 기록 조회 성공 - Context: { - "date": "2026-02-04", - "count": 10 -} -[2026-02-04T11:47:13.370Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/daily-records?date=2026-02-04", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:47:13.374Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers", - "statusCode": 200, - "duration": "21ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:47:13.411Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260204", - "baseTime": "2000", - "nx": 57, - "ny": 119 -} -[2026-02-04T11:47:13.493Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:47:13.525Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 0.9, - "humidity": 84, - "windSpeed": 0.1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-04T11:47:13.526Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 0.9, - "humidity": 84, - "windSpeed": 0.1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-04T11:47:13.527Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "117ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:47:15.877Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-02-04", - "worker_id": 11 -} -[2026-02-04T11:47:15.881Z] [ERROR] ❌ 근태 기록 저장 실패 - Context: { - "record_date": "2026-02-04", - "worker_id": 11, - "error": "Bind parameters must not contain undefined. To pass SQL NULL specify JS null" -} -[2026-02-04T11:47:15.885Z] [ERROR] ❌ 근태 기록 저장 중 데이터베이스 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 근태 기록 저장 중 데이터베이스 오류가 발생했습니다\n at Object.upsertAttendanceRecordService (/usr/src/app/services/attendanceService.js:111:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:50:18", - "url": "/api/attendance/records", - "method": "POST", - "user": "hyungi" -} -[2026-02-04T11:47:15.887Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 500, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:47:15.896Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-02-04", - "worker_id": 10 -} -[2026-02-04T11:47:15.898Z] [ERROR] ❌ 근태 기록 저장 실패 - Context: { - "record_date": "2026-02-04", - "worker_id": 10, - "error": "Bind parameters must not contain undefined. To pass SQL NULL specify JS null" -} -[2026-02-04T11:47:15.899Z] [ERROR] ❌ 근태 기록 저장 중 데이터베이스 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 근태 기록 저장 중 데이터베이스 오류가 발생했습니다\n at Object.upsertAttendanceRecordService (/usr/src/app/services/attendanceService.js:111:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:50:18", - "url": "/api/attendance/records", - "method": "POST", - "user": "hyungi" -} -[2026-02-04T11:47:15.900Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 500, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:47:15.906Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-02-04", - "worker_id": 9 -} -[2026-02-04T11:47:15.907Z] [ERROR] ❌ 근태 기록 저장 실패 - Context: { - "record_date": "2026-02-04", - "worker_id": 9, - "error": "Bind parameters must not contain undefined. To pass SQL NULL specify JS null" -} -[2026-02-04T11:47:15.908Z] [ERROR] ❌ 근태 기록 저장 중 데이터베이스 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 근태 기록 저장 중 데이터베이스 오류가 발생했습니다\n at Object.upsertAttendanceRecordService (/usr/src/app/services/attendanceService.js:111:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:50:18", - "url": "/api/attendance/records", - "method": "POST", - "user": "hyungi" -} -[2026-02-04T11:47:15.909Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 500, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:47:15.916Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-02-04", - "worker_id": 8 -} -[2026-02-04T11:47:15.918Z] [ERROR] ❌ 근태 기록 저장 실패 - Context: { - "record_date": "2026-02-04", - "worker_id": 8, - "error": "Bind parameters must not contain undefined. To pass SQL NULL specify JS null" -} -[2026-02-04T11:47:15.918Z] [ERROR] ❌ 근태 기록 저장 중 데이터베이스 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 근태 기록 저장 중 데이터베이스 오류가 발생했습니다\n at Object.upsertAttendanceRecordService (/usr/src/app/services/attendanceService.js:111:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:50:18", - "url": "/api/attendance/records", - "method": "POST", - "user": "hyungi" -} -[2026-02-04T11:47:15.919Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 500, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:47:15.925Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-02-04", - "worker_id": 6 -} -[2026-02-04T11:47:15.926Z] [ERROR] ❌ 근태 기록 저장 실패 - Context: { - "record_date": "2026-02-04", - "worker_id": 6, - "error": "Bind parameters must not contain undefined. To pass SQL NULL specify JS null" -} -[2026-02-04T11:47:15.927Z] [ERROR] ❌ 근태 기록 저장 중 데이터베이스 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 근태 기록 저장 중 데이터베이스 오류가 발생했습니다\n at Object.upsertAttendanceRecordService (/usr/src/app/services/attendanceService.js:111:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:50:18", - "url": "/api/attendance/records", - "method": "POST", - "user": "hyungi" -} -[2026-02-04T11:47:15.928Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 500, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:47:15.934Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-02-04", - "worker_id": 5 -} -[2026-02-04T11:47:15.935Z] [ERROR] ❌ 근태 기록 저장 실패 - Context: { - "record_date": "2026-02-04", - "worker_id": 5, - "error": "Bind parameters must not contain undefined. To pass SQL NULL specify JS null" -} -[2026-02-04T11:47:15.936Z] [ERROR] ❌ 근태 기록 저장 중 데이터베이스 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 근태 기록 저장 중 데이터베이스 오류가 발생했습니다\n at Object.upsertAttendanceRecordService (/usr/src/app/services/attendanceService.js:111:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:50:18", - "url": "/api/attendance/records", - "method": "POST", - "user": "hyungi" -} -[2026-02-04T11:47:15.936Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 500, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:47:15.942Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-02-04", - "worker_id": 4 -} -[2026-02-04T11:47:15.943Z] [ERROR] ❌ 근태 기록 저장 실패 - Context: { - "record_date": "2026-02-04", - "worker_id": 4, - "error": "Bind parameters must not contain undefined. To pass SQL NULL specify JS null" -} -[2026-02-04T11:47:15.944Z] [ERROR] ❌ 근태 기록 저장 중 데이터베이스 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 근태 기록 저장 중 데이터베이스 오류가 발생했습니다\n at Object.upsertAttendanceRecordService (/usr/src/app/services/attendanceService.js:111:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:50:18", - "url": "/api/attendance/records", - "method": "POST", - "user": "hyungi" -} -[2026-02-04T11:47:15.944Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 500, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:47:15.951Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-02-04", - "worker_id": 3 -} -[2026-02-04T11:47:15.952Z] [ERROR] ❌ 근태 기록 저장 실패 - Context: { - "record_date": "2026-02-04", - "worker_id": 3, - "error": "Bind parameters must not contain undefined. To pass SQL NULL specify JS null" -} -[2026-02-04T11:47:15.952Z] [ERROR] ❌ 근태 기록 저장 중 데이터베이스 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 근태 기록 저장 중 데이터베이스 오류가 발생했습니다\n at Object.upsertAttendanceRecordService (/usr/src/app/services/attendanceService.js:111:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:50:18", - "url": "/api/attendance/records", - "method": "POST", - "user": "hyungi" -} -[2026-02-04T11:47:15.953Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 500, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:47:15.958Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-02-04", - "worker_id": 2 -} -[2026-02-04T11:47:15.959Z] [ERROR] ❌ 근태 기록 저장 실패 - Context: { - "record_date": "2026-02-04", - "worker_id": 2, - "error": "Bind parameters must not contain undefined. To pass SQL NULL specify JS null" -} -[2026-02-04T11:47:15.960Z] [ERROR] ❌ 근태 기록 저장 중 데이터베이스 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 근태 기록 저장 중 데이터베이스 오류가 발생했습니다\n at Object.upsertAttendanceRecordService (/usr/src/app/services/attendanceService.js:111:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:50:18", - "url": "/api/attendance/records", - "method": "POST", - "user": "hyungi" -} -[2026-02-04T11:47:15.960Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 500, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:47:25.804Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T11:47:43.308Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:47:55.891Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T11:48:13.312Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:48:25.989Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T11:48:43.317Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:48:56.087Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T11:49:01.478Z] [INFO] ℹ️ 일일 근태 기록 조회 요청 - Context: { - "date": "2026-02-04", - "workerId": null -} -[2026-02-04T11:49:01.489Z] [INFO] ℹ️ 일일 근태 기록 조회 성공 - Context: { - "date": "2026-02-04", - "count": 10 -} -[2026-02-04T11:49:01.491Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=100", - "statusCode": 200, - "duration": "21ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:49:01.492Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/daily-records?date=2026-02-04", - "statusCode": 200, - "duration": "17ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:49:01.551Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:49:03.658Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-02-04", - "worker_id": 11 -} -[2026-02-04T11:49:03.662Z] [ERROR] ❌ 근태 기록 저장 실패 - Context: { - "record_date": "2026-02-04", - "worker_id": 11, - "error": "Bind parameters must not contain undefined. To pass SQL NULL specify JS null" -} -[2026-02-04T11:49:03.665Z] [ERROR] ❌ 근태 기록 저장 중 데이터베이스 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 근태 기록 저장 중 데이터베이스 오류가 발생했습니다\n at Object.upsertAttendanceRecordService (/usr/src/app/services/attendanceService.js:111:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:50:18", - "url": "/api/attendance/records", - "method": "POST", - "user": "hyungi" -} -[2026-02-04T11:49:03.668Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 500, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:49:03.676Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-02-04", - "worker_id": 10 -} -[2026-02-04T11:49:03.678Z] [ERROR] ❌ 근태 기록 저장 실패 - Context: { - "record_date": "2026-02-04", - "worker_id": 10, - "error": "Bind parameters must not contain undefined. To pass SQL NULL specify JS null" -} -[2026-02-04T11:49:03.679Z] [ERROR] ❌ 근태 기록 저장 중 데이터베이스 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 근태 기록 저장 중 데이터베이스 오류가 발생했습니다\n at Object.upsertAttendanceRecordService (/usr/src/app/services/attendanceService.js:111:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:50:18", - "url": "/api/attendance/records", - "method": "POST", - "user": "hyungi" -} -[2026-02-04T11:49:03.680Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 500, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:49:03.689Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-02-04", - "worker_id": 9 -} -[2026-02-04T11:49:03.690Z] [ERROR] ❌ 근태 기록 저장 실패 - Context: { - "record_date": "2026-02-04", - "worker_id": 9, - "error": "Bind parameters must not contain undefined. To pass SQL NULL specify JS null" -} -[2026-02-04T11:49:03.691Z] [ERROR] ❌ 근태 기록 저장 중 데이터베이스 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 근태 기록 저장 중 데이터베이스 오류가 발생했습니다\n at Object.upsertAttendanceRecordService (/usr/src/app/services/attendanceService.js:111:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:50:18", - "url": "/api/attendance/records", - "method": "POST", - "user": "hyungi" -} -[2026-02-04T11:49:03.692Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 500, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:49:03.699Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-02-04", - "worker_id": 8 -} -[2026-02-04T11:49:03.700Z] [ERROR] ❌ 근태 기록 저장 실패 - Context: { - "record_date": "2026-02-04", - "worker_id": 8, - "error": "Bind parameters must not contain undefined. To pass SQL NULL specify JS null" -} -[2026-02-04T11:49:03.701Z] [ERROR] ❌ 근태 기록 저장 중 데이터베이스 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 근태 기록 저장 중 데이터베이스 오류가 발생했습니다\n at Object.upsertAttendanceRecordService (/usr/src/app/services/attendanceService.js:111:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:50:18", - "url": "/api/attendance/records", - "method": "POST", - "user": "hyungi" -} -[2026-02-04T11:49:03.702Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 500, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:49:03.708Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-02-04", - "worker_id": 6 -} -[2026-02-04T11:49:03.709Z] [ERROR] ❌ 근태 기록 저장 실패 - Context: { - "record_date": "2026-02-04", - "worker_id": 6, - "error": "Bind parameters must not contain undefined. To pass SQL NULL specify JS null" -} -[2026-02-04T11:49:03.710Z] [ERROR] ❌ 근태 기록 저장 중 데이터베이스 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 근태 기록 저장 중 데이터베이스 오류가 발생했습니다\n at Object.upsertAttendanceRecordService (/usr/src/app/services/attendanceService.js:111:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:50:18", - "url": "/api/attendance/records", - "method": "POST", - "user": "hyungi" -} -[2026-02-04T11:49:03.710Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 500, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:49:03.717Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-02-04", - "worker_id": 5 -} -[2026-02-04T11:49:03.719Z] [ERROR] ❌ 근태 기록 저장 실패 - Context: { - "record_date": "2026-02-04", - "worker_id": 5, - "error": "Bind parameters must not contain undefined. To pass SQL NULL specify JS null" -} -[2026-02-04T11:49:03.720Z] [ERROR] ❌ 근태 기록 저장 중 데이터베이스 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 근태 기록 저장 중 데이터베이스 오류가 발생했습니다\n at Object.upsertAttendanceRecordService (/usr/src/app/services/attendanceService.js:111:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:50:18", - "url": "/api/attendance/records", - "method": "POST", - "user": "hyungi" -} -[2026-02-04T11:49:03.720Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 500, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:49:03.727Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-02-04", - "worker_id": 4 -} -[2026-02-04T11:49:03.728Z] [ERROR] ❌ 근태 기록 저장 실패 - Context: { - "record_date": "2026-02-04", - "worker_id": 4, - "error": "Bind parameters must not contain undefined. To pass SQL NULL specify JS null" -} -[2026-02-04T11:49:03.728Z] [ERROR] ❌ 근태 기록 저장 중 데이터베이스 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 근태 기록 저장 중 데이터베이스 오류가 발생했습니다\n at Object.upsertAttendanceRecordService (/usr/src/app/services/attendanceService.js:111:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:50:18", - "url": "/api/attendance/records", - "method": "POST", - "user": "hyungi" -} -[2026-02-04T11:49:03.729Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 500, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:49:03.736Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-02-04", - "worker_id": 3 -} -[2026-02-04T11:49:03.737Z] [ERROR] ❌ 근태 기록 저장 실패 - Context: { - "record_date": "2026-02-04", - "worker_id": 3, - "error": "Bind parameters must not contain undefined. To pass SQL NULL specify JS null" -} -[2026-02-04T11:49:03.738Z] [ERROR] ❌ 근태 기록 저장 중 데이터베이스 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 근태 기록 저장 중 데이터베이스 오류가 발생했습니다\n at Object.upsertAttendanceRecordService (/usr/src/app/services/attendanceService.js:111:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:50:18", - "url": "/api/attendance/records", - "method": "POST", - "user": "hyungi" -} -[2026-02-04T11:49:03.738Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 500, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:49:03.743Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-02-04", - "worker_id": 2 -} -[2026-02-04T11:49:03.744Z] [ERROR] ❌ 근태 기록 저장 실패 - Context: { - "record_date": "2026-02-04", - "worker_id": 2, - "error": "Bind parameters must not contain undefined. To pass SQL NULL specify JS null" -} -[2026-02-04T11:49:03.745Z] [ERROR] ❌ 근태 기록 저장 중 데이터베이스 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 근태 기록 저장 중 데이터베이스 오류가 발생했습니다\n at Object.upsertAttendanceRecordService (/usr/src/app/services/attendanceService.js:111:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:50:18", - "url": "/api/attendance/records", - "method": "POST", - "user": "hyungi" -} -[2026-02-04T11:49:03.746Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 500, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:49:03.751Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-02-04", - "worker_id": 1 -} -[2026-02-04T11:49:03.753Z] [ERROR] ❌ 근태 기록 저장 실패 - Context: { - "record_date": "2026-02-04", - "worker_id": 1, - "error": "Bind parameters must not contain undefined. To pass SQL NULL specify JS null" -} -[2026-02-04T11:49:03.754Z] [ERROR] ❌ 근태 기록 저장 중 데이터베이스 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 근태 기록 저장 중 데이터베이스 오류가 발생했습니다\n at Object.upsertAttendanceRecordService (/usr/src/app/services/attendanceService.js:111:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:50:18", - "url": "/api/attendance/records", - "method": "POST", - "user": "hyungi" -} -[2026-02-04T11:49:03.755Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 500, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:49:26.192Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T11:49:31.362Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:49:56.295Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T11:50:01.354Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:50:26.393Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T11:50:31.366Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:50:44.753Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2026-02-04T11:50:44.801Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-02-04T11:50:46.219Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-02-04T11:50:46.295Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-02-04T11:50:46.397Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2026-02-04T11:50:46.423Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-02-04T11:50:51.083Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T11:51:01.388Z] [INFO] ℹ️ MariaDB 연결 성공 - Context: { - "connection": "db:3306", - "database": "hyungi", - "connectionLimit": 10 -} -[2026-02-04T11:51:01.395Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "37ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:51:21.165Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T11:51:31.363Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:51:44.394Z] [INFO] ℹ️ 일일 근태 기록 조회 요청 - Context: { - "date": "2026-02-04", - "workerId": null -} -[2026-02-04T11:51:44.436Z] [INFO] ℹ️ 일일 근태 기록 조회 성공 - Context: { - "date": "2026-02-04", - "count": 10 -} -[2026-02-04T11:51:44.451Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/daily-records?date=2026-02-04", - "statusCode": 200, - "duration": "58ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:51:44.453Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=100", - "statusCode": 200, - "duration": "82ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:51:44.497Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:51:48.115Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-02-04", - "worker_id": 11 -} -[2026-02-04T11:51:48.119Z] [ERROR] ❌ 근태 기록 저장 실패 - Context: { - "record_date": "2026-02-04", - "worker_id": 11, - "error": "Unknown column 'work_attendance_type_id' in 'field list'" -} -[2026-02-04T11:51:48.121Z] [ERROR] ❌ 근태 기록 저장 중 데이터베이스 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 근태 기록 저장 중 데이터베이스 오류가 발생했습니다\n at Object.upsertAttendanceRecordService (/usr/src/app/services/attendanceService.js:108:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:50:18", - "url": "/api/attendance/records", - "method": "POST", - "user": "hyungi" -} -[2026-02-04T11:51:48.122Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 500, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:51:48.135Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-02-04", - "worker_id": 10 -} -[2026-02-04T11:51:48.137Z] [ERROR] ❌ 근태 기록 저장 실패 - Context: { - "record_date": "2026-02-04", - "worker_id": 10, - "error": "Unknown column 'work_attendance_type_id' in 'field list'" -} -[2026-02-04T11:51:48.138Z] [ERROR] ❌ 근태 기록 저장 중 데이터베이스 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 근태 기록 저장 중 데이터베이스 오류가 발생했습니다\n at Object.upsertAttendanceRecordService (/usr/src/app/services/attendanceService.js:108:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:50:18", - "url": "/api/attendance/records", - "method": "POST", - "user": "hyungi" -} -[2026-02-04T11:51:48.140Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 500, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:51:48.148Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-02-04", - "worker_id": 9 -} -[2026-02-04T11:51:48.150Z] [ERROR] ❌ 근태 기록 저장 실패 - Context: { - "record_date": "2026-02-04", - "worker_id": 9, - "error": "Unknown column 'work_attendance_type_id' in 'field list'" -} -[2026-02-04T11:51:48.151Z] [ERROR] ❌ 근태 기록 저장 중 데이터베이스 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 근태 기록 저장 중 데이터베이스 오류가 발생했습니다\n at Object.upsertAttendanceRecordService (/usr/src/app/services/attendanceService.js:108:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:50:18", - "url": "/api/attendance/records", - "method": "POST", - "user": "hyungi" -} -[2026-02-04T11:51:48.152Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 500, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:51:48.160Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-02-04", - "worker_id": 8 -} -[2026-02-04T11:51:48.162Z] [ERROR] ❌ 근태 기록 저장 실패 - Context: { - "record_date": "2026-02-04", - "worker_id": 8, - "error": "Unknown column 'work_attendance_type_id' in 'field list'" -} -[2026-02-04T11:51:48.162Z] [ERROR] ❌ 근태 기록 저장 중 데이터베이스 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 근태 기록 저장 중 데이터베이스 오류가 발생했습니다\n at Object.upsertAttendanceRecordService (/usr/src/app/services/attendanceService.js:108:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:50:18", - "url": "/api/attendance/records", - "method": "POST", - "user": "hyungi" -} -[2026-02-04T11:51:48.163Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 500, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:51:48.175Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-02-04", - "worker_id": 6 -} -[2026-02-04T11:51:48.177Z] [ERROR] ❌ 근태 기록 저장 실패 - Context: { - "record_date": "2026-02-04", - "worker_id": 6, - "error": "Unknown column 'work_attendance_type_id' in 'field list'" -} -[2026-02-04T11:51:48.178Z] [ERROR] ❌ 근태 기록 저장 중 데이터베이스 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 근태 기록 저장 중 데이터베이스 오류가 발생했습니다\n at Object.upsertAttendanceRecordService (/usr/src/app/services/attendanceService.js:108:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:50:18", - "url": "/api/attendance/records", - "method": "POST", - "user": "hyungi" -} -[2026-02-04T11:51:48.178Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 500, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:51:48.184Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-02-04", - "worker_id": 5 -} -[2026-02-04T11:51:48.187Z] [ERROR] ❌ 근태 기록 저장 실패 - Context: { - "record_date": "2026-02-04", - "worker_id": 5, - "error": "Unknown column 'work_attendance_type_id' in 'field list'" -} -[2026-02-04T11:51:48.190Z] [ERROR] ❌ 근태 기록 저장 중 데이터베이스 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 근태 기록 저장 중 데이터베이스 오류가 발생했습니다\n at Object.upsertAttendanceRecordService (/usr/src/app/services/attendanceService.js:108:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:50:18", - "url": "/api/attendance/records", - "method": "POST", - "user": "hyungi" -} -[2026-02-04T11:51:48.192Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 500, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:51:48.199Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-02-04", - "worker_id": 4 -} -[2026-02-04T11:51:48.202Z] [ERROR] ❌ 근태 기록 저장 실패 - Context: { - "record_date": "2026-02-04", - "worker_id": 4, - "error": "Unknown column 'work_attendance_type_id' in 'field list'" -} -[2026-02-04T11:51:48.203Z] [ERROR] ❌ 근태 기록 저장 중 데이터베이스 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 근태 기록 저장 중 데이터베이스 오류가 발생했습니다\n at Object.upsertAttendanceRecordService (/usr/src/app/services/attendanceService.js:108:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:50:18", - "url": "/api/attendance/records", - "method": "POST", - "user": "hyungi" -} -[2026-02-04T11:51:48.204Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 500, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:51:48.211Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-02-04", - "worker_id": 3 -} -[2026-02-04T11:51:48.212Z] [ERROR] ❌ 근태 기록 저장 실패 - Context: { - "record_date": "2026-02-04", - "worker_id": 3, - "error": "Unknown column 'work_attendance_type_id' in 'field list'" -} -[2026-02-04T11:51:48.213Z] [ERROR] ❌ 근태 기록 저장 중 데이터베이스 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 근태 기록 저장 중 데이터베이스 오류가 발생했습니다\n at Object.upsertAttendanceRecordService (/usr/src/app/services/attendanceService.js:108:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:50:18", - "url": "/api/attendance/records", - "method": "POST", - "user": "hyungi" -} -[2026-02-04T11:51:48.213Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 500, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:51:48.220Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-02-04", - "worker_id": 2 -} -[2026-02-04T11:51:48.221Z] [ERROR] ❌ 근태 기록 저장 실패 - Context: { - "record_date": "2026-02-04", - "worker_id": 2, - "error": "Unknown column 'work_attendance_type_id' in 'field list'" -} -[2026-02-04T11:51:48.222Z] [ERROR] ❌ 근태 기록 저장 중 데이터베이스 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 근태 기록 저장 중 데이터베이스 오류가 발생했습니다\n at Object.upsertAttendanceRecordService (/usr/src/app/services/attendanceService.js:108:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:50:18", - "url": "/api/attendance/records", - "method": "POST", - "user": "hyungi" -} -[2026-02-04T11:51:48.225Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 500, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:51:48.232Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-02-04", - "worker_id": 1 -} -[2026-02-04T11:51:48.233Z] [ERROR] ❌ 근태 기록 저장 실패 - Context: { - "record_date": "2026-02-04", - "worker_id": 1, - "error": "Unknown column 'work_attendance_type_id' in 'field list'" -} -[2026-02-04T11:51:48.234Z] [ERROR] ❌ 근태 기록 저장 중 데이터베이스 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 근태 기록 저장 중 데이터베이스 오류가 발생했습니다\n at Object.upsertAttendanceRecordService (/usr/src/app/services/attendanceService.js:108:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:50:18", - "url": "/api/attendance/records", - "method": "POST", - "user": "hyungi" -} -[2026-02-04T11:51:48.236Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 500, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:51:51.284Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T11:52:14.323Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:52:21.387Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T11:52:44.309Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:52:51.524Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T11:53:14.323Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:53:21.687Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T11:53:34.849Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2026-02-04T11:53:34.855Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-02-04T11:53:36.146Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-02-04T11:53:36.235Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-02-04T11:53:36.312Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2026-02-04T11:53:36.326Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-02-04T11:53:40.948Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T11:53:44.333Z] [INFO] ℹ️ MariaDB 연결 성공 - Context: { - "connection": "db:3306", - "database": "hyungi", - "connectionLimit": 10 -} -[2026-02-04T11:53:44.339Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "31ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:54:11.095Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "7ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T11:54:14.403Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "91ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:54:41.241Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T11:54:44.329Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:54:59.948Z] [INFO] ℹ️ 일일 근태 기록 조회 요청 - Context: { - "date": "2026-02-04", - "workerId": null -} -[2026-02-04T11:54:59.964Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=100", - "statusCode": 200, - "duration": "20ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:54:59.970Z] [INFO] ℹ️ 일일 근태 기록 조회 성공 - Context: { - "date": "2026-02-04", - "count": 10 -} -[2026-02-04T11:54:59.975Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/daily-records?date=2026-02-04", - "statusCode": 200, - "duration": "28ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:55:00.076Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260204", - "baseTime": "2000", - "nx": 57, - "ny": 119 -} -[2026-02-04T11:55:00.126Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:55:00.257Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 0.9, - "humidity": 85, - "windSpeed": 0, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-04T11:55:00.259Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 0.9, - "humidity": 85, - "windSpeed": 0, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-04T11:55:00.261Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "276ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:55:01.673Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-02-04", - "worker_id": 11 -} -[2026-02-04T11:55:01.680Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-02-04", - "worker_id": 11 -} -[2026-02-04T11:55:01.681Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:55:01.685Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-02-04", - "worker_id": 10 -} -[2026-02-04T11:55:01.688Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-02-04", - "worker_id": 10 -} -[2026-02-04T11:55:01.689Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:55:01.695Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-02-04", - "worker_id": 9 -} -[2026-02-04T11:55:01.696Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-02-04", - "worker_id": 9 -} -[2026-02-04T11:55:01.697Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:55:01.701Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-02-04", - "worker_id": 8 -} -[2026-02-04T11:55:01.702Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-02-04", - "worker_id": 8 -} -[2026-02-04T11:55:01.703Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:55:01.708Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-02-04", - "worker_id": 6 -} -[2026-02-04T11:55:01.710Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-02-04", - "worker_id": 6 -} -[2026-02-04T11:55:01.710Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:55:01.715Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-02-04", - "worker_id": 5 -} -[2026-02-04T11:55:01.716Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-02-04", - "worker_id": 5 -} -[2026-02-04T11:55:01.717Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:55:01.724Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-02-04", - "worker_id": 4 -} -[2026-02-04T11:55:01.725Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-02-04", - "worker_id": 4 -} -[2026-02-04T11:55:01.726Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:55:01.731Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-02-04", - "worker_id": 3 -} -[2026-02-04T11:55:01.733Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-02-04", - "worker_id": 3 -} -[2026-02-04T11:55:01.733Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:55:01.739Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-02-04", - "worker_id": 2 -} -[2026-02-04T11:55:01.740Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-02-04", - "worker_id": 2 -} -[2026-02-04T11:55:01.742Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:55:01.746Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-02-04", - "worker_id": 1 -} -[2026-02-04T11:55:01.748Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-02-04", - "worker_id": 1 -} -[2026-02-04T11:55:01.748Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:55:11.432Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T11:55:12.101Z] [INFO] ℹ️ 일일 근태 기록 조회 요청 - Context: { - "date": "2026-02-04", - "workerId": null -} -[2026-02-04T11:55:12.108Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=100", - "statusCode": 200, - "duration": "20ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:55:12.109Z] [INFO] ℹ️ 일일 근태 기록 조회 성공 - Context: { - "date": "2026-02-04", - "count": 10 -} -[2026-02-04T11:55:12.114Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/daily-records?date=2026-02-04", - "statusCode": 200, - "duration": "21ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:55:12.305Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "16ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:55:41.552Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T11:55:42.056Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:56:11.691Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T11:56:12.059Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:56:41.878Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "5ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T11:56:42.041Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:57:12.005Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T11:57:12.038Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:57:42.041Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:57:42.096Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T11:58:09.349Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2026-02-04T11:58:09.352Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-02-04T11:58:10.569Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-02-04T11:58:10.646Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-02-04T11:58:10.723Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2026-02-04T11:58:10.729Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-02-04T11:58:12.079Z] [INFO] ℹ️ MariaDB 연결 성공 - Context: { - "connection": "db:3306", - "database": "hyungi", - "connectionLimit": 10 -} -[2026-02-04T11:58:12.095Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "40ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:58:15.427Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T11:58:42.055Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:58:45.502Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T11:59:12.054Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:59:15.570Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T11:59:42.055Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:59:45.658Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T12:00:12.067Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T12:00:15.799Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T12:00:42.075Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T12:00:45.903Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T12:01:12.072Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T12:01:16.046Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T12:01:42.078Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "20ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T12:01:46.185Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T12:02:12.077Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T12:02:16.321Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T12:02:42.066Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T12:02:46.434Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T12:02:53.308Z] [INFO] ℹ️ 일일 근태 기록 조회 요청 - Context: { - "date": "2026-02-04", - "workerId": null -} -[2026-02-04T12:02:53.325Z] [INFO] ℹ️ 일일 근태 기록 조회 성공 - Context: { - "date": "2026-02-04", - "count": 10 -} -[2026-02-04T12:02:53.332Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/daily-records?date=2026-02-04", - "statusCode": 200, - "duration": "26ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T12:02:53.392Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260204", - "baseTime": "2000", - "nx": 57, - "ny": 119 -} -[2026-02-04T12:02:53.453Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=100", - "statusCode": 200, - "duration": "150ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T12:02:53.456Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T12:02:53.545Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 0.9, - "humidity": 85, - "windSpeed": 0.1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-04T12:02:53.547Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 0.9, - "humidity": 85, - "windSpeed": 0.1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-04T12:02:53.549Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "214ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T12:03:16.538Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T12:03:23.244Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T12:03:46.649Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T12:03:53.240Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T12:04:16.731Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T12:04:23.232Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T12:04:46.840Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T12:04:53.260Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T12:05:16.946Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T12:05:23.241Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T12:05:47.051Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T12:05:53.239Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T12:06:17.161Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T12:06:23.238Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T12:06:47.265Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T12:06:53.239Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T12:07:05.910Z] [ERROR] ❌ Unexpected token ! in JSON at position 41 - Context: { - "code": "INTERNAL_ERROR", - "stack": "AppError: Unexpected token ! in JSON at position 41\n at errorHandler (/usr/src/app/middlewares/errorHandler.js:51:13)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:71:5)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/src/app/node_modules/express/lib/router/index.js:280:10)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:67:12)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)", - "url": "/api/auth/login", - "method": "POST", - "user": "anonymous" -} -[2026-02-04T12:07:09.214Z] [ERROR] ❌ Unexpected token ! in JSON at position 41 - Context: { - "code": "INTERNAL_ERROR", - "stack": "AppError: Unexpected token ! in JSON at position 41\n at errorHandler (/usr/src/app/middlewares/errorHandler.js:51:13)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:71:5)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/src/app/node_modules/express/lib/router/index.js:280:10)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:67:12)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)", - "url": "/api/auth/login", - "method": "POST", - "user": "anonymous" -} -[2026-02-04T12:07:12.172Z] [WARN] ⚠️ 아이디 또는 비밀번호가 올바르지 않습니다. - Context: { - "code": "AUTHENTICATION_ERROR", - "url": "/api/auth/login", - "method": "POST", - "user": "anonymous" -} -[2026-02-04T12:07:12.174Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 401, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-02-04T12:07:17.365Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T12:07:23.239Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T12:07:47.460Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T12:07:53.243Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T12:08:17.558Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T12:08:23.243Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T12:08:47.655Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T12:08:53.241Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T12:09:17.752Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T12:09:23.245Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T12:09:47.847Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T12:09:53.246Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T12:10:17.939Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T12:10:23.248Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T12:10:41.062Z] [INFO] ℹ️ 일일 근태 기록 조회 요청 - Context: { - "date": "2026-02-04", - "workerId": null -} -[2026-02-04T12:10:41.067Z] [INFO] ℹ️ 일일 근태 기록 조회 성공 - Context: { - "date": "2026-02-04", - "count": 10 -} -[2026-02-04T12:10:41.070Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/daily-records?date=2026-02-04", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T12:10:41.073Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=100", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T12:10:41.098Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260204", - "baseTime": "2100", - "nx": 57, - "ny": 119 -} -[2026-02-04T12:10:41.202Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T12:10:41.288Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 1.2, - "humidity": 84, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-04T12:10:41.290Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 1.2, - "humidity": 84, - "windSpeed": 0.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-04T12:10:41.292Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "196ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T12:10:48.034Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T12:11:11.033Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "33ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T12:11:18.156Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T12:11:40.994Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T12:11:48.330Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T12:12:11.008Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T12:12:18.434Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T12:12:40.992Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T12:12:48.525Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T12:13:10.996Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T12:13:18.608Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T12:13:21.532Z] [INFO] ℹ️ 일일 근태 기록 조회 요청 - Context: { - "date": "2026-02-04", - "workerId": null -} -[2026-02-04T12:13:21.539Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=100", - "statusCode": 200, - "duration": "16ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T12:13:21.541Z] [INFO] ℹ️ 일일 근태 기록 조회 성공 - Context: { - "date": "2026-02-04", - "count": 10 -} -[2026-02-04T12:13:21.543Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/daily-records?date=2026-02-04", - "statusCode": 200, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T12:13:21.662Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T12:13:40.677Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 200, - "duration": "23ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T12:13:40.904Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T12:13:48.697Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T12:14:10.645Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T12:14:18.795Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T12:14:40.644Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T12:14:48.881Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T12:15:10.647Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T12:15:18.974Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T12:15:40.642Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T12:15:49.052Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T12:16:10.640Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T12:16:19.136Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T12:16:40.640Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T12:16:49.224Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T12:17:10.652Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "15ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T12:17:19.312Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T12:17:40.650Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T12:17:49.421Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T12:18:10.646Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T12:18:19.507Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T12:18:40.653Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T12:18:49.582Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T12:19:10.648Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T12:19:19.672Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T12:19:40.650Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T12:19:49.771Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T12:20:10.658Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T12:20:19.862Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T12:20:40.653Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T12:20:49.955Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T12:21:10.652Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T12:21:20.052Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T12:21:40.650Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T12:21:50.150Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T12:22:10.650Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T12:22:20.242Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T12:22:40.649Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T12:22:50.337Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T12:23:10.654Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T12:23:20.419Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T12:23:40.665Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T12:23:50.509Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T12:24:10.653Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T12:24:20.585Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T12:24:40.654Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T12:24:50.680Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T12:25:10.661Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T12:25:20.767Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T12:25:40.657Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T12:25:50.861Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T12:26:10.660Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T12:26:20.954Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T12:26:40.665Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T12:26:51.065Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T12:27:10.668Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T12:27:21.148Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T12:27:40.665Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T12:27:51.238Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T12:28:10.662Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T12:28:21.323Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T12:28:40.666Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T12:28:51.403Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T12:29:10.669Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T12:29:21.488Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T12:29:40.668Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T12:29:51.585Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T12:30:10.670Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T12:30:21.679Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T12:30:40.678Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T12:30:51.792Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T12:31:10.670Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T12:31:21.874Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T12:31:40.671Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T12:31:51.963Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T12:32:10.671Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T12:32:22.043Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T12:32:40.676Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T12:32:52.121Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T12:33:10.684Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T12:33:22.209Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T12:33:40.686Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T12:33:52.303Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T12:34:10.676Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T12:34:22.398Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T12:34:40.678Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T12:34:52.475Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T12:35:10.679Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T12:35:22.564Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T12:35:40.686Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T12:35:52.650Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T12:36:10.682Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T12:36:22.762Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T12:36:40.684Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T12:36:52.853Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T12:37:10.679Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T12:37:22.942Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T12:37:40.687Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T12:37:53.029Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T12:38:10.683Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T12:38:23.148Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T12:38:40.678Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T12:38:53.252Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T12:39:10.690Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T12:39:23.348Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T12:39:40.682Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T12:39:53.428Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T12:40:10.689Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T12:40:23.540Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T12:40:40.686Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T12:40:53.619Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T12:41:10.687Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T12:41:23.711Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T12:41:40.687Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T12:41:53.791Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T12:42:10.689Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T12:42:23.891Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T12:42:40.692Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T12:42:53.985Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T12:43:10.691Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T12:43:24.071Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T12:43:40.697Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T12:43:54.151Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T12:44:10.691Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T12:44:24.259Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T12:44:40.695Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T12:44:54.342Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T12:45:10.701Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T12:45:24.436Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T12:45:40.690Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T12:45:54.516Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T12:46:10.704Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T12:46:24.612Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T12:46:40.693Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T12:46:54.695Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T12:47:10.701Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T12:47:24.772Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T12:47:40.694Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T12:47:54.858Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T12:48:10.702Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T12:48:24.959Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T12:48:40.697Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T12:48:55.052Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T12:49:10.699Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T12:49:25.138Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T12:49:40.697Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T12:49:55.237Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T12:50:10.705Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T12:50:25.308Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T12:50:40.706Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T12:50:55.389Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T12:51:10.704Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T12:51:25.464Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T12:51:40.707Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T12:51:55.537Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T12:52:10.708Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T12:52:25.624Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T12:52:40.708Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T12:52:55.708Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T12:53:10.709Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T12:53:25.790Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T12:53:40.709Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T12:53:55.879Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T12:54:10.707Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T12:54:25.977Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T12:54:40.712Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T12:54:56.064Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T12:55:10.713Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T12:55:26.169Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T12:55:40.715Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T12:55:56.263Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T12:56:10.713Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T12:56:26.361Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T12:56:40.732Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T12:56:56.458Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T12:57:10.716Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T12:57:26.539Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T12:57:40.723Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T12:57:56.628Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T12:58:10.716Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T12:58:26.723Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T12:58:40.719Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T12:58:56.815Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T12:59:10.719Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T12:59:26.892Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T12:59:40.722Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T12:59:56.984Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T13:00:10.728Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T13:00:27.126Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T13:00:40.720Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T13:00:57.209Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T13:01:10.720Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T13:01:27.304Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T13:01:40.725Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T13:01:57.398Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T13:02:10.728Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T13:02:27.495Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T13:02:40.721Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T13:02:57.582Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T13:03:10.727Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T13:03:27.661Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T13:03:40.735Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T13:03:57.741Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T13:04:10.731Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T13:04:27.815Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T13:04:40.736Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T13:04:57.918Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T13:05:10.731Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T13:05:28.006Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T13:05:40.735Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T13:05:58.087Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T13:06:10.728Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T13:06:28.168Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T13:06:40.730Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T13:06:58.240Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T13:07:10.726Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T13:07:28.324Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T13:07:40.735Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T13:07:58.419Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T13:08:10.738Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T13:08:28.500Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T13:08:40.734Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T13:08:58.582Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T13:09:10.737Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T13:09:22.354Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 200, - "duration": "24ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T13:09:22.432Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260204", - "baseTime": "2100", - "nx": 57, - "ny": 119 -} -[2026-02-04T13:09:22.500Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T13:09:22.619Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 0.6, - "humidity": 86, - "windSpeed": 0.1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-04T13:09:22.638Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 0.6, - "humidity": 86, - "windSpeed": 0.1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-04T13:09:22.641Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "212ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T13:09:28.706Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T13:09:52.344Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "31ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T13:09:58.820Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T13:10:22.327Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T13:10:28.970Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T13:10:52.313Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T13:10:59.086Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T13:11:22.312Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T13:11:29.201Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T13:11:52.311Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T13:11:59.302Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T13:12:22.310Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T13:12:29.403Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T13:12:52.317Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T13:12:59.502Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T13:13:22.320Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T13:13:29.595Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T13:13:52.320Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T13:13:59.678Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T13:14:22.320Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T13:14:29.801Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T13:14:52.324Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T13:14:59.927Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T13:15:22.328Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T13:15:30.033Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T13:15:52.323Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T13:16:00.120Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T13:16:22.318Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T13:16:30.207Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T13:16:52.347Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "15ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T13:17:00.303Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T13:17:22.319Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T13:17:30.395Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T13:17:52.336Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T13:18:00.532Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T13:18:22.341Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T13:18:30.643Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T13:18:52.327Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T13:19:00.733Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T13:19:22.328Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T13:19:30.830Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T13:19:52.331Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T13:20:00.916Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T13:20:22.335Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T13:20:31.026Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T13:20:52.334Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T13:21:01.123Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T13:21:22.332Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T13:21:31.212Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T13:21:52.338Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T13:22:01.303Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T13:22:22.341Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T13:22:31.574Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T13:22:52.344Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T13:23:01.691Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T13:23:22.354Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "21ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T13:23:31.796Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T13:23:52.335Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T13:24:01.884Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T13:24:22.331Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T13:24:31.984Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T13:24:52.333Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T13:25:02.076Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T13:25:22.334Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T13:25:32.184Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T13:25:52.337Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T13:26:02.293Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T13:26:22.341Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T13:26:32.387Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T13:26:52.347Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T13:27:02.482Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T13:27:22.345Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T13:27:32.579Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T13:27:52.347Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T13:28:02.676Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T13:28:22.355Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T13:28:32.778Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T13:28:52.342Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T13:29:02.880Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T13:29:22.349Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T13:29:32.969Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T13:29:52.347Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T13:30:03.080Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T13:30:22.357Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T13:30:33.200Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T13:30:52.357Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T13:31:03.349Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T13:31:22.408Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T13:31:33.504Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T13:31:52.352Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T13:32:03.615Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T13:32:22.360Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T13:32:33.696Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T13:32:52.350Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T13:33:03.782Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T13:33:22.354Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T13:33:33.880Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T13:33:52.351Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T13:34:03.973Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T13:34:22.353Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T13:34:34.058Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T13:34:52.356Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T13:35:04.152Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T13:35:22.361Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T13:35:34.245Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T13:35:52.357Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T13:36:04.328Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T13:36:22.358Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T13:36:34.431Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T13:36:52.361Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T13:37:04.525Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T13:37:22.357Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T13:37:34.685Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T13:37:52.367Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T13:38:04.864Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T13:38:22.365Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T13:38:34.956Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T13:38:52.370Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T13:39:05.056Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T13:39:22.386Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T13:39:35.172Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T13:39:52.373Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T13:40:05.303Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T13:40:22.379Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T13:40:35.408Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T13:40:52.367Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T13:41:05.514Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T13:41:22.368Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T13:41:35.611Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T13:41:52.370Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T13:42:05.692Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T13:42:22.378Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T13:42:35.822Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T13:42:52.389Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T13:43:05.911Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T13:43:22.367Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T13:43:36.024Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T13:43:52.383Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "16ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T13:44:06.119Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T13:44:22.367Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T13:44:36.252Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "5ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T13:44:52.397Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T13:45:06.378Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T13:45:22.374Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T13:45:36.490Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T13:45:52.383Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T13:46:06.581Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T13:46:22.371Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T13:46:36.687Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T13:46:52.377Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T13:47:06.808Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "6ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T13:47:22.399Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "20ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T13:47:36.961Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T13:48:33.341Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T13:49:20.605Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T13:49:50.696Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T14:05:17.333Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T14:05:47.418Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T14:06:17.491Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T14:06:47.556Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T14:07:17.666Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T14:22:45.349Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T14:23:15.435Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T14:23:45.522Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T14:24:15.607Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T14:24:45.692Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T14:25:15.770Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T14:25:45.843Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T14:26:15.916Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T14:26:45.979Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T14:27:16.049Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T14:27:46.145Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T14:28:16.226Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T14:28:46.298Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T14:29:16.369Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T14:29:46.457Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T14:30:16.566Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T14:30:46.641Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T14:31:16.731Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T14:31:46.814Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T14:32:16.876Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T14:32:46.978Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T14:33:17.068Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T14:33:47.617Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T14:41:24.924Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T14:56:52.167Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T14:57:22.238Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T15:12:49.480Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T15:13:19.566Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T15:28:46.769Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T15:29:16.858Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T15:29:46.946Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T15:30:17.021Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T15:30:47.096Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T15:31:17.179Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T15:31:47.266Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T15:32:17.336Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T15:32:47.414Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T15:33:17.487Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T15:33:47.591Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T15:34:17.679Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T15:34:47.769Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T15:35:17.850Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T15:35:47.924Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T15:36:17.997Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T15:36:48.087Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T15:37:18.176Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T15:37:48.260Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T15:38:18.336Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T15:38:48.412Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T15:39:18.477Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T15:43:44.943Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T15:44:15.025Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T15:49:00.710Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T16:04:27.553Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T16:04:57.665Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T16:20:24.419Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T16:20:54.494Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T16:36:21.788Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T16:51:48.819Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T16:52:18.959Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T17:07:46.240Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T17:08:16.309Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T17:23:43.262Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T17:24:13.346Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T17:39:40.425Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T17:55:07.694Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T17:55:37.792Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T18:11:05.234Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T18:11:35.339Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T18:16:19.660Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T18:16:49.748Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T18:32:16.931Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T18:46:11.528Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T18:46:41.682Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T19:02:08.385Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T19:02:38.471Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T19:18:05.546Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T19:18:35.623Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T19:36:14.500Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T19:40:42.548Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T19:41:13.071Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T19:57:54.259Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T19:58:24.348Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T20:14:17.351Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T20:14:47.423Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T20:15:17.518Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T20:15:47.585Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T20:16:17.664Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T20:33:19.381Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T20:33:49.458Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T20:40:27.164Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T20:49:10.297Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T20:49:40.376Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T21:07:04.647Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T21:07:34.727Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T21:11:28.810Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T21:11:38.224Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "23ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T21:12:01.573Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T21:12:41.249Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T21:15:53.794Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T21:16:31.361Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T21:17:15.106Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T21:18:35.758Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T21:19:22.224Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T21:20:03.686Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T21:20:51.472Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T21:21:36.572Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T21:22:32.955Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T21:23:07.663Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T21:23:38.588Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T21:23:46.982Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "29ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T21:27:00.299Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T21:27:20.560Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T21:27:30.480Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T21:27:49.715Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T21:28:00.579Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T21:28:19.711Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T21:28:30.670Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T21:28:49.710Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T21:29:00.758Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T21:29:19.709Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T21:29:30.849Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T21:29:49.723Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T21:30:00.936Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T21:30:19.731Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T21:30:31.038Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T21:30:49.712Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T21:31:01.220Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T21:31:19.736Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T21:31:31.355Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T21:31:49.729Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T21:32:01.454Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T21:32:19.726Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T21:32:31.561Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T21:32:49.721Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T21:33:01.688Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T21:33:19.715Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T21:33:31.788Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T21:33:49.740Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T21:34:01.935Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T21:34:19.719Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T21:34:32.043Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T21:34:49.736Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T21:35:02.141Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T21:35:19.727Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T21:35:22.884Z] [INFO] ℹ️ 프로젝트 생성 요청 - Context: {} -[2026-02-04T21:35:22.893Z] [INFO] ℹ️ 프로젝트 생성 성공 - Context: { - "project_id": 17 -} -[2026-02-04T21:35:22.894Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/projects", - "statusCode": 201, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T21:35:22.908Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T21:35:32.266Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T21:35:49.722Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T21:36:02.357Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T21:36:19.723Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T21:36:32.439Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T21:36:49.718Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T21:36:50.327Z] [INFO] ℹ️ 프로젝트 생성 요청 - Context: {} -[2026-02-04T21:36:50.335Z] [INFO] ℹ️ 프로젝트 생성 성공 - Context: { - "project_id": 18 -} -[2026-02-04T21:36:50.337Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/projects", - "statusCode": 201, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T21:36:50.350Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T21:37:02.539Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T21:37:07.139Z] [INFO] ℹ️ 프로젝트 수정 성공 - Context: { - "project_id": 18 -} -[2026-02-04T21:37:07.141Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "PUT", - "url": "/api/projects/18", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T21:37:07.153Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T21:37:19.721Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T21:37:32.638Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T21:37:49.716Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T21:38:02.749Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T21:38:04.264Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260205", - "baseTime": "0600", - "nx": 57, - "ny": 119 -} -[2026-02-04T21:38:04.295Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T21:38:04.394Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T21:38:04.399Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T21:38:06.374Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 3.3, - "humidity": 75, - "windSpeed": 0.5, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-04T21:38:06.380Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 3.3, - "humidity": 75, - "windSpeed": 0.5, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-04T21:38:06.384Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "2122ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T21:38:32.892Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T21:38:33.147Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues/categories/type/nonconformity", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T21:38:33.230Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues/items", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T21:38:33.277Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T21:38:34.114Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T21:38:49.806Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T21:38:49.814Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T21:38:50.068Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T21:39:03.066Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T21:39:19.801Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T21:39:33.171Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T21:39:49.908Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T21:40:03.279Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T21:40:33.392Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T21:41:03.483Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T21:41:33.619Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T21:42:03.711Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T21:42:33.853Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T21:43:03.945Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T21:43:34.050Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T21:44:04.129Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T21:44:21.231Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T21:44:34.245Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T21:44:37.926Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues/categories/type/nonconformity", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T21:44:38.063Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260205", - "baseTime": "0600", - "nx": 57, - "ny": 119 -} -[2026-02-04T21:44:38.079Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues/items", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T21:44:38.080Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T21:44:38.332Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 3.3, - "humidity": 75, - "windSpeed": 0.5, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-04T21:44:38.335Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 3.3, - "humidity": 75, - "windSpeed": 0.5, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-04T21:44:38.345Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "285ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T21:44:38.907Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T21:44:47.517Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T21:44:47.522Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T21:44:47.709Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T21:45:04.602Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "5ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T21:45:34.819Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T21:45:35.261Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "29ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T21:46:04.928Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T21:46:05.259Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T21:46:35.028Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T21:46:35.244Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T21:47:04.897Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T21:47:04.899Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T21:47:05.106Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T21:47:05.161Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T21:47:34.886Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T21:47:35.249Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T21:47:35.393Z] [INFO] ℹ️ 작업 생성 요청 - Context: { - "name": "H빔 가공" -} -[2026-02-04T21:47:35.397Z] [INFO] ℹ️ 작업 생성 성공 - Context: { - "task_id": 2 -} -[2026-02-04T21:47:35.399Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/tasks", - "statusCode": 201, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T21:47:35.408Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T21:47:35.410Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T21:47:53.506Z] [INFO] ℹ️ 작업 생성 요청 - Context: { - "name": "용접" -} -[2026-02-04T21:47:53.509Z] [INFO] ℹ️ 작업 생성 성공 - Context: { - "task_id": 3 -} -[2026-02-04T21:47:53.511Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/tasks", - "statusCode": 201, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T21:47:53.521Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T21:47:53.525Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T21:48:04.888Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T21:48:05.325Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T21:48:15.686Z] [INFO] ℹ️ 작업 생성 요청 - Context: { - "name": "서포트 제작(홀 가공 포함)" -} -[2026-02-04T21:48:15.689Z] [INFO] ℹ️ 작업 생성 성공 - Context: { - "task_id": 4 -} -[2026-02-04T21:48:15.691Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/tasks", - "statusCode": 201, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T21:48:15.700Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T21:48:15.704Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T21:48:30.706Z] [INFO] ℹ️ 작업 생성 요청 - Context: { - "name": "Plate 하차" -} -[2026-02-04T21:48:30.709Z] [INFO] ℹ️ 작업 생성 성공 - Context: { - "task_id": 5 -} -[2026-02-04T21:48:30.710Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/tasks", - "statusCode": 201, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T21:48:30.722Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T21:48:30.726Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T21:48:34.881Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T21:48:35.394Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T21:48:38.382Z] [INFO] ℹ️ 작업 생성 요청 - Context: { - "name": "Plate 마킹" -} -[2026-02-04T21:48:38.385Z] [INFO] ℹ️ 작업 생성 성공 - Context: { - "task_id": 6 -} -[2026-02-04T21:48:38.386Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/tasks", - "statusCode": 201, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T21:48:38.398Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T21:48:38.405Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T21:48:59.766Z] [INFO] ℹ️ 작업 생성 요청 - Context: { - "name": "Plate 가공 출하" -} -[2026-02-04T21:48:59.769Z] [INFO] ℹ️ 작업 생성 성공 - Context: { - "task_id": 7 -} -[2026-02-04T21:48:59.771Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/tasks", - "statusCode": 201, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T21:48:59.781Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T21:48:59.786Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T21:49:04.892Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T21:49:05.506Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T21:49:19.771Z] [INFO] ℹ️ 작업 생성 요청 - Context: { - "name": "동체 L심 용접" -} -[2026-02-04T21:49:19.774Z] [INFO] ℹ️ 작업 생성 성공 - Context: { - "task_id": 8 -} -[2026-02-04T21:49:19.775Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/tasks", - "statusCode": 201, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T21:49:19.788Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T21:49:19.793Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T21:49:29.947Z] [INFO] ℹ️ 작업 생성 요청 - Context: { - "name": "C심 용접" -} -[2026-02-04T21:49:29.950Z] [INFO] ℹ️ 작업 생성 성공 - Context: { - "task_id": 9 -} -[2026-02-04T21:49:29.951Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/tasks", - "statusCode": 201, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T21:49:29.960Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T21:49:29.967Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T21:49:34.894Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T21:49:35.592Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T21:49:36.678Z] [INFO] ℹ️ 작업 생성 요청 - Context: { - "name": "노즐 작업" -} -[2026-02-04T21:49:36.681Z] [INFO] ℹ️ 작업 생성 성공 - Context: { - "task_id": 10 -} -[2026-02-04T21:49:36.682Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/tasks", - "statusCode": 201, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T21:49:36.699Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T21:49:36.702Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T21:49:39.842Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks/10", - "statusCode": 200, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T21:49:48.978Z] [INFO] ℹ️ 작업 수정 요청 - Context: { - "task_id": "10" -} -[2026-02-04T21:49:48.981Z] [INFO] ℹ️ 작업 수정 성공 - Context: { - "task_id": "10" -} -[2026-02-04T21:49:48.983Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "PUT", - "url": "/api/tasks/10", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T21:49:48.991Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T21:49:48.996Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T21:49:55.879Z] [INFO] ℹ️ 작업 생성 요청 - Context: { - "name": "자재 절단" -} -[2026-02-04T21:49:55.882Z] [INFO] ℹ️ 작업 생성 성공 - Context: { - "task_id": 11 -} -[2026-02-04T21:49:55.884Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/tasks", - "statusCode": 201, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T21:49:55.894Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T21:49:55.898Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T21:50:04.889Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T21:50:05.680Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T21:50:16.204Z] [INFO] ℹ️ 작업 생성 요청 - Context: { - "name": "검사 지원" -} -[2026-02-04T21:50:16.208Z] [INFO] ℹ️ 작업 생성 성공 - Context: { - "task_id": 12 -} -[2026-02-04T21:50:16.209Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/tasks", - "statusCode": 201, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T21:50:16.219Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T21:50:16.224Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T21:50:31.341Z] [INFO] ℹ️ 작업 생성 요청 - Context: { - "name": "pipe 절단" -} -[2026-02-04T21:50:31.345Z] [INFO] ℹ️ 작업 생성 성공 - Context: { - "task_id": 13 -} -[2026-02-04T21:50:31.347Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/tasks", - "statusCode": 201, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T21:50:31.357Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T21:50:31.361Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T21:50:34.887Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T21:50:35.774Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T21:50:39.303Z] [INFO] ℹ️ 작업 생성 요청 - Context: { - "name": "배관 취부" -} -[2026-02-04T21:50:39.306Z] [INFO] ℹ️ 작업 생성 성공 - Context: { - "task_id": 14 -} -[2026-02-04T21:50:39.308Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/tasks", - "statusCode": 201, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T21:50:39.320Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T21:50:39.326Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T21:50:43.910Z] [INFO] ℹ️ 작업 생성 요청 - Context: { - "name": "용접" -} -[2026-02-04T21:50:43.914Z] [INFO] ℹ️ 작업 생성 성공 - Context: { - "task_id": 15 -} -[2026-02-04T21:50:43.915Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/tasks", - "statusCode": 201, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T21:50:43.927Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T21:50:43.932Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T21:51:04.890Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T21:51:05.870Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T21:51:22.613Z] [INFO] ℹ️ 작업 생성 요청 - Context: { - "name": "선 작업(용접전 작업 준비)" -} -[2026-02-04T21:51:22.616Z] [INFO] ℹ️ 작업 생성 성공 - Context: { - "task_id": 16 -} -[2026-02-04T21:51:22.618Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/tasks", - "statusCode": 201, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T21:51:22.632Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T21:51:22.636Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T21:51:31.104Z] [INFO] ℹ️ 작업 생성 요청 - Context: { - "name": "1차 조립" -} -[2026-02-04T21:51:31.108Z] [INFO] ℹ️ 작업 생성 성공 - Context: { - "task_id": 17 -} -[2026-02-04T21:51:31.110Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/tasks", - "statusCode": 201, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T21:51:31.126Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T21:51:31.131Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T21:51:34.891Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T21:51:35.955Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T21:51:36.495Z] [INFO] ℹ️ 작업 생성 요청 - Context: { - "name": "검사 지원" -} -[2026-02-04T21:51:36.499Z] [INFO] ℹ️ 작업 생성 성공 - Context: { - "task_id": 18 -} -[2026-02-04T21:51:36.501Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/tasks", - "statusCode": 201, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T21:51:36.518Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T21:51:36.523Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T21:51:41.063Z] [INFO] ℹ️ 작업 생성 요청 - Context: { - "name": "2차 조립" -} -[2026-02-04T21:51:41.066Z] [INFO] ℹ️ 작업 생성 성공 - Context: { - "task_id": 19 -} -[2026-02-04T21:51:41.068Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/tasks", - "statusCode": 201, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T21:51:41.083Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T21:51:41.087Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T21:52:04.894Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T21:52:06.047Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T21:52:07.485Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports/work-types", - "statusCode": 201, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T21:52:07.496Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T21:52:07.501Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T21:52:34.897Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T21:52:36.123Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T21:53:04.901Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T21:53:06.211Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T21:53:34.904Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T21:53:36.296Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T21:54:04.897Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T21:54:06.367Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T21:54:34.908Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T21:54:36.456Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T21:55:04.898Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T21:55:06.545Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T21:55:34.905Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T21:55:36.640Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T21:56:04.917Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T21:56:06.737Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T21:56:34.915Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T21:56:36.828Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T21:57:04.898Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T21:57:06.925Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T21:57:37.061Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T21:58:07.159Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T21:58:37.245Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T21:59:07.323Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T21:59:37.413Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T21:59:58.596Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "41ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:00:07.533Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T22:00:27.953Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:00:37.630Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T22:00:57.965Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:01:07.723Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T22:01:27.964Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:01:37.818Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T22:01:57.952Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:02:07.911Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T22:02:27.955Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:02:37.998Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T22:02:57.966Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:03:08.104Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T22:03:27.966Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:03:38.211Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T22:03:57.959Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:04:08.306Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T22:04:27.966Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:04:38.393Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T22:04:57.981Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:05:08.488Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T22:05:27.961Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:05:38.584Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T22:05:57.963Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:06:08.660Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T22:06:27.968Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:06:38.744Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T22:06:57.968Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:07:08.837Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T22:07:27.971Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:07:38.940Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T22:07:57.986Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:08:09.032Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T22:08:27.967Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:08:39.107Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T22:08:57.972Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:09:09.201Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T22:09:27.973Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:09:39.269Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T22:09:57.969Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:10:09.352Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T22:10:27.975Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:10:39.464Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T22:10:57.973Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:11:09.593Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T22:11:27.983Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:11:39.699Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T22:11:57.975Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:12:09.800Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T22:12:27.976Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:12:39.895Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T22:12:57.971Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:13:09.987Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T22:13:27.981Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:13:40.069Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T22:13:57.976Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:14:10.164Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T22:14:27.976Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:14:40.260Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T22:14:57.975Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:15:10.352Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T22:15:27.975Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:15:40.425Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T22:15:57.979Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:16:10.516Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T22:16:27.979Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:16:40.590Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T22:16:57.989Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "16ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:17:10.690Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T22:17:27.989Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:17:40.828Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T22:18:10.900Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T22:18:40.980Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T22:19:11.053Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T22:19:41.148Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T22:19:41.660Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "185ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:20:11.241Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T22:20:11.384Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:20:41.335Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T22:20:41.381Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:21:11.378Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:21:11.417Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T22:21:41.387Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:21:41.491Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T22:21:45.583Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000&department_id=1", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:21:45.738Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260205", - "baseTime": "0700", - "nx": 57, - "ny": 119 -} -[2026-02-04T22:21:45.748Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "15ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:21:45.750Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260205", - "baseTime": "0700", - "nx": 57, - "ny": 119 -} -[2026-02-04T22:21:45.757Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:21:45.762Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:21:45.766Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:21:45.774Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:21:45.786Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:21:45.793Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues/categories/type/nonconformity", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:21:45.799Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues/items", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:21:45.809Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:21:46.223Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 3.7, - "humidity": 71, - "windSpeed": 1.8, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-04T22:21:46.226Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 3.7, - "humidity": 71, - "windSpeed": 1.8, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-04T22:21:46.229Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "481ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:21:46.969Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 3.7, - "humidity": 71, - "windSpeed": 1.8, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-04T22:21:46.972Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 3.7, - "humidity": 71, - "windSpeed": 1.8, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-04T22:21:46.974Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "1239ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:22:11.555Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T22:22:15.515Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:22:15.564Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:22:16.936Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=1", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:22:18.430Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=1", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:22:41.660Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T22:22:45.518Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:22:45.566Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:23:11.742Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T22:23:15.524Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:23:15.565Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:23:41.820Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T22:23:45.514Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:23:45.564Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:24:11.942Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T22:24:15.516Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:24:15.563Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:24:39.320Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2026-02-04T22:24:39.323Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-02-04T22:24:40.581Z] [INFO] ℹ️ Rate Limiting 설정 완료 -[2026-02-04T22:24:40.581Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-02-04T22:24:40.669Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-02-04T22:24:40.763Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2026-02-04T22:24:40.771Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-02-04T22:24:45.444Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T22:24:45.527Z] [INFO] ℹ️ MariaDB 연결 성공 - Context: { - "connection": "db:3306", - "database": "hyungi", - "connectionLimit": 10 -} -[2026-02-04T22:24:45.531Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "16ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:24:45.563Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:25:15.514Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:25:15.522Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T22:25:15.563Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:25:45.518Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:25:45.563Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:25:45.602Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T22:26:15.524Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:26:15.569Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:26:15.679Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T22:26:45.535Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:26:45.563Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:26:45.772Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T22:26:48.625Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000&department_id=1", - "statusCode": 200, - "duration": "22ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:26:48.767Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260205", - "baseTime": "0700", - "nx": 57, - "ny": 119 -} -[2026-02-04T22:26:48.796Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260205", - "baseTime": "0700", - "nx": 57, - "ny": 119 -} -[2026-02-04T22:26:48.803Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 200, - "duration": "92ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:26:48.811Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:26:48.814Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:26:48.833Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:26:48.845Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:26:48.853Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:26:48.860Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues/categories/type/nonconformity", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:26:48.866Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 3.7, - "humidity": 70, - "windSpeed": 1.6, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-04T22:26:48.869Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 3.7, - "humidity": 70, - "windSpeed": 1.6, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-04T22:26:48.872Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "153ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:26:48.876Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 3.7, - "humidity": 70, - "windSpeed": 1.6, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-04T22:26:48.879Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 3.7, - "humidity": 70, - "windSpeed": 1.6, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-04T22:26:48.880Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues/items", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:26:48.882Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "88ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:26:48.887Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:27:15.914Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T22:27:18.584Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:27:18.604Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "16ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:27:37.464Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=1", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:27:38.631Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=1", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:27:42.747Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:27:43.721Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:27:43.750Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:27:46.010Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T22:27:47.324Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:27:48.075Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:27:48.089Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:27:48.573Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:27:48.597Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:28:16.103Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T22:28:18.584Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:28:18.597Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:28:46.202Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T22:28:48.582Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:28:48.595Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:29:16.288Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T22:29:18.590Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:29:18.600Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:29:46.415Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T22:30:16.534Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T22:30:46.645Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T22:31:16.743Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T22:31:27.157Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "27ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:31:27.165Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "23ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:31:46.851Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T22:31:57.111Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:31:57.114Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:32:16.949Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T22:32:27.117Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:32:27.120Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:32:47.030Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T22:32:57.113Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:32:57.114Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:33:13.503Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:33:14.615Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:33:14.629Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:33:17.166Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T22:33:27.119Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:33:27.128Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:33:47.272Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T22:33:48.199Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:33:49.183Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:33:49.203Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:33:53.067Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:33:54.140Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:33:54.150Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:33:57.112Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:33:57.118Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:34:00.397Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:34:01.310Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:34:01.319Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:34:04.228Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:34:05.266Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:34:05.278Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:34:09.082Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:34:09.868Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:34:09.884Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:34:14.084Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:34:17.365Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T22:34:27.126Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:34:27.128Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:34:47.479Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T22:34:57.124Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:34:57.126Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:35:17.583Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T22:35:27.115Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:35:27.121Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:35:34.422Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=1", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:35:35.801Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=1", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:35:37.104Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=1", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:35:39.064Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=1", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:35:40.213Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=1", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:35:41.648Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=1", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:35:47.663Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T22:35:57.113Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:35:57.115Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:36:15.860Z] [WARN] ⚠️ 필수 필드가 누락되었습니다 - Context: { - "code": "VALIDATION_ERROR", - "url": "/api/daily-work-reports", - "method": "POST", - "user": "hyungi" -} -[2026-02-04T22:36:15.862Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 400, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:36:17.776Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T22:36:27.128Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:36:27.130Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:36:29.252Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260205", - "baseTime": "0700", - "nx": 57, - "ny": 119 -} -[2026-02-04T22:36:29.380Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 3.8, - "humidity": 70, - "windSpeed": 1.5, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-04T22:36:29.389Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 3.8, - "humidity": 70, - "windSpeed": 1.5, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-04T22:36:29.399Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "154ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:36:29.425Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "15ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:36:29.428Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000&department_id=1", - "statusCode": 200, - "duration": "59ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:36:29.460Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects?is_active=1", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:36:29.470Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/safety-checks", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:36:29.475Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:36:29.483Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks/active/list", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:36:29.489Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?is_active=true", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:36:29.495Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/active/list", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:36:29.510Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-05", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:36:47.922Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T22:36:59.125Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "15ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:37:03.805Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000&department_id=1", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:37:03.838Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:37:03.843Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:37:03.848Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:37:03.886Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:37:03.890Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:37:03.902Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues/categories/type/nonconformity", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:37:03.912Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues/items", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:37:03.918Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:37:03.995Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:37:18.044Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T22:37:33.695Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:37:33.805Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:37:48.140Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T22:38:03.697Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:38:03.802Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:38:11.997Z] [INFO] ℹ️ 출근 체크 목록 조회 요청 - Context: { - "date": "2026-02-04" -} -[2026-02-04T22:38:12.001Z] [INFO] ℹ️ 일일 근태 기록 조회 요청 - Context: { - "date": "2026-02-04", - "workerId": null -} -[2026-02-04T22:38:12.006Z] [INFO] ℹ️ 출근 체크 목록 조회 성공 - Context: { - "date": "2026-02-04", - "count": 10 -} -[2026-02-04T22:38:12.012Z] [INFO] ℹ️ 일일 근태 기록 조회 성공 - Context: { - "date": "2026-02-04", - "count": 10 -} -[2026-02-04T22:38:12.014Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/checkin-list?date=2026-02-04", - "statusCode": 200, - "duration": "24ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:38:12.017Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/daily-records?date=2026-02-04", - "statusCode": 200, - "duration": "17ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:38:12.028Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=100", - "statusCode": 200, - "duration": "29ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:38:12.080Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:38:18.278Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T22:38:37.179Z] [INFO] ℹ️ 출근 체크 일괄 저장 요청 - Context: { - "date": "2026-01-05", - "count": 10 -} -[2026-02-04T22:38:37.199Z] [INFO] ℹ️ 출근 체크 일괄 저장 성공 - Context: { - "date": "2026-01-05", - "saved": 10 -} -[2026-02-04T22:38:37.200Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/checkins", - "statusCode": 200, - "duration": "26ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:38:45.165Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:38:48.375Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T22:39:18.433Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "17ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:39:18.586Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T22:39:48.407Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:39:48.687Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T22:40:18.428Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "15ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:40:18.838Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T22:40:37.082Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:40:37.292Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:40:42.895Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000&department_id=1", - "statusCode": 200, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:40:42.981Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:40:42.992Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:40:42.998Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:40:43.007Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:40:43.012Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:40:43.015Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues/categories/type/nonconformity", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:40:43.021Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues/items", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:40:43.027Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:40:43.056Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:40:48.981Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T22:41:14.778Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:41:14.790Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:41:15.059Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:41:19.067Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T22:41:40.922Z] [INFO] ℹ️ 작업 생성 요청 - Context: { - "name": "배우자출산휴가" -} -[2026-02-04T22:41:40.929Z] [INFO] ℹ️ 작업 생성 성공 - Context: { - "task_id": 20 -} -[2026-02-04T22:41:40.930Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/tasks", - "statusCode": 201, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:41:40.940Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:41:40.956Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks", - "statusCode": 200, - "duration": "15ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:41:44.780Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:41:46.813Z] [INFO] ℹ️ 작업 생성 요청 - Context: { - "name": "연차" -} -[2026-02-04T22:41:46.817Z] [INFO] ℹ️ 작업 생성 성공 - Context: { - "task_id": 21 -} -[2026-02-04T22:41:46.820Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/tasks", - "statusCode": 201, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:41:46.834Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:41:46.841Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:41:49.197Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T22:41:51.706Z] [INFO] ℹ️ 작업 생성 요청 - Context: { - "name": "반차" -} -[2026-02-04T22:41:51.711Z] [INFO] ℹ️ 작업 생성 성공 - Context: { - "task_id": 22 -} -[2026-02-04T22:41:51.712Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/tasks", - "statusCode": 201, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:41:51.727Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:41:51.732Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:41:57.411Z] [INFO] ℹ️ 작업 생성 요청 - Context: { - "name": "반반차" -} -[2026-02-04T22:41:57.416Z] [INFO] ℹ️ 작업 생성 성공 - Context: { - "task_id": 23 -} -[2026-02-04T22:41:57.419Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/tasks", - "statusCode": 201, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:41:57.432Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:41:57.439Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:42:05.190Z] [INFO] ℹ️ 작업 생성 요청 - Context: { - "name": "조퇴" -} -[2026-02-04T22:42:05.196Z] [INFO] ℹ️ 작업 생성 성공 - Context: { - "task_id": 24 -} -[2026-02-04T22:42:05.199Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/tasks", - "statusCode": 201, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:42:05.209Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:42:05.214Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:42:09.702Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000&department_id=1", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:42:09.827Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260205", - "baseTime": "0700", - "nx": 57, - "ny": 119 -} -[2026-02-04T22:42:09.837Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 200, - "duration": "32ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:42:09.840Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260205", - "baseTime": "0700", - "nx": 57, - "ny": 119 -} -[2026-02-04T22:42:09.848Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:42:09.850Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:42:09.855Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:42:09.859Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:42:09.862Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues/categories/type/nonconformity", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:42:09.872Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues/items", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:42:09.876Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:42:09.888Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:42:10.412Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 3.8, - "humidity": 70, - "windSpeed": 1.5, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-04T22:42:10.417Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 3.8, - "humidity": 70, - "windSpeed": 1.5, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-04T22:42:10.423Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 3.8, - "humidity": 70, - "windSpeed": 1.5, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-04T22:42:10.424Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 3.8, - "humidity": 70, - "windSpeed": 1.5, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-04T22:42:10.426Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "587ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:42:10.430Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "605ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:42:19.314Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T22:42:39.664Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "16ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:42:39.695Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:42:49.445Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T22:43:09.652Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:43:09.696Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:43:13.622Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:43:19.545Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T22:43:38.163Z] [WARN] ⚠️ 인증 실패: 유효하지 않은 토큰 - Context: { - "error": "jwt malformed", - "path": "/", - "ip": "::ffff:185.199.108.133" -} -[2026-02-04T22:43:38.166Z] [WARN] ⚠️ 유효하지 않은 토큰입니다 - Context: { - "code": "AUTHENTICATION_ERROR", - "url": "/api/attendance/daily-records?date=2026-01-06", - "method": "GET", - "user": "anonymous" -} -[2026-02-04T22:43:38.167Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/attendance/daily-records?date=2026-01-06", - "statusCode": 401, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-02-04T22:43:39.661Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:43:39.696Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:43:42.541Z] [WARN] ⚠️ 사용자명과 비밀번호를 입력해주세요. - Context: { - "code": "VALIDATION_ERROR", - "url": "/api/auth/login", - "method": "POST", - "user": "anonymous" -} -[2026-02-04T22:43:42.544Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 400, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-02-04T22:43:46.498Z] [WARN] ⚠️ 아이디 또는 비밀번호가 올바르지 않습니다. - Context: { - "code": "AUTHENTICATION_ERROR", - "url": "/api/auth/login", - "method": "POST", - "user": "anonymous" -} -[2026-02-04T22:43:46.500Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 401, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-02-04T22:43:49.658Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T22:43:50.633Z] [ERROR] ❌ Unexpected token ! in JSON at position 46 - Context: { - "code": "INTERNAL_ERROR", - "stack": "AppError: Unexpected token ! in JSON at position 46\n at errorHandler (/usr/src/app/middlewares/errorHandler.js:51:13)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:71:5)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/src/app/node_modules/express/lib/router/index.js:280:10)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:67:12)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)", - "url": "/api/auth/login", - "method": "POST", - "user": "anonymous" -} -[2026-02-04T22:43:53.787Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/daily-work-reports/work-types", - "method": "GET" -} -[2026-02-04T22:43:53.881Z] [WARN] ⚠️ 아이디 또는 비밀번호가 올바르지 않습니다. - Context: { - "code": "AUTHENTICATION_ERROR", - "url": "/api/auth/login", - "method": "POST", - "user": "anonymous" -} -[2026-02-04T22:43:53.883Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 401, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-02-04T22:43:57.702Z] [WARN] ⚠️ 인증 실패: Authorization 헤더 없음 - Context: { - "path": "/", - "method": "GET", - "ip": "::ffff:185.199.108.133" -} -[2026-02-04T22:43:57.704Z] [WARN] ⚠️ Authorization 헤더가 필요합니다 - Context: { - "code": "AUTHENTICATION_ERROR", - "url": "/api/daily-work-reports/work-types", - "method": "GET", - "user": "anonymous" -} -[2026-02-04T22:43:57.706Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 401, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-02-04T22:44:09.647Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:44:09.698Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:44:19.746Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T22:44:39.651Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:44:39.699Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:44:49.844Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T22:45:09.648Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:45:09.706Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:45:19.957Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T22:45:39.657Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:45:39.699Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:45:50.053Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T22:46:09.672Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:46:09.697Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:46:20.165Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T22:46:39.655Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:46:39.704Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:46:50.276Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T22:46:55.904Z] [INFO] ℹ️ 일일 근태 기록 조회 요청 - Context: { - "date": "2026-01-06", - "workerId": null -} -[2026-02-04T22:46:55.908Z] [INFO] ℹ️ 일일 근태 기록 조회 성공 - Context: { - "date": "2026-01-06", - "count": 0 -} -[2026-02-04T22:46:55.909Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/daily-records?date=2026-01-06", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "curl/8.7.1" -} -[2026-02-04T22:47:09.663Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:47:09.703Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:47:20.383Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T22:47:37.137Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000&department_id=1", - "statusCode": 200, - "duration": "20ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:47:37.244Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260205", - "baseTime": "0700", - "nx": 57, - "ny": 119 -} -[2026-02-04T22:47:37.252Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260205", - "baseTime": "0700", - "nx": 57, - "ny": 119 -} -[2026-02-04T22:47:37.255Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 200, - "duration": "27ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:47:37.264Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:47:37.269Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:47:37.279Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:47:37.286Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:47:37.464Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 3.7, - "humidity": 70, - "windSpeed": 1.5, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-04T22:47:37.470Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 3.7, - "humidity": 70, - "windSpeed": 1.5, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-04T22:47:37.474Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "224ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:47:37.511Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:47:37.516Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues/categories/type/nonconformity", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:47:37.530Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues/items", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:47:37.543Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:47:38.523Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 3.7, - "humidity": 70, - "windSpeed": 1.5, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-04T22:47:38.528Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 3.7, - "humidity": 70, - "windSpeed": 1.5, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-04T22:47:38.532Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "1291ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:47:47.835Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=11", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:47:50.484Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T22:47:50.588Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:47:59.080Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-02", - "worker": 10, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-04T22:47:59.101Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-04T22:47:59.102Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "25ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:47:59.113Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:48:07.066Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:48:07.122Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:48:20.580Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T22:48:37.061Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:48:37.117Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:48:50.662Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T22:48:56.132Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=11", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:48:58.015Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:49:06.868Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=11", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:49:07.075Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "22ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:49:07.115Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:49:09.764Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:49:17.288Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=11", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:49:19.345Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:49:20.758Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T22:49:30.054Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=11", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:49:31.633Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:49:37.070Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:49:37.118Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:49:40.045Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=11", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:49:41.965Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:49:48.733Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=11", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:49:50.606Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:49:50.840Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T22:49:57.847Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=11", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:49:59.458Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:50:06.356Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=11", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:50:07.058Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:50:07.123Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:50:08.352Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:50:13.273Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-02", - "worker": 9, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-04T22:50:13.286Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-04T22:50:13.287Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "16ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:50:13.303Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:50:20.932Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T22:50:36.806Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:50:36.992Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:50:37.797Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:50:43.741Z] [INFO] ℹ️ 프로젝트별-작업별 시간 분석 요청 - Context: { - "start": "2026-01-01", - "end": "2026-02-28" -} -[2026-02-04T22:50:43.749Z] [INFO] ℹ️ 작업자별 통계 조회 요청 - Context: { - "start": "2026-01-01", - "end": "2026-02-28" -} -[2026-02-04T22:50:43.751Z] [INFO] ℹ️ 프로젝트별-작업별 시간 분석 성공 - Context: { - "start": "2026-01-01", - "end": "2026-02-28", - "projectCount": 1, - "workTypeCount": 2, - "totalHours": 16 -} -[2026-02-04T22:50:43.752Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-analysis/project-worktype-analysis?start=2026-01-01&end=2026-02-28", - "statusCode": 200, - "duration": "17ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:50:43.754Z] [INFO] ℹ️ 작업자별 통계 조회 성공 - Context: { - "start": "2026-01-01", - "end": "2026-02-28", - "workerCount": 2 -} -[2026-02-04T22:50:43.755Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-analysis/worker-stats?start=2026-01-01&end=2026-02-28", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:50:43.764Z] [INFO] ℹ️ 최근 작업 현황 조회 요청 - Context: { - "start": "2026-01-01", - "end": "2026-02-28", - "limit": 2000 -} -[2026-02-04T22:50:43.767Z] [INFO] ℹ️ 최근 작업 현황 조회 성공 - Context: { - "start": "2026-01-01", - "end": "2026-02-28", - "limit": 2000, - "resultCount": 2 -} -[2026-02-04T22:50:43.768Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-analysis/recent-work?start=2026-01-01&end=2026-02-28&limit=2000", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:50:51.020Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T22:50:54.782Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000&department_id=1", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:50:54.877Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:50:55.003Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:50:55.013Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:50:55.016Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:50:55.018Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:50:55.022Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:50:55.026Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues/categories/type/nonconformity", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:50:55.034Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues/items", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:50:55.039Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:51:21.134Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T22:51:24.738Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:51:24.783Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:51:51.237Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T22:51:54.740Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:51:54.780Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:52:01.170Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=1", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:52:03.322Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:52:04.840Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:52:04.856Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:52:21.337Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T22:52:24.739Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:52:24.786Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:52:31.158Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/work-issues/items", - "statusCode": 201, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:52:31.166Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:52:31.175Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues/categories/type/nonconformity", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:52:31.184Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues/items", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:52:41.612Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-05", - "worker": 11, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-04T22:52:41.627Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-04T22:52:41.629Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "19ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:52:41.645Z] [INFO] ℹ️ 부적합 원인 저장 성공 - Context: { - "reportId": "1644", - "count": 1 -} -[2026-02-04T22:52:41.646Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "PUT", - "url": "/api/daily-work-reports/1644/defects", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:52:41.653Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:52:51.427Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T22:53:00.338Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:53:00.387Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:53:02.922Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=1", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:53:05.988Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:53:06.978Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:53:06.998Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:53:13.026Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-06", - "worker": 11, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-04T22:53:13.033Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-04T22:53:13.035Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:53:13.046Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:53:21.512Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T22:53:26.389Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=1", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:53:28.351Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:53:29.512Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:53:29.530Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:53:30.332Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:53:30.386Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:53:35.876Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-07", - "worker": 11, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-04T22:53:35.888Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-04T22:53:35.890Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "18ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:53:35.903Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:53:50.434Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=1", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:53:51.600Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T22:53:52.250Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:53:53.073Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:53:53.087Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:54:00.339Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:54:00.388Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:54:03.811Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-08", - "worker": 11, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-04T22:54:03.818Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-04T22:54:03.820Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:54:03.835Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:54:15.264Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=1", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:54:17.493Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:54:18.237Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:54:18.249Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:54:21.677Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T22:54:24.626Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-09", - "worker": 11, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-04T22:54:24.637Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-04T22:54:24.639Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "15ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:54:24.649Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:54:30.338Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:54:30.389Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:54:34.180Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-02-05", - "created_by_user_id": 1, - "requester": 1, - "isAdmin": false -} -[2026-02-04T22:54:34.187Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-02-04T22:54:34.189Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-02-05", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:54:37.975Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-09", - "created_by_user_id": 1, - "requester": 1, - "isAdmin": false -} -[2026-02-04T22:54:37.979Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 1 -} -[2026-02-04T22:54:37.981Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-09", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:54:39.727Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-08", - "created_by_user_id": 1, - "requester": 1, - "isAdmin": false -} -[2026-02-04T22:54:39.731Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 1 -} -[2026-02-04T22:54:39.733Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-08", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:54:40.310Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-07", - "created_by_user_id": 1, - "requester": 1, - "isAdmin": false -} -[2026-02-04T22:54:40.313Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 1 -} -[2026-02-04T22:54:40.315Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-07", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:54:40.823Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-06", - "created_by_user_id": 1, - "requester": 1, - "isAdmin": false -} -[2026-02-04T22:54:40.827Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 1 -} -[2026-02-04T22:54:40.828Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-06", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:54:41.553Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-05", - "created_by_user_id": 1, - "requester": 1, - "isAdmin": false -} -[2026-02-04T22:54:41.556Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 1 -} -[2026-02-04T22:54:41.557Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-05", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:54:42.321Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-02", - "created_by_user_id": 1, - "requester": 1, - "isAdmin": false -} -[2026-02-04T22:54:42.326Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 2 -} -[2026-02-04T22:54:42.329Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-02", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:54:50.252Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-05", - "created_by_user_id": 1, - "requester": 1, - "isAdmin": false -} -[2026-02-04T22:54:50.255Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 1 -} -[2026-02-04T22:54:50.257Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-05", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:54:51.229Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-07", - "created_by_user_id": 1, - "requester": 1, - "isAdmin": false -} -[2026-02-04T22:54:51.232Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 1 -} -[2026-02-04T22:54:51.234Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-07", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:54:51.706Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-08", - "created_by_user_id": 1, - "requester": 1, - "isAdmin": false -} -[2026-02-04T22:54:51.708Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 1 -} -[2026-02-04T22:54:51.709Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-08", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:54:51.759Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T22:54:55.266Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:55:00.336Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:55:00.392Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:55:21.860Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T22:55:30.344Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:55:30.393Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:55:44.091Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=1", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:55:45.636Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:55:46.712Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:55:46.726Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:55:51.945Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T22:55:52.465Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-12", - "worker": 11, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-04T22:55:52.477Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-04T22:55:52.479Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "16ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:55:52.490Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:56:00.339Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:56:00.392Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:56:09.821Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=1", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:56:11.723Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:56:12.551Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:56:12.566Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:56:20.652Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-13", - "worker": 11, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-04T22:56:20.666Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-04T22:56:20.667Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "17ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:56:20.681Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:56:22.040Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T22:56:24.385Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-02-05", - "created_by_user_id": 1, - "requester": 1, - "isAdmin": false -} -[2026-02-04T22:56:24.392Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-02-04T22:56:24.395Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-02-05", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:56:27.159Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-13", - "created_by_user_id": 1, - "requester": 1, - "isAdmin": false -} -[2026-02-04T22:56:27.162Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 1 -} -[2026-02-04T22:56:27.164Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-13", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:56:28.043Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-14", - "created_by_user_id": 1, - "requester": 1, - "isAdmin": false -} -[2026-02-04T22:56:28.048Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-02-04T22:56:28.050Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-14", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:56:29.235Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:56:30.338Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:56:30.399Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:56:39.609Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=1", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:56:43.116Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:56:44.066Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:56:44.079Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:56:50.562Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-14", - "worker": 11, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-04T22:56:50.568Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-04T22:56:50.570Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:56:50.580Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:56:52.125Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T22:57:00.339Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:57:00.395Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:57:01.438Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=1", - "statusCode": 200, - "duration": "15ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:57:03.277Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:57:04.180Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:57:04.192Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:57:09.731Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-15", - "worker": 11, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-04T22:57:09.741Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-04T22:57:09.743Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:57:09.748Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:57:20.596Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=1", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:57:22.228Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T22:57:22.733Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:57:23.622Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:57:23.648Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:57:29.291Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-16", - "worker": 11, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-04T22:57:29.304Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-04T22:57:29.308Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "18ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:57:29.316Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:57:30.337Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:57:30.395Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:57:52.340Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T22:58:00.342Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:58:00.396Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:58:10.128Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=3", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:58:13.039Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:58:14.473Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:58:14.485Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:58:20.405Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-19", - "worker": 11, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-04T22:58:20.417Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-04T22:58:20.419Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "16ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:58:20.430Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:58:22.430Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T22:58:30.336Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:58:30.392Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:58:41.255Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=3", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:58:43.619Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:58:44.398Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:58:44.411Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:58:49.227Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-20", - "worker": 11, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-04T22:58:49.239Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-04T22:58:49.241Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "16ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:58:49.252Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:58:51.105Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-02-05", - "created_by_user_id": 1, - "requester": 1, - "isAdmin": false -} -[2026-02-04T22:58:51.109Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-02-04T22:58:51.112Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-02-05", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:58:52.523Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T22:58:53.696Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-19", - "created_by_user_id": 1, - "requester": 1, - "isAdmin": false -} -[2026-02-04T22:58:53.699Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 1 -} -[2026-02-04T22:58:53.701Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-19", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:58:54.702Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-20", - "created_by_user_id": 1, - "requester": 1, - "isAdmin": false -} -[2026-02-04T22:58:54.704Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 1 -} -[2026-02-04T22:58:54.706Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-20", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:58:56.474Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-21", - "created_by_user_id": 1, - "requester": 1, - "isAdmin": false -} -[2026-02-04T22:58:56.477Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-02-04T22:58:56.478Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-21", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:58:57.189Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-20", - "created_by_user_id": 1, - "requester": 1, - "isAdmin": false -} -[2026-02-04T22:58:57.194Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 1 -} -[2026-02-04T22:58:57.196Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-20", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:59:00.341Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:59:00.402Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:59:22.670Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T22:59:30.363Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:59:30.393Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:59:52.780Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T22:59:56.123Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T22:59:58.093Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-02-05", - "created_by_user_id": 1, - "requester": 1, - "isAdmin": false -} -[2026-02-04T22:59:58.097Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-02-04T22:59:58.099Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-02-05", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:00:00.338Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:00:00.398Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:00:00.836Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-20", - "created_by_user_id": 1, - "requester": 1, - "isAdmin": false -} -[2026-02-04T23:00:00.844Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 1 -} -[2026-02-04T23:00:00.846Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-20", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:00:01.796Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-21", - "created_by_user_id": 1, - "requester": 1, - "isAdmin": false -} -[2026-02-04T23:00:01.800Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-02-04T23:00:01.801Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-21", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:00:02.999Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:00:16.516Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=3", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:00:19.195Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:00:20.147Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:00:20.158Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:00:22.898Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T23:00:27.128Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-21", - "worker": 11, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-04T23:00:27.141Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-04T23:00:27.147Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "21ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:00:27.159Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:00:30.337Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:00:30.394Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:00:41.546Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=1", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:00:43.497Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:00:44.316Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:00:44.328Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:00:50.088Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-22", - "worker": 11, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-04T23:00:50.101Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-04T23:00:50.103Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "18ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:00:50.111Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:00:52.992Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T23:00:59.685Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=3", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:01:00.342Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:01:00.398Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:01:01.890Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:01:02.716Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:01:02.733Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:01:12.876Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-23", - "worker": 11, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-04T23:01:12.885Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-04T23:01:12.887Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:01:12.898Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:01:14.776Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-02-05", - "created_by_user_id": 1, - "requester": 1, - "isAdmin": false -} -[2026-02-04T23:01:14.779Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-02-04T23:01:14.783Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-02-05", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:01:15.617Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:01:23.084Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T23:01:28.329Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=3", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:01:29.954Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:01:30.337Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:01:30.397Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:01:30.736Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:01:30.754Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:01:35.931Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-26", - "worker": 11, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-04T23:01:35.945Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-04T23:01:35.947Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "17ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:01:35.958Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:01:44.687Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-02-05", - "created_by_user_id": 1, - "requester": 1, - "isAdmin": false -} -[2026-02-04T23:01:44.690Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-02-04T23:01:44.692Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-02-05", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:01:47.161Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-26", - "created_by_user_id": 1, - "requester": 1, - "isAdmin": false -} -[2026-02-04T23:01:47.164Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 1 -} -[2026-02-04T23:01:47.166Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-26", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:01:48.299Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-27", - "created_by_user_id": 1, - "requester": 1, - "isAdmin": false -} -[2026-02-04T23:01:48.302Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-02-04T23:01:48.304Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-27", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:01:48.974Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-26", - "created_by_user_id": 1, - "requester": 1, - "isAdmin": false -} -[2026-02-04T23:01:48.978Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 1 -} -[2026-02-04T23:01:48.980Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-26", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:01:50.629Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:01:53.171Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T23:02:00.164Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=3", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:02:00.341Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:02:00.392Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:02:01.940Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:02:03.024Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:02:03.037Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:02:09.229Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-27", - "worker": 11, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-04T23:02:09.241Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-04T23:02:09.243Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "15ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:02:09.250Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:02:21.165Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=3", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:02:23.148Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:02:23.251Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T23:02:23.973Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:02:23.985Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:02:29.918Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-29", - "worker": 11, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-04T23:02:29.932Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-04T23:02:29.933Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "17ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:02:29.943Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:02:30.342Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:02:30.398Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:02:32.014Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-02-05", - "created_by_user_id": 1, - "requester": 1, - "isAdmin": false -} -[2026-02-04T23:02:32.018Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-02-04T23:02:32.021Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-02-05", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:02:34.263Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-28", - "created_by_user_id": 1, - "requester": 1, - "isAdmin": false -} -[2026-02-04T23:02:34.266Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-02-04T23:02:34.267Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-28", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:02:34.876Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-27", - "created_by_user_id": 1, - "requester": 1, - "isAdmin": false -} -[2026-02-04T23:02:34.880Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 1 -} -[2026-02-04T23:02:34.883Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-27", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:02:35.873Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-29", - "created_by_user_id": 1, - "requester": 1, - "isAdmin": false -} -[2026-02-04T23:02:35.878Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 1 -} -[2026-02-04T23:02:35.880Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-29", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:02:37.438Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-28", - "created_by_user_id": 1, - "requester": 1, - "isAdmin": false -} -[2026-02-04T23:02:37.443Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-02-04T23:02:37.444Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-28", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:02:38.016Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-30", - "created_by_user_id": 1, - "requester": 1, - "isAdmin": false -} -[2026-02-04T23:02:38.020Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-02-04T23:02:38.022Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-30", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:02:38.999Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:02:50.414Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=3", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:02:52.111Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:02:52.898Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:02:52.910Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:02:53.351Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T23:02:58.384Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-28", - "worker": 11, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-04T23:02:58.397Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-04T23:02:58.398Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "16ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:02:58.405Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:03:00.346Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:03:00.398Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:03:08.748Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=3", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:03:10.323Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:03:11.199Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:03:11.211Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:03:16.159Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-30", - "worker": 11, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-04T23:03:16.167Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-04T23:03:16.169Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:03:16.180Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:03:21.846Z] [INFO] ℹ️ 출근 체크 목록 조회 요청 - Context: { - "date": "2026-01-06" -} -[2026-02-04T23:03:21.849Z] [INFO] ℹ️ 출근 체크 목록 조회 성공 - Context: { - "date": "2026-01-06", - "count": 10 -} -[2026-02-04T23:03:21.851Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/checkin-list?date=2026-01-06", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "curl/8.7.1" -} -[2026-02-04T23:03:23.445Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T23:03:30.358Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:03:30.401Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:03:50.669Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=11", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:03:52.731Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:03:53.519Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T23:03:55.969Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-02", - "worker": 6, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-04T23:03:55.982Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-04T23:03:55.983Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "17ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:03:55.993Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:04:00.352Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:04:00.402Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:04:23.588Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T23:04:30.355Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:04:30.403Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:04:34.723Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=3", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:04:37.668Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:04:38.483Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:04:38.497Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:04:43.458Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-05", - "worker": 6, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-04T23:04:43.470Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-04T23:04:43.471Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "15ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:04:43.479Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:04:53.667Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T23:05:00.354Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:05:00.396Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:05:00.555Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2026-02-04T23:05:03.901Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=3", - "statusCode": 200, - "duration": "43ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:05:06.473Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:05:07.393Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:05:07.407Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:05:12.022Z] [INFO] ℹ️ Rate Limiting 설정 완료 -[2026-02-04T23:05:12.022Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-02-04T23:05:12.124Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-02-04T23:05:12.223Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2026-02-04T23:05:12.232Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-02-04T23:05:15.827Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-06", - "worker": 6, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-04T23:05:15.837Z] [INFO] ℹ️ MariaDB 연결 성공 - Context: { - "connection": "db:3306", - "database": "hyungi", - "connectionLimit": 10 -} -[2026-02-04T23:05:15.849Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-04T23:05:15.852Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "29ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:05:15.861Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:05:16.861Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T23:05:23.886Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-02-05", - "created_by_user_id": 1, - "requester": 1, - "isAdmin": false -} -[2026-02-04T23:05:23.891Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-02-04T23:05:23.892Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-02-05", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:05:26.616Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-10", - "created_by_user_id": 1, - "requester": 1, - "isAdmin": false -} -[2026-02-04T23:05:26.620Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-02-04T23:05:26.622Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-10", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:05:29.799Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-06", - "created_by_user_id": 1, - "requester": 1, - "isAdmin": false -} -[2026-02-04T23:05:29.804Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 2 -} -[2026-02-04T23:05:29.807Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-06", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:05:30.357Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:05:30.386Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-07", - "created_by_user_id": 1, - "requester": 1, - "isAdmin": false -} -[2026-02-04T23:05:30.388Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 1 -} -[2026-02-04T23:05:30.389Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-07", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:05:30.401Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:05:33.050Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-06", - "created_by_user_id": 1, - "requester": 1, - "isAdmin": false -} -[2026-02-04T23:05:33.053Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 2 -} -[2026-02-04T23:05:33.055Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-06", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:05:37.869Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-07", - "created_by_user_id": 1, - "requester": 1, - "isAdmin": false -} -[2026-02-04T23:05:37.874Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 1 -} -[2026-02-04T23:05:37.877Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-07", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:05:38.473Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-08", - "created_by_user_id": 1, - "requester": 1, - "isAdmin": false -} -[2026-02-04T23:05:38.480Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 1 -} -[2026-02-04T23:05:38.483Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-08", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:05:38.831Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-09", - "created_by_user_id": 1, - "requester": 1, - "isAdmin": false -} -[2026-02-04T23:05:38.835Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 1 -} -[2026-02-04T23:05:38.837Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-09", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:05:39.980Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:05:46.974Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T23:05:51.674Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=3", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:05:53.842Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:05:54.689Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:05:54.712Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:05:59.602Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-07", - "worker": 6, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-04T23:05:59.614Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-04T23:05:59.615Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "15ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:05:59.625Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:06:00.343Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:06:00.398Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:06:12.164Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-02-05", - "created_by_user_id": 1, - "requester": 1, - "isAdmin": false -} -[2026-02-04T23:06:12.169Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-02-04T23:06:12.171Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-02-05", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:06:14.734Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-07", - "created_by_user_id": 1, - "requester": 1, - "isAdmin": false -} -[2026-02-04T23:06:14.738Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 2 -} -[2026-02-04T23:06:14.740Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-07", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:06:15.215Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-08", - "created_by_user_id": 1, - "requester": 1, - "isAdmin": false -} -[2026-02-04T23:06:15.218Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 1 -} -[2026-02-04T23:06:15.220Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-08", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:06:16.040Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-09", - "created_by_user_id": 1, - "requester": 1, - "isAdmin": false -} -[2026-02-04T23:06:16.043Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 1 -} -[2026-02-04T23:06:16.045Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-09", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:06:16.994Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:06:17.070Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T23:06:29.992Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=3", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:06:30.349Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:06:30.402Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:06:31.823Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:06:33.133Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:06:33.143Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:06:37.640Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-08", - "worker": 6, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-04T23:06:37.659Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-04T23:06:37.660Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "23ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:06:37.671Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:06:47.154Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T23:06:48.548Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=3", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:06:50.890Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:06:51.928Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:06:51.939Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:06:56.983Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-09", - "worker": 6, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-04T23:06:56.996Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-04T23:06:56.997Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "16ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:06:57.006Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:07:00.347Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:07:00.399Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:07:17.235Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T23:07:28.327Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=2", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:07:30.352Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:07:30.402Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:07:32.161Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:07:32.987Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:07:32.997Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:07:38.784Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-12", - "worker": 6, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-04T23:07:38.798Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-04T23:07:38.801Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "20ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:07:38.817Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:07:47.337Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T23:07:53.005Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=2", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:07:54.841Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:07:55.987Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "29ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:07:55.996Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:08:00.346Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:08:00.397Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:08:01.015Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-13", - "worker": 6, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-04T23:08:01.029Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-04T23:08:01.031Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "17ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:08:01.040Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:08:13.601Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=2", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:08:15.734Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:08:16.437Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:08:16.451Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:08:17.437Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T23:08:22.299Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-14", - "worker": 6, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-04T23:08:22.308Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-04T23:08:22.310Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:08:22.323Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:08:30.361Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:08:30.404Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:08:35.157Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=2", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:08:38.894Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:08:39.765Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:08:39.779Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:08:47.531Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T23:08:56.640Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-15", - "worker": 6, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-04T23:08:56.648Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-04T23:08:56.649Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:08:56.661Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:09:00.346Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:09:00.436Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:09:17.652Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T23:09:30.372Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:09:30.402Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:09:47.748Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T23:10:00.353Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:10:00.399Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:10:17.907Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T23:10:30.376Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "15ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:10:30.403Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:10:48.079Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T23:11:00.360Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:11:00.399Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:11:18.187Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T23:11:30.359Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:11:30.412Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:11:48.279Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T23:12:00.354Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:12:00.402Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:12:17.560Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000&department_id=1", - "statusCode": 200, - "duration": "23ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:12:17.792Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260205", - "baseTime": "0800", - "nx": 57, - "ny": 119 -} -[2026-02-04T23:12:17.833Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260205", - "baseTime": "0800", - "nx": 57, - "ny": 119 -} -[2026-02-04T23:12:17.851Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:12:17.855Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 200, - "duration": "142ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:12:17.863Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:12:17.868Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:12:17.880Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:12:17.930Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:12:17.936Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues/categories/type/nonconformity", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:12:17.946Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues/items", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:12:17.953Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:12:17.983Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 3.8, - "humidity": 70, - "windSpeed": 2.1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-04T23:12:17.984Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 3.8, - "humidity": 70, - "windSpeed": 2.1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-04T23:12:17.987Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 3.8, - "humidity": 70, - "windSpeed": 2.1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-04T23:12:17.987Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 3.8, - "humidity": 70, - "windSpeed": 2.1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-04T23:12:17.988Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "272ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:12:17.989Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "158ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:12:18.405Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T23:12:47.502Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:12:47.528Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:12:48.508Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T23:12:59.153Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=2", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:13:02.694Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:13:03.521Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:13:03.539Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:13:15.267Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=11", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:13:17.488Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:13:17.530Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:13:17.975Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:13:18.615Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T23:13:47.495Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:13:47.531Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:13:48.700Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T23:14:17.519Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:14:17.529Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:14:18.813Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T23:14:29.484Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=2", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:14:34.036Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:14:34.722Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:14:34.747Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "15ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:14:47.494Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:14:47.535Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:14:48.912Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T23:15:15.087Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/work-issues/categories", - "statusCode": 201, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:15:15.363Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 200, - "duration": "15ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:15:15.380Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues/categories/type/nonconformity", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:15:15.401Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues/items", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:15:19.055Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T23:15:37.356Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/work-issues/categories", - "statusCode": 201, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:15:37.437Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:15:37.444Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues/categories/type/nonconformity", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:15:37.452Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues/items", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:15:46.908Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/work-issues/items", - "statusCode": 201, - "duration": "19ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:15:46.915Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:15:46.921Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues/categories/type/nonconformity", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:15:46.933Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues/items", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:15:49.135Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T23:15:56.948Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:15:56.983Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:16:01.347Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:16:02.257Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "35ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:16:02.276Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:16:10.254Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=2", - "statusCode": 200, - "duration": "15ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:16:19.272Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T23:16:26.946Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:16:26.991Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:16:27.393Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=2", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:16:29.545Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:16:30.401Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "17ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:16:30.416Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:16:48.154Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=2", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:16:49.361Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T23:16:50.752Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:16:51.888Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:16:51.905Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:16:56.947Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:16:56.988Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:17:19.478Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T23:17:26.957Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:17:26.990Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:17:49.582Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T23:17:56.960Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:17:56.989Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:18:19.669Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T23:18:26.949Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:18:26.991Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:18:49.777Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T23:19:05.881Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/work-issues/items", - "statusCode": 201, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:19:05.887Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:19:05.893Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues/categories/type/nonconformity", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:19:05.906Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues/items", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:19:19.875Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T23:19:24.675Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:19:24.707Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:19:30.727Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=2", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:19:35.289Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:19:36.066Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:19:36.082Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:19:49.964Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T23:19:54.673Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:19:54.710Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:19:54.962Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=2", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:19:57.981Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:19:59.045Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:19:59.059Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:20:20.063Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T23:20:24.681Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:20:24.712Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:20:36.018Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=2", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:20:50.168Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T23:20:52.980Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=3", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:20:54.670Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:20:54.714Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:21:07.395Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=3", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:21:15.204Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=3", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:21:20.256Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T23:21:23.572Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=3", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:21:24.667Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:21:24.710Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:21:50.355Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T23:21:54.675Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:21:54.717Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:22:08.571Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=2", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:22:10.480Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=3", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:22:15.459Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:22:16.366Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:22:16.378Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:22:19.343Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:22:19.944Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:22:19.957Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:22:20.430Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T23:22:24.396Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:22:24.669Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:22:24.712Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:22:25.094Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:22:25.102Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:22:29.064Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:22:29.685Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:22:29.696Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:22:33.052Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:22:34.197Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:22:34.209Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:22:50.519Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T23:22:54.604Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-16", - "worker": 6, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-04T23:22:54.617Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-04T23:22:54.619Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "18ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:22:54.625Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-16", - "worker": 6, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-04T23:22:54.631Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-04T23:22:54.632Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:22:54.637Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-19", - "worker": 6, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-04T23:22:54.641Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-04T23:22:54.642Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:22:54.652Z] [INFO] ℹ️ 부적합 원인 저장 성공 - Context: { - "reportId": "1676", - "count": 1 -} -[2026-02-04T23:22:54.653Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "PUT", - "url": "/api/daily-work-reports/1676/defects", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:22:54.659Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-19", - "worker": 6, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-04T23:22:54.667Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-04T23:22:54.669Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:22:54.676Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-20", - "worker": 6, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-04T23:22:54.679Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-04T23:22:54.680Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:22:54.685Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-21", - "worker": 6, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-04T23:22:54.686Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-04T23:22:54.687Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:22:54.694Z] [INFO] ℹ️ 부적합 원인 저장 성공 - Context: { - "reportId": "1679", - "count": 1 -} -[2026-02-04T23:22:54.694Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "PUT", - "url": "/api/daily-work-reports/1679/defects", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:22:54.700Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-22", - "worker": 6, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-04T23:22:54.702Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-04T23:22:54.703Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:22:54.707Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-23", - "worker": 6, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-04T23:22:54.709Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-04T23:22:54.710Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:22:54.714Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-26", - "worker": 6, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-04T23:22:54.716Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-04T23:22:54.717Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:22:54.720Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-27", - "worker": 6, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-04T23:22:54.722Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-04T23:22:54.723Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:22:54.727Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-28", - "worker": 6, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-04T23:22:54.730Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-04T23:22:54.730Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:22:54.734Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-29", - "worker": 6, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-04T23:22:54.736Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-04T23:22:54.736Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:22:54.740Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-30", - "worker": 6, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-04T23:22:54.742Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-04T23:22:54.742Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:22:56.040Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:22:56.084Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:22:57.494Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-02-05", - "created_by_user_id": 1, - "requester": 1, - "isAdmin": false -} -[2026-02-04T23:22:57.498Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-02-04T23:22:57.499Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-02-05", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:23:00.277Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-30", - "created_by_user_id": 1, - "requester": 1, - "isAdmin": false -} -[2026-02-04T23:23:00.279Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 2 -} -[2026-02-04T23:23:00.279Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-30", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:23:20.615Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T23:23:26.051Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:23:26.088Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:23:39.859Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:23:50.742Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T23:23:56.056Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:23:56.083Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:24:00.794Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=11", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:24:02.384Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:24:19.096Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=11", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:24:20.836Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T23:24:20.966Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:24:26.043Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:24:26.087Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:24:39.423Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=1", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:24:41.305Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:24:42.908Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:24:42.923Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:24:50.954Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T23:24:56.043Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:24:56.083Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:25:07.107Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=1", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:25:09.283Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:25:10.712Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:25:10.725Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:25:21.047Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T23:25:26.050Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:25:26.089Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:25:29.192Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=1", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:25:31.199Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:25:32.086Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:25:32.100Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:25:51.129Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T23:25:56.053Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:25:56.090Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:26:00.106Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=1", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:26:02.857Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:26:03.592Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:26:03.604Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:26:21.226Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T23:26:26.061Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:26:26.091Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:26:37.939Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=3", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:26:41.988Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:26:42.984Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:26:42.997Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:26:51.326Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T23:26:56.057Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:26:56.086Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:26:58.721Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=3", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:27:00.645Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:27:01.359Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:27:01.367Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:27:15.944Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=3", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:27:17.827Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:27:18.499Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:27:18.520Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:27:21.429Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T23:27:26.052Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:27:26.089Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:27:34.551Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=3", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:27:36.751Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:27:37.433Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:27:37.448Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:27:51.529Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T23:27:56.054Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:27:56.090Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:28:00.851Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=3", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:28:02.568Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:28:03.139Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:28:03.153Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:28:20.825Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=11", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:28:21.626Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T23:28:23.132Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:28:24.092Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:28:24.115Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:28:26.048Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:28:26.091Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:28:27.259Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:28:51.718Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T23:28:56.052Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:28:56.088Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:29:01.577Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=2", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:29:08.581Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:29:09.381Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:29:09.398Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:29:21.807Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T23:29:26.057Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:29:26.092Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:29:26.651Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=2", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:29:30.126Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:29:30.850Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:29:30.864Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:29:47.340Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=2", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:29:49.329Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:29:50.034Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:29:50.047Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:29:51.905Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T23:29:56.047Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:29:56.087Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:30:11.373Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=2", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:30:13.414Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:30:14.171Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:30:14.180Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:30:21.998Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T23:30:26.064Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:30:26.094Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:30:32.163Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=2", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:30:34.135Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:30:35.148Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:30:35.164Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:30:51.662Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=3", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:30:52.105Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T23:30:56.051Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:30:56.090Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:31:00.437Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:31:01.221Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:31:01.238Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:31:22.226Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T23:31:25.258Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=3", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:31:26.054Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:31:26.098Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:31:26.753Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:31:27.909Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:31:27.927Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:31:52.328Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T23:31:56.057Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:31:56.103Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:32:04.958Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=3", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:32:06.049Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=3", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:32:07.331Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=3", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:32:12.655Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:32:13.424Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:32:13.444Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:32:17.566Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:32:18.208Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:32:18.222Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:32:21.955Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:32:22.429Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T23:32:22.775Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:32:22.788Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:32:26.058Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:32:26.102Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:32:29.740Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:32:30.658Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:32:30.675Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:32:37.520Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:32:38.316Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:32:38.419Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:32:52.526Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T23:32:56.065Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:32:56.097Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:33:22.648Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "6ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T23:33:26.068Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:33:26.096Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:33:52.772Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "5ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T23:33:56.068Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:33:56.098Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:34:05.598Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-02", - "worker": 3, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-04T23:34:05.610Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-04T23:34:05.611Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "15ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:34:05.618Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-05", - "worker": 3, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-04T23:34:05.623Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-04T23:34:05.625Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:34:05.636Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-06", - "worker": 3, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-04T23:34:05.640Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-04T23:34:05.641Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:34:05.647Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-07", - "worker": 3, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-04T23:34:05.652Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-04T23:34:05.653Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:34:05.659Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-08", - "worker": 3, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-04T23:34:05.662Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-04T23:34:05.663Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:34:05.668Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-09", - "worker": 3, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-04T23:34:05.671Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-04T23:34:05.672Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:34:05.677Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-12", - "worker": 3, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-04T23:34:05.679Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-04T23:34:05.680Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:34:05.688Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-13", - "worker": 3, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-04T23:34:05.691Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-04T23:34:05.692Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:34:05.695Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-14", - "worker": 3, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-04T23:34:05.697Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-04T23:34:05.698Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:34:05.702Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-15", - "worker": 3, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-04T23:34:05.705Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-04T23:34:05.706Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:34:05.710Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-16", - "worker": 3, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-04T23:34:05.712Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-04T23:34:05.713Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:34:05.716Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-16", - "worker": 3, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-04T23:34:05.720Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-04T23:34:05.721Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:34:05.728Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-19", - "worker": 3, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-04T23:34:05.730Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-04T23:34:05.731Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:34:22.864Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T23:34:52.999Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T23:35:23.101Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T23:35:28.833Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "15ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:35:28.862Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:35:53.244Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T23:35:58.848Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:35:58.860Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:36:23.340Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T23:36:28.822Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:36:28.862Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:36:37.067Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-20", - "worker": 3, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-04T23:36:37.080Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-04T23:36:37.083Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "21ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:36:37.131Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-21", - "worker": 3, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-04T23:36:37.134Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-04T23:36:37.139Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:36:37.148Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-22", - "worker": 3, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-04T23:36:37.153Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-04T23:36:37.154Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:36:37.161Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-23", - "worker": 3, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-04T23:36:37.164Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-04T23:36:37.165Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:36:37.180Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-26", - "worker": 3, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-04T23:36:37.197Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-04T23:36:37.200Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "23ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:36:37.209Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-27", - "worker": 3, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-04T23:36:37.220Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-04T23:36:37.222Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "15ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:36:37.229Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-28", - "worker": 3, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-04T23:36:37.235Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-04T23:36:37.236Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:36:37.248Z] [INFO] ℹ️ 부적합 원인 저장 성공 - Context: { - "reportId": "1706", - "count": 1 -} -[2026-02-04T23:36:37.249Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "PUT", - "url": "/api/daily-work-reports/1706/defects", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:36:37.254Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-29", - "worker": 3, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-04T23:36:37.259Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-04T23:36:37.260Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:36:37.267Z] [INFO] ℹ️ 부적합 원인 저장 성공 - Context: { - "reportId": "1707", - "count": 1 -} -[2026-02-04T23:36:37.268Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "PUT", - "url": "/api/daily-work-reports/1707/defects", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:36:37.271Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-30", - "worker": 3, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-04T23:36:37.274Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-04T23:36:37.275Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:36:37.285Z] [INFO] ℹ️ 부적합 원인 저장 성공 - Context: { - "reportId": "1708", - "count": 1 -} -[2026-02-04T23:36:37.286Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "PUT", - "url": "/api/daily-work-reports/1708/defects", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:36:51.526Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-02-05", - "created_by_user_id": 1, - "requester": 1, - "isAdmin": false -} -[2026-02-04T23:36:51.531Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-02-04T23:36:51.533Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-02-05", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:36:53.492Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T23:36:54.152Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-02", - "created_by_user_id": 1, - "requester": 1, - "isAdmin": false -} -[2026-02-04T23:36:54.155Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 4 -} -[2026-02-04T23:36:54.162Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-02", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:37:00.063Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:37:00.101Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:37:01.338Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-05", - "created_by_user_id": 1, - "requester": 1, - "isAdmin": false -} -[2026-02-04T23:37:01.342Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 3 -} -[2026-02-04T23:37:01.345Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-05", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:37:07.057Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:37:23.601Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T23:37:30.061Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:37:30.101Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:37:53.729Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T23:38:00.068Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:38:00.097Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:38:11.044Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=1", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:38:12.615Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=1", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:38:14.149Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=1", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:38:15.612Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=1", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:38:18.127Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=1", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:38:23.821Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T23:38:30.065Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:38:30.101Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:38:53.900Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T23:39:00.063Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:39:00.100Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:39:23.986Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T23:39:27.263Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=2", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:39:30.067Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:39:30.099Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:39:37.069Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=1", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:39:39.777Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=1", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:39:46.132Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=1", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:39:50.771Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=1", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:39:54.077Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T23:40:00.071Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:40:00.102Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:40:08.150Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=2", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:40:24.179Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T23:40:30.067Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:40:30.102Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:40:39.682Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:40:41.137Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:40:41.150Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:40:45.855Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:40:46.679Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:40:46.689Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:40:49.990Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:40:50.784Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:40:50.794Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:40:54.262Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T23:40:55.135Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:40:56.335Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:40:56.348Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:41:00.075Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:41:00.102Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:41:00.376Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:41:01.019Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:41:01.030Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:41:05.692Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:41:06.270Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:41:06.301Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "23ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:41:10.190Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:41:10.872Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:41:10.885Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:41:19.112Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:41:19.860Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:41:19.875Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:41:24.242Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:41:24.368Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T23:41:25.146Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:41:25.158Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:41:29.112Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:41:29.922Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:41:29.942Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:41:30.066Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:41:30.101Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:41:36.061Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:41:36.716Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:41:36.724Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:41:41.047Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:41:41.821Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:41:41.834Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:41:46.346Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:41:47.355Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:41:47.375Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:41:50.986Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:41:51.763Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:41:51.775Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:41:54.466Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T23:42:00.068Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:42:00.104Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:42:24.562Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T23:42:30.094Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:42:30.104Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:42:46.265Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=2", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:42:48.655Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:42:49.341Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:42:49.351Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:42:54.655Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T23:43:00.077Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:43:00.103Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:43:07.118Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=2", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:43:08.835Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:43:09.635Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:43:09.652Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:43:24.753Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T23:43:25.766Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=2", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:43:28.160Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:43:28.858Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:43:28.869Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:43:30.070Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:43:30.104Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:43:45.300Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=2", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:43:47.401Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:43:48.151Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:43:48.167Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:43:54.837Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T23:44:00.067Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:44:00.105Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:44:16.686Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=11", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:44:18.652Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:44:24.955Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T23:44:26.420Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-05", - "worker": 10, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-04T23:44:26.435Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-04T23:44:26.436Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "18ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:44:26.445Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-06", - "worker": 10, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-04T23:44:26.449Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-04T23:44:26.450Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:44:26.456Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-07", - "worker": 10, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-04T23:44:26.460Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-04T23:44:26.461Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:44:26.468Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-08", - "worker": 10, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-04T23:44:26.471Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-04T23:44:26.473Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:44:26.479Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-09", - "worker": 10, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-04T23:44:26.482Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-04T23:44:26.483Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:44:26.492Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-12", - "worker": 10, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-04T23:44:26.497Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-04T23:44:26.498Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:44:26.503Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-13", - "worker": 10, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-04T23:44:26.507Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-04T23:44:26.508Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:44:26.515Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-14", - "worker": 10, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-04T23:44:26.517Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-04T23:44:26.518Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:44:26.522Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-15", - "worker": 10, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-04T23:44:26.525Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-04T23:44:26.525Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:44:26.533Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-16", - "worker": 10, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-04T23:44:26.535Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-04T23:44:26.535Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:44:26.539Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-19", - "worker": 10, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-04T23:44:26.541Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-04T23:44:26.542Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:44:26.549Z] [INFO] ℹ️ 부적합 원인 저장 성공 - Context: { - "reportId": "1719", - "count": 1 -} -[2026-02-04T23:44:26.550Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "PUT", - "url": "/api/daily-work-reports/1719/defects", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:44:26.554Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-20", - "worker": 10, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-04T23:44:26.557Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-04T23:44:26.557Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:44:26.562Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-21", - "worker": 10, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-04T23:44:26.564Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-04T23:44:26.564Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:44:26.568Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-22", - "worker": 10, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-04T23:44:26.571Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-04T23:44:26.571Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:44:26.575Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-22", - "worker": 10, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-04T23:44:26.577Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-04T23:44:26.577Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:44:26.581Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-23", - "worker": 10, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-04T23:44:26.584Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-04T23:44:26.584Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:44:31.883Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:44:31.915Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:44:55.052Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T23:45:01.890Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:45:01.913Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:45:18.543Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=12", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:45:20.477Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=12", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:45:22.216Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=12", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:45:23.428Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=12", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:45:25.147Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T23:45:25.544Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=12", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:45:28.437Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:45:29.446Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:45:29.459Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:45:31.879Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:45:31.919Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:45:32.508Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:45:33.220Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:45:33.235Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:45:36.813Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:45:37.665Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:45:37.677Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:45:42.662Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:45:43.325Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:45:43.339Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:45:46.488Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:45:47.089Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:45:47.099Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:45:55.239Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T23:46:01.885Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:46:01.917Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:46:17.245Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:46:25.395Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T23:46:38.009Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 200, - "duration": "92ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:46:38.792Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:46:38.835Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:46:38.838Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260205", - "baseTime": "0800", - "nx": 57, - "ny": 119 -} -[2026-02-04T23:46:38.863Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:46:38.877Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-05", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:46:38.890Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:46:38.906Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/moved/list", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:46:38.938Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:46:39.042Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 3.9, - "humidity": 69, - "windSpeed": 1.5, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-04T23:46:39.044Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 3.9, - "humidity": 69, - "windSpeed": 1.5, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-04T23:46:39.045Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "209ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:46:39.778Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:46:43.654Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:46:43.658Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:46:43.844Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:46:55.505Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T23:47:01.989Z] [INFO] ℹ️ 작업 생성 요청 - Context: { - "name": "설비제작" -} -[2026-02-04T23:47:01.992Z] [INFO] ℹ️ 작업 생성 성공 - Context: { - "task_id": 25 -} -[2026-02-04T23:47:01.994Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/tasks", - "statusCode": 201, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:47:02.008Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:47:02.010Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:47:03.344Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:47:03.346Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:47:07.315Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=2", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:47:08.804Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=12", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:47:11.429Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=2", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:47:12.384Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=12", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:47:13.871Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:47:15.400Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=2", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:47:16.663Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=12", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:47:19.691Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=2", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:47:20.736Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=12", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:47:23.092Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=2", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:47:24.178Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=12", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:47:25.597Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T23:47:27.869Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-26", - "worker": 10, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-04T23:47:27.881Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-04T23:47:27.883Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "16ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:47:27.888Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-27", - "worker": 10, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-04T23:47:27.891Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-04T23:47:27.892Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:47:55.708Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T23:48:25.825Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T23:48:55.953Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T23:49:26.079Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T23:49:56.193Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T23:50:26.285Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T23:50:37.420Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2026-02-04T23:50:37.426Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-02-04T23:50:38.785Z] [INFO] ℹ️ Rate Limiting 설정 완료 -[2026-02-04T23:50:38.785Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-02-04T23:50:38.869Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-02-04T23:50:38.985Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2026-02-04T23:50:38.995Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-02-04T23:50:43.941Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "6ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T23:50:51.065Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-28", - "worker": 10, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-04T23:50:51.089Z] [INFO] ℹ️ MariaDB 연결 성공 - Context: { - "connection": "db:3306", - "database": "hyungi", - "connectionLimit": 10 -} -[2026-02-04T23:50:51.119Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-04T23:50:51.120Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "59ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:50:51.128Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-29", - "worker": 10, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-04T23:50:51.143Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-04T23:50:51.144Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "17ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:50:51.164Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-30", - "worker": 10, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-04T23:50:51.169Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-04T23:50:51.170Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:50:59.583Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-02-05", - "created_by_user_id": 1, - "requester": 1, - "isAdmin": false -} -[2026-02-04T23:50:59.590Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-02-04T23:50:59.592Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-02-05", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:51:03.929Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-02", - "created_by_user_id": 1, - "requester": 1, - "isAdmin": false -} -[2026-02-04T23:51:03.934Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 4 -} -[2026-02-04T23:51:03.940Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-02", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:51:07.868Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:51:09.280Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-02-05", - "created_by_user_id": 1, - "requester": 1, - "isAdmin": false -} -[2026-02-04T23:51:09.283Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-02-04T23:51:09.284Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-02-05", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:51:09.744Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:51:09.746Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:51:12.506Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-05", - "created_by_user_id": 1, - "requester": 1, - "isAdmin": false -} -[2026-02-04T23:51:12.510Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 4 -} -[2026-02-04T23:51:12.513Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-05", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:51:14.028Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T23:51:16.533Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:51:21.338Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000&department_id=1", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:51:21.546Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260205", - "baseTime": "0800", - "nx": 57, - "ny": 119 -} -[2026-02-04T23:51:21.579Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "80ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:51:21.582Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260205", - "baseTime": "0800", - "nx": 57, - "ny": 119 -} -[2026-02-04T23:51:21.585Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 200, - "duration": "99ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:51:21.590Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:51:21.593Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:51:21.599Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:51:21.604Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:51:21.610Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues/categories/type/nonconformity", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:51:21.624Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues/items", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:51:21.631Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:51:21.783Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 3.9, - "humidity": 69, - "windSpeed": 1.5, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-04T23:51:21.786Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 3.9, - "humidity": 69, - "windSpeed": 1.5, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-04T23:51:21.789Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "209ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:51:23.110Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 3.9, - "humidity": 69, - "windSpeed": 1.5, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-04T23:51:23.114Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 3.9, - "humidity": 69, - "windSpeed": 1.5, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-04T23:51:23.118Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "1616ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:51:39.592Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=11", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:51:41.586Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:51:44.111Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T23:51:51.284Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:51:51.321Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:51:54.159Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=11", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:51:55.406Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:52:09.514Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=11", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:52:12.509Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:52:14.209Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T23:52:21.293Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:52:21.318Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:52:27.059Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=11", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:52:28.920Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:52:41.365Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=11", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:52:42.824Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:52:44.305Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T23:52:51.293Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:52:51.318Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:53:08.330Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=11", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:53:09.957Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:53:14.409Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T23:53:21.288Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:53:21.322Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:53:24.861Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=11", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:53:27.050Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:53:40.723Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=11", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:53:42.359Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:53:44.486Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T23:53:51.286Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:53:51.325Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:53:54.896Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=11", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:53:56.610Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:54:14.585Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T23:54:17.776Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=11", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:54:19.385Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:54:21.281Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:54:21.323Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:54:34.804Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=11", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:54:36.673Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:54:44.673Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T23:54:51.296Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:54:51.318Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:54:55.003Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-05", - "worker": 9, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-04T23:54:55.016Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-04T23:54:55.017Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "17ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:54:56.029Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-06", - "worker": 9, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-04T23:54:56.038Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-04T23:54:56.043Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "16ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:54:57.055Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-07", - "worker": 9, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-04T23:54:57.068Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-04T23:54:57.070Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "17ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:54:58.084Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-08", - "worker": 9, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-04T23:54:58.097Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-04T23:54:58.100Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "17ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:54:59.113Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-09", - "worker": 9, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-04T23:54:59.121Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-04T23:54:59.124Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:55:00.135Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-12", - "worker": 9, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-04T23:55:00.146Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-04T23:55:00.148Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "15ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:55:01.164Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-13", - "worker": 9, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-04T23:55:01.176Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-04T23:55:01.179Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "17ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:55:02.195Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-14", - "worker": 9, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-04T23:55:02.206Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-04T23:55:02.208Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "16ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:55:03.220Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-15", - "worker": 9, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-04T23:55:03.229Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-04T23:55:03.231Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:55:04.248Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-16", - "worker": 9, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-04T23:55:04.259Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-04T23:55:04.261Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "15ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:55:05.276Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-19", - "worker": 9, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-04T23:55:05.287Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-04T23:55:05.289Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "15ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:55:14.806Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T23:55:22.367Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:55:22.398Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:55:44.918Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T23:55:52.639Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:55:52.641Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:55:57.089Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=3", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:55:58.186Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=3", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:55:59.278Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=3", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:56:00.467Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=3", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:56:08.020Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:56:08.947Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:56:08.963Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:56:12.817Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:56:13.661Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:56:13.672Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:56:15.018Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T23:56:16.493Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:56:17.276Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:56:17.289Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:56:19.596Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:56:20.365Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:56:20.374Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:56:22.632Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:56:22.640Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:56:33.255Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-20", - "worker": 9, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-04T23:56:33.268Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-04T23:56:33.269Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "16ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:56:34.347Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-21", - "worker": 9, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-04T23:56:34.358Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-04T23:56:34.360Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "15ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:56:35.375Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-22", - "worker": 9, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-04T23:56:35.386Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-04T23:56:35.388Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "15ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:56:36.400Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-23", - "worker": 9, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-04T23:56:36.410Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-04T23:56:36.411Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:56:45.106Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T23:56:54.321Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:56:54.328Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:57:15.218Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T23:57:24.349Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:57:24.351Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:57:45.319Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T23:58:05.645Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:58:05.652Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:58:18.819Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=12", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:58:26.558Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T23:58:35.276Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=12", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:58:41.918Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:58:41.921Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:58:45.348Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=12", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:58:54.822Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=12", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:59:02.936Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T23:59:09.371Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=12", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:59:11.930Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:59:11.939Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:59:14.262Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:59:15.599Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:59:15.623Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:59:18.040Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:59:18.753Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:59:18.765Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:59:21.632Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:59:22.264Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:59:22.280Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:59:25.299Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:59:26.053Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:59:26.067Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:59:28.932Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:59:29.615Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:59:29.627Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:59:33.058Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-04T23:59:41.936Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:59:41.938Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:59:49.586Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-26", - "worker": 9, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-04T23:59:49.597Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-04T23:59:49.598Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:59:50.629Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-27", - "worker": 9, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-04T23:59:50.637Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-04T23:59:50.639Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:59:51.654Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-28", - "worker": 9, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-04T23:59:51.664Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-04T23:59:51.666Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:59:52.676Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-29", - "worker": 9, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-04T23:59:52.684Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-04T23:59:52.688Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T23:59:53.701Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-30", - "worker": 9, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-04T23:59:53.708Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-04T23:59:53.710Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:00:03.153Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T00:00:13.230Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:00:13.232Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "16ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:00:33.334Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T00:00:43.313Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:00:43.315Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:01:03.433Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T00:01:19.104Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:01:19.106Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:01:33.516Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T00:01:50.142Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:01:50.144Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:02:03.622Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T00:02:33.702Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T00:03:03.807Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T00:03:32.529Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:03:32.531Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:03:33.901Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T00:04:03.990Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T00:04:34.070Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T00:05:04.162Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T00:05:34.250Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T00:06:02.028Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:06:02.030Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:06:04.338Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T00:06:34.430Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T00:07:04.518Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T00:07:10.628Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:07:10.632Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:07:34.629Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T00:08:04.725Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T00:08:34.821Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T00:09:04.909Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T00:09:30.628Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:09:30.630Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:09:35.000Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T00:10:02.014Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:10:02.017Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:10:05.090Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T00:10:35.181Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T00:11:05.303Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T00:11:35.406Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T00:11:50.634Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:11:50.637Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:12:05.503Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T00:12:35.603Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T00:13:05.700Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T00:13:35.791Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T00:14:26.153Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T00:14:30.940Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:14:30.942Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:14:56.300Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T00:15:42.969Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T00:16:13.085Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T00:16:43.264Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T00:16:46.741Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "53ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:16:46.743Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "24ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:16:48.769Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-02-05", - "created_by_user_id": 1, - "requester": 1, - "isAdmin": false -} -[2026-02-05T00:16:48.775Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-02-05T00:16:48.776Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-02-05", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:16:51.808Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-02", - "created_by_user_id": 1, - "requester": 1, - "isAdmin": false -} -[2026-02-05T00:16:51.812Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 4 -} -[2026-02-05T00:16:51.816Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-02", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:17:13.359Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T00:17:16.657Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:17:16.666Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:17:20.151Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-05", - "created_by_user_id": 1, - "requester": 1, - "isAdmin": false -} -[2026-02-05T00:17:20.158Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 5 -} -[2026-02-05T00:17:20.161Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-05", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:17:27.356Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:17:43.482Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T00:17:46.654Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:17:46.656Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:17:54.050Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=11", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:17:56.159Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:18:13.564Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T00:18:16.665Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:18:16.667Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:18:18.638Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=1", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:18:20.295Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:18:20.980Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:18:20.996Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:18:36.818Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=1", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:18:38.392Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:18:39.081Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:18:39.087Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:18:43.644Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T00:18:46.655Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:18:46.663Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:18:55.999Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=1", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:18:57.356Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:18:58.154Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:18:58.179Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:19:13.719Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T00:19:14.816Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=11", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:19:16.389Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:19:16.650Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:19:16.656Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:19:39.816Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=1", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:19:41.698Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:19:42.544Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:19:42.559Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:19:43.822Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T00:19:46.654Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:19:46.660Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:19:59.634Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=1", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:20:01.345Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:20:02.496Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:20:02.505Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:20:13.911Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T00:20:16.662Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:20:16.669Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:20:44.004Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T00:20:46.663Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:20:46.670Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:21:14.089Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T00:21:16.668Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:21:16.671Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:21:21.622Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=1", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:21:36.823Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=1", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:21:44.168Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T00:21:46.655Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:21:46.657Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:21:47.675Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=1", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:21:58.708Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=12", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:22:11.908Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=12", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:22:14.284Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T00:22:16.657Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:22:16.663Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:22:35.230Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=11", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:22:38.506Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:22:39.260Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:22:39.272Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:22:42.015Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:22:42.841Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:22:42.853Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:22:44.379Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T00:22:46.232Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:22:46.659Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:22:46.661Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:22:46.872Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:22:46.884Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:22:49.954Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:22:50.636Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:22:50.646Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:22:53.090Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:22:53.843Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:22:53.852Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:22:57.606Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:22:59.791Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:23:14.456Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T00:23:16.665Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:23:16.667Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:23:32.566Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=2", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:23:40.914Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:23:41.703Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:23:41.716Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:23:44.538Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T00:23:46.654Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:23:46.659Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:23:56.873Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=2", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:23:59.776Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:24:00.630Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:24:00.638Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:24:14.638Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T00:24:16.659Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:24:16.661Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:24:26.576Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=3", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:24:27.795Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=3", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:24:36.293Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:24:36.967Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:24:36.980Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:24:43.083Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:24:43.821Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:24:43.840Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:24:44.716Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T00:24:46.664Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:24:46.667Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:25:14.822Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T00:25:16.663Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:25:16.668Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:25:43.061Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=12", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:25:44.627Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=12", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:25:44.918Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T00:25:46.049Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=12", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:25:46.654Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:25:46.659Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:25:47.247Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=12", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:25:48.885Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=12", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:25:55.441Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:25:56.164Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:25:56.177Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:25:58.393Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:25:59.103Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:25:59.118Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:26:01.462Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:26:02.071Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:26:02.081Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:26:04.893Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:26:05.612Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:26:05.620Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:26:08.444Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:26:09.138Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:26:09.149Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:26:15.043Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T00:26:16.663Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:26:16.665Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:26:36.019Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-02", - "worker": 1, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-05T00:26:36.031Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-05T00:26:36.032Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:26:37.043Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-05", - "worker": 1, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-05T00:26:37.049Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-05T00:26:37.051Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:26:38.060Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-06", - "worker": 1, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-05T00:26:38.063Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-05T00:26:38.063Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:26:39.075Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-07", - "worker": 1, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-05T00:26:39.081Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-05T00:26:39.082Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:26:40.093Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-07", - "worker": 1, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-05T00:26:40.099Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-05T00:26:40.100Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:26:41.111Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-08", - "worker": 1, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-05T00:26:41.116Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-05T00:26:41.118Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:26:42.140Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-09", - "worker": 1, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-05T00:26:42.146Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-05T00:26:42.147Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:26:43.159Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-12", - "worker": 1, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-05T00:26:43.166Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-05T00:26:43.168Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:26:44.176Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-13", - "worker": 1, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-05T00:26:44.182Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-05T00:26:44.183Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:26:45.120Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T00:26:45.192Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-14", - "worker": 1, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-05T00:26:45.194Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-05T00:26:45.195Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:26:46.205Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-15", - "worker": 1, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-05T00:26:46.212Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-05T00:26:46.214Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:26:47.225Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-16", - "worker": 1, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-05T00:26:47.232Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-05T00:26:47.233Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:26:48.123Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:26:48.135Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:26:48.243Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-19", - "worker": 1, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-05T00:26:48.249Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-05T00:26:48.250Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:26:49.261Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-20", - "worker": 1, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-05T00:26:49.267Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-05T00:26:49.269Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:26:50.278Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-21", - "worker": 1, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-05T00:26:50.283Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-05T00:26:50.285Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:26:51.295Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-22", - "worker": 1, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-05T00:26:51.304Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-05T00:26:51.305Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:26:52.314Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-23", - "worker": 1, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-05T00:26:52.323Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-05T00:26:52.324Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:26:53.335Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-26", - "worker": 1, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-05T00:26:53.342Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-05T00:26:53.343Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:26:54.353Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-27", - "worker": 1, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-05T00:26:54.361Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-05T00:26:54.362Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:26:55.373Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-28", - "worker": 1, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-05T00:26:55.381Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-05T00:26:55.382Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:26:56.392Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-29", - "worker": 1, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-05T00:26:56.399Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-05T00:26:56.400Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:26:57.411Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-30", - "worker": 1, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-05T00:26:57.419Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-05T00:26:57.420Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:27:15.208Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T00:27:18.137Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:27:18.139Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:27:27.653Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=11", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:27:29.286Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:27:45.316Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T00:27:46.397Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=1", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:27:48.136Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:27:48.141Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:27:51.425Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:27:52.322Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:27:52.335Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:28:06.388Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=1", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:28:07.599Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:28:08.473Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:28:08.483Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:28:15.400Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T00:28:18.130Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:28:18.132Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:28:24.424Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=1", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:28:25.839Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:28:26.718Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:28:26.734Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:28:45.520Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T00:28:48.139Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:28:48.147Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:29:03.186Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=1", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:29:04.447Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:29:05.305Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:29:05.556Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:29:15.603Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T00:29:18.135Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:29:18.138Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:29:29.661Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=3", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:29:36.884Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:29:37.958Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:29:37.971Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:29:45.688Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T00:29:48.137Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:29:48.140Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:29:49.023Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=3", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:29:50.555Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:29:51.703Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:29:51.715Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:30:15.792Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T00:30:18.131Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:30:18.132Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:30:45.886Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T00:30:48.134Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:30:48.136Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:30:57.711Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=11", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:30:59.412Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:31:03.244Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:31:04.328Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:31:04.339Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:31:08.694Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:31:09.511Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:31:09.615Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:31:16.017Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T00:31:18.139Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:31:18.147Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:31:19.008Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=3", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:31:20.061Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=3", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:31:46.111Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T00:31:48.140Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:31:48.142Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:32:09.879Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=3", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:32:11.562Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=3", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:32:12.653Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=3", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:32:16.199Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T00:32:18.139Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:32:18.142Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:32:33.533Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=11", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:32:35.384Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:32:36.925Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:32:37.848Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:32:37.860Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:32:42.090Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:32:43.024Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:32:43.035Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:32:46.185Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:32:46.281Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T00:32:46.886Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:32:46.901Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:32:48.137Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:32:48.142Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:33:16.376Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T00:33:18.148Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:33:18.150Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:33:44.398Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=3", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:33:45.506Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=3", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:33:46.461Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T00:33:47.152Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=3", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:33:48.143Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:33:48.145Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:33:48.641Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=3", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:34:16.555Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T00:34:18.143Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:34:18.145Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:34:43.573Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=3", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:34:45.045Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:34:45.992Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:34:46.004Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:34:46.640Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T00:34:48.133Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:34:48.139Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:35:10.676Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=3", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:35:12.473Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:35:13.444Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:35:13.457Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:35:16.761Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T00:35:18.137Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:35:18.143Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:35:36.721Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=3", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:35:38.127Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:35:38.803Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:35:38.809Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:35:46.757Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=3", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:35:46.829Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T00:35:48.132Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:35:48.138Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:35:48.591Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:35:49.765Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:35:49.786Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:36:01.992Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=3", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:36:04.382Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:36:04.980Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:36:04.998Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:36:08.499Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:36:09.115Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:36:09.126Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:36:11.444Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:36:12.021Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:36:12.034Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:36:16.932Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T00:36:17.021Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:36:17.791Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:36:17.800Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:36:18.139Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:36:18.144Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:36:20.954Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:36:21.561Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:36:21.574Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:36:41.270Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-02", - "worker": 2, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-05T00:36:41.280Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-05T00:36:41.280Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:36:42.290Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-05", - "worker": 2, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-05T00:36:42.298Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-05T00:36:42.299Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:36:43.314Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-06", - "worker": 2, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-05T00:36:43.325Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-05T00:36:43.327Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "15ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:36:44.376Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-07", - "worker": 2, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-05T00:36:44.383Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-05T00:36:44.385Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:36:45.391Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-08", - "worker": 2, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-05T00:36:45.399Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-05T00:36:45.401Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:36:46.493Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-09", - "worker": 2, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-05T00:36:46.501Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-05T00:36:46.503Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:36:47.021Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T00:36:47.517Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-12", - "worker": 2, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-05T00:36:47.528Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-05T00:36:47.530Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "17ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:36:48.543Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-13", - "worker": 2, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-05T00:36:48.550Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-05T00:36:48.552Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:36:49.529Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:36:49.536Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:36:49.564Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-13", - "worker": 2, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-05T00:36:49.575Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-05T00:36:49.577Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "15ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:36:50.593Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-14", - "worker": 2, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-05T00:36:50.601Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-05T00:36:50.604Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:36:51.616Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-15", - "worker": 2, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-05T00:36:51.624Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-05T00:36:51.627Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:36:52.640Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-16", - "worker": 2, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-05T00:36:52.646Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-05T00:36:52.648Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:36:53.662Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-19", - "worker": 2, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-05T00:36:53.673Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-05T00:36:53.677Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "17ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:36:54.691Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-20", - "worker": 2, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-05T00:36:54.702Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-05T00:36:54.705Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "16ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:36:55.721Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-21", - "worker": 2, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-05T00:36:55.730Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-05T00:36:55.732Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:36:56.746Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-22", - "worker": 2, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-05T00:36:56.755Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-05T00:36:56.756Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:36:57.772Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-23", - "worker": 2, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-05T00:36:57.782Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-05T00:36:57.784Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:36:58.791Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-26", - "worker": 2, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-05T00:36:58.794Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-05T00:36:58.795Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:36:59.810Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-27", - "worker": 2, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-05T00:36:59.820Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-05T00:36:59.822Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:37:00.838Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-28", - "worker": 2, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-05T00:37:00.848Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-05T00:37:00.850Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:37:01.862Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-29", - "worker": 2, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-05T00:37:01.872Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-05T00:37:01.873Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:37:01.885Z] [INFO] ℹ️ 부적합 원인 저장 성공 - Context: { - "reportId": "1792", - "count": 1 -} -[2026-02-05T00:37:01.886Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "PUT", - "url": "/api/daily-work-reports/1792/defects", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:37:02.894Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-30", - "worker": 2, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-05T00:37:02.902Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-05T00:37:02.904Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:37:02.918Z] [INFO] ℹ️ 부적합 원인 저장 성공 - Context: { - "reportId": "1793", - "count": 1 -} -[2026-02-05T00:37:02.918Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "PUT", - "url": "/api/daily-work-reports/1793/defects", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:37:06.461Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-02-05", - "created_by_user_id": 1, - "requester": 1, - "isAdmin": false -} -[2026-02-05T00:37:06.466Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-02-05T00:37:06.468Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-02-05", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:37:11.087Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-13", - "created_by_user_id": 1, - "requester": 1, - "isAdmin": false -} -[2026-02-05T00:37:11.091Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 8 -} -[2026-02-05T00:37:11.095Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-13", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:37:17.120Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T00:37:19.533Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:37:19.535Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:37:20.387Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-19", - "created_by_user_id": 1, - "requester": 1, - "isAdmin": false -} -[2026-02-05T00:37:20.391Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 8 -} -[2026-02-05T00:37:20.394Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-19", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:37:47.232Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T00:37:49.454Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260205", - "baseTime": "0900", - "nx": 57, - "ny": 119 -} -[2026-02-05T00:37:49.472Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "31ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:37:49.547Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260205", - "baseTime": "0900", - "nx": 57, - "ny": 119 -} -[2026-02-05T00:37:49.653Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:37:50.453Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 4.5, - "humidity": 68, - "windSpeed": 0.6, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-05T00:37:50.459Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 4.5, - "humidity": 68, - "windSpeed": 0.6, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-05T00:37:50.462Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 4.5, - "humidity": 68, - "windSpeed": 0.6, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-05T00:37:50.466Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "920ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:37:50.467Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 4.5, - "humidity": 68, - "windSpeed": 0.6, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-05T00:37:50.469Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "1018ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:38:00.160Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000&department_id=1", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:38:00.328Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:38:00.329Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:38:00.341Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:38:00.343Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:38:00.362Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:38:00.368Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:38:00.374Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues/categories/type/nonconformity", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:38:00.381Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues/items", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:38:00.387Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:38:17.383Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "18ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T00:38:30.094Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:38:30.145Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:38:40.211Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:38:40.214Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:38:47.550Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "12ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T00:39:10.046Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "22ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:39:10.048Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:39:17.663Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T00:39:47.761Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T00:40:17.850Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T00:40:47.951Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T00:41:18.048Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T00:41:48.142Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T00:42:10.326Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:42:10.327Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:42:18.253Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T00:42:19.602Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000&department_id=1", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:42:19.764Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:42:19.765Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:42:19.771Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:42:19.776Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:42:19.784Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:42:19.787Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:42:19.792Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues/categories/type/nonconformity", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:42:19.801Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues/items", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:42:19.808Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:42:42.710Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000&department_id=1", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:42:42.781Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:42:42.788Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:42:42.793Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:42:42.799Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:42:42.805Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues/categories/type/nonconformity", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:42:42.813Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues/items", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:42:42.819Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:42:42.825Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:42:42.884Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:42:44.370Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-02-05", - "created_by_user_id": 1, - "requester": 1, - "isAdmin": false -} -[2026-02-05T00:42:44.375Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-02-05T00:42:44.377Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-02-05", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:42:48.347Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T00:42:48.444Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-19", - "created_by_user_id": 1, - "requester": 1, - "isAdmin": false -} -[2026-02-05T00:42:48.445Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 8 -} -[2026-02-05T00:42:48.446Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-19", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:42:54.339Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=1", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:43:00.100Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=3", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:43:03.062Z] [INFO] ℹ️ 작업보고서 수정 요청 - Context: { - "reportId": "1784", - "updatedBy": 1 -} -[2026-02-05T00:43:03.070Z] [ERROR] ❌ 작업보고서 수정 실패 - Context: { - "reportId": "1784", - "error": "데이터베이스에서 작업 보고서를 수정하는 중 오류가 발생했습니다." -} -[2026-02-05T00:43:03.073Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "PUT", - "url": "/api/daily-work-reports/1784", - "statusCode": 500, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:43:12.642Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:43:12.688Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:43:18.492Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T00:43:42.646Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:43:42.686Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:43:48.619Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T00:44:12.654Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:44:12.685Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:44:18.713Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T00:44:20.080Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2026-02-05T00:44:20.085Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-02-05T00:44:21.362Z] [INFO] ℹ️ Rate Limiting 설정 완료 -[2026-02-05T00:44:21.363Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-02-05T00:44:21.454Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-02-05T00:44:21.546Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2026-02-05T00:44:21.554Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-02-05T00:44:26.262Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T00:44:42.663Z] [INFO] ℹ️ MariaDB 연결 성공 - Context: { - "connection": "db:3306", - "database": "hyungi", - "connectionLimit": 10 -} -[2026-02-05T00:44:42.668Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "31ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:44:42.688Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:44:56.382Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T00:45:12.645Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:45:12.693Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:45:26.476Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T00:45:42.650Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:45:42.696Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:45:56.568Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T00:46:12.641Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:46:12.693Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:46:20.370Z] [INFO] ℹ️ 작업보고서 수정 요청 - Context: { - "reportId": "1784", - "updatedBy": 1 -} -[2026-02-05T00:46:20.385Z] [INFO] ℹ️ 작업보고서 수정 성공 - Context: { - "reportId": "1784" -} -[2026-02-05T00:46:20.386Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "PUT", - "url": "/api/daily-work-reports/1784", - "statusCode": 200, - "duration": "18ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:46:20.394Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-19", - "created_by_user_id": 1, - "requester": 1, - "isAdmin": false -} -[2026-02-05T00:46:20.403Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 8 -} -[2026-02-05T00:46:20.407Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-19", - "statusCode": 200, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:46:26.654Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T00:46:33.073Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-21", - "created_by_user_id": 1, - "requester": 1, - "isAdmin": false -} -[2026-02-05T00:46:33.079Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 7 -} -[2026-02-05T00:46:33.081Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-21", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:46:39.034Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=3", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:46:42.641Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:46:42.691Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:46:43.064Z] [INFO] ℹ️ 작업보고서 수정 요청 - Context: { - "reportId": "1786", - "updatedBy": 1 -} -[2026-02-05T00:46:43.088Z] [INFO] ℹ️ 작업보고서 수정 성공 - Context: { - "reportId": "1786" -} -[2026-02-05T00:46:43.090Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "PUT", - "url": "/api/daily-work-reports/1786", - "statusCode": 200, - "duration": "29ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:46:43.096Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-21", - "created_by_user_id": 1, - "requester": 1, - "isAdmin": false -} -[2026-02-05T00:46:43.098Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 7 -} -[2026-02-05T00:46:43.114Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-21", - "statusCode": 200, - "duration": "19ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:46:47.157Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:46:56.772Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T00:47:00.568Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=4", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:47:01.931Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=11", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:47:06.069Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:47:09.996Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-21", - "worker": 2, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-05T00:47:10.013Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-05T00:47:10.014Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "20ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:47:12.642Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:47:12.698Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:47:15.005Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-02-05", - "created_by_user_id": 1, - "requester": 1, - "isAdmin": false -} -[2026-02-05T00:47:15.008Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-02-05T00:47:15.009Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-02-05", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:47:17.539Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-30", - "created_by_user_id": 1, - "requester": 1, - "isAdmin": false -} -[2026-02-05T00:47:17.542Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 7 -} -[2026-02-05T00:47:17.545Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-30", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:47:22.032Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=3", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:47:26.236Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=11", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:47:26.880Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T00:47:31.735Z] [INFO] ℹ️ 작업보고서 수정 요청 - Context: { - "reportId": "1793", - "updatedBy": 1 -} -[2026-02-05T00:47:31.744Z] [INFO] ℹ️ 작업보고서 수정 성공 - Context: { - "reportId": "1793" -} -[2026-02-05T00:47:31.746Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "PUT", - "url": "/api/daily-work-reports/1793", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:47:31.752Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-30", - "created_by_user_id": 1, - "requester": 1, - "isAdmin": false -} -[2026-02-05T00:47:31.753Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 7 -} -[2026-02-05T00:47:31.754Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-30", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:47:34.748Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:47:42.238Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-02-05", - "created_by_user_id": 1, - "requester": 1, - "isAdmin": false -} -[2026-02-05T00:47:42.242Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-02-05T00:47:42.244Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-02-05", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:47:42.641Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:47:42.694Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:47:44.570Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-02", - "created_by_user_id": 1, - "requester": 1, - "isAdmin": false -} -[2026-02-05T00:47:44.573Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 6 -} -[2026-02-05T00:47:44.577Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-02", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:47:49.556Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:47:56.993Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T00:48:03.101Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=11", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:48:04.895Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:48:12.644Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:48:12.692Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:48:18.993Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=1", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:48:20.567Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:48:21.408Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:48:21.431Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:48:27.081Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T00:48:35.677Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=1", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:48:37.495Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:48:38.233Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:48:38.255Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:48:42.641Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:48:42.695Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:48:55.062Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=1", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:48:56.664Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:48:57.192Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T00:48:57.465Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:48:57.473Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:49:12.645Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:49:12.696Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:49:26.145Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=1", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:49:27.290Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T00:49:27.593Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:49:28.286Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:49:28.296Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:49:42.644Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:49:42.698Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:49:43.056Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=1", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:49:44.811Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:49:45.459Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:49:45.480Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:49:57.388Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T00:50:09.548Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=3", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:50:11.293Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:50:12.056Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:50:12.072Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:50:12.643Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:50:12.697Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:50:23.469Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=3", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:50:25.839Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:50:26.724Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:50:26.734Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:50:27.481Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T00:50:39.925Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=3", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:50:41.785Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:50:42.637Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:50:42.643Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:50:42.655Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:50:42.694Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:50:57.577Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T00:50:59.331Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=3", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:51:00.985Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:51:02.170Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:51:02.184Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:51:12.642Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:51:12.700Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:51:19.098Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=11", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:51:21.186Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:51:27.676Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T00:51:42.642Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:51:42.697Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:51:42.978Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=2", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:51:53.823Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=3", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:51:55.414Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:51:56.343Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:51:56.359Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:51:57.762Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T00:52:10.434Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=3", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:52:12.333Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:52:12.638Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:52:12.692Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:52:13.164Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:52:13.181Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:52:26.941Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=3", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:52:27.858Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T00:52:28.277Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:52:28.969Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:52:28.984Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:52:42.635Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:52:42.694Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:52:49.705Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=3", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:52:57.938Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T00:53:06.572Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=3", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:53:08.717Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:53:09.578Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:53:09.590Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:53:12.638Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:53:12.695Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:53:18.378Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:53:19.129Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:53:19.139Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:53:28.041Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T00:53:38.002Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-02", - "worker": 4, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-05T00:53:38.018Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-05T00:53:38.019Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "19ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:53:39.028Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-05", - "worker": 4, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-05T00:53:39.037Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-05T00:53:39.039Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:53:40.048Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-06", - "worker": 4, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-05T00:53:40.056Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-05T00:53:40.058Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:53:41.067Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-07", - "worker": 4, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-05T00:53:41.083Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-05T00:53:41.085Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "20ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:53:42.104Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-08", - "worker": 4, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-05T00:53:42.115Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-05T00:53:42.116Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:53:43.127Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-09", - "worker": 4, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-05T00:53:43.137Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-05T00:53:43.138Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:53:44.153Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-12", - "worker": 4, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-05T00:53:44.163Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-05T00:53:44.165Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:53:44.257Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:53:44.320Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:53:45.175Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-13", - "worker": 4, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-05T00:53:45.185Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-05T00:53:45.187Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:53:46.199Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-14", - "worker": 4, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-05T00:53:46.208Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-05T00:53:46.210Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:53:47.226Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-15", - "worker": 4, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-05T00:53:47.236Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-05T00:53:47.237Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:53:48.249Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-16", - "worker": 4, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-05T00:53:48.257Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-05T00:53:48.259Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:53:49.272Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-19", - "worker": 4, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-05T00:53:49.278Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-05T00:53:49.279Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:53:50.291Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-20", - "worker": 4, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-05T00:53:50.299Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-05T00:53:50.301Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:53:51.313Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-21", - "worker": 4, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-05T00:53:51.328Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-05T00:53:51.330Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "18ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:53:52.345Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-22", - "worker": 4, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-05T00:53:52.358Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-05T00:53:52.360Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "17ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:53:53.376Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-23", - "worker": 4, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-05T00:53:53.388Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-05T00:53:53.390Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "16ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:53:58.158Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T00:54:14.270Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:54:14.316Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:54:28.252Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T00:54:44.279Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:54:44.317Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:54:50.128Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=3", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:54:51.511Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=3", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:54:52.771Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=3", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:54:53.835Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=3", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:54:55.273Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=3", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:54:58.325Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T00:55:14.262Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:55:14.319Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:55:16.994Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=11", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:55:28.439Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T00:55:44.262Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:55:44.319Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:55:49.036Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=2", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:55:50.145Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=12", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:55:51.644Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=2", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:55:52.793Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=2", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:55:53.999Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=2", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:55:58.511Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T00:56:11.864Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:56:12.746Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:56:12.767Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:56:14.262Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:56:14.320Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:56:15.068Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:56:15.730Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:56:15.740Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:56:18.128Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:56:18.743Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:56:18.756Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:56:21.192Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:56:21.922Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:56:21.937Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:56:25.072Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:56:25.754Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:56:25.763Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:56:28.604Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T00:56:29.556Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:56:53.888Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-26", - "worker": 4, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-05T00:56:53.899Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-05T00:56:53.901Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "15ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:56:54.913Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-27", - "worker": 4, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-05T00:56:54.920Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-05T00:56:54.921Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:56:55.597Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:56:55.653Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:56:55.933Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-28", - "worker": 4, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-05T00:56:55.945Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-05T00:56:55.947Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "17ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:56:56.959Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-29", - "worker": 4, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-05T00:56:56.970Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-05T00:56:56.973Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "15ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:56:57.984Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-30", - "worker": 4, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-05T00:56:57.993Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-05T00:56:57.994Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:56:58.708Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T00:57:04.231Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-02-05", - "created_by_user_id": 1, - "requester": 1, - "isAdmin": false -} -[2026-02-05T00:57:04.237Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-02-05T00:57:04.239Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-02-05", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:57:06.844Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-02", - "created_by_user_id": 1, - "requester": 1, - "isAdmin": false -} -[2026-02-05T00:57:06.848Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 7 -} -[2026-02-05T00:57:06.851Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-02", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:57:15.937Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:57:25.595Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:57:25.652Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:57:28.817Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T00:57:29.631Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=11", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:57:31.346Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:57:52.958Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=1", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:57:53.940Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=1", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:57:54.956Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=1", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:57:55.597Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:57:55.651Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:57:58.903Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T00:57:59.211Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:58:00.061Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "20ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:58:00.084Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "19ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:58:02.047Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:58:02.636Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:58:02.649Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:58:04.583Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:58:05.421Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:58:05.431Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:58:25.610Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:58:25.650Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:58:29.020Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T00:58:39.278Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=1", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:58:40.335Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=1", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:58:45.142Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:58:45.786Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:58:45.799Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:58:48.373Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:58:49.048Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:58:49.058Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:58:55.602Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:58:55.657Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:58:59.113Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T00:59:25.608Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:59:25.655Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:59:29.207Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T00:59:55.605Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:59:55.655Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T00:59:59.319Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T01:00:25.608Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:00:25.654Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:00:29.399Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T01:00:50.986Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=2", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:00:52.173Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=2", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:00:53.275Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=2", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:00:54.564Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=2", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:00:55.595Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:00:55.657Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:00:55.891Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=2", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:00:59.518Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T01:01:15.249Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:01:25.763Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:01:25.766Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:01:29.643Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T01:01:31.957Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 200, - "duration": "91ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:01:32.709Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:01:32.755Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:01:32.811Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260205", - "baseTime": "0900", - "nx": 57, - "ny": 119 -} -[2026-02-05T01:01:32.852Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:01:32.853Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:01:32.872Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-05", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:01:32.881Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:01:32.895Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/moved/list", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:01:33.204Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 4.8, - "humidity": 67, - "windSpeed": 0.7, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-05T01:01:33.211Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 4.8, - "humidity": 67, - "windSpeed": 0.7, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-05T01:01:33.216Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "460ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:01:33.706Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:01:36.982Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 304, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:01:36.985Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:01:37.168Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:01:48.977Z] [INFO] ℹ️ 작업 생성 요청 - Context: { - "name": "자재 가공" -} -[2026-02-05T01:01:48.982Z] [INFO] ℹ️ 작업 생성 성공 - Context: { - "task_id": 26 -} -[2026-02-05T01:01:48.985Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/tasks", - "statusCode": 201, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:01:49.000Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:01:49.002Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:01:55.750Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:01:55.752Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:01:56.032Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=12", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:01:58.300Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=2", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:01:59.754Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T01:02:01.414Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=4", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:02:04.157Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=2", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:02:06.861Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=4", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:02:08.331Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=2", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:02:11.371Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=12", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:02:12.490Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=2", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:02:15.293Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=12", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:02:16.276Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=2", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:02:25.734Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:02:25.735Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:02:29.836Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T01:02:55.747Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:02:55.752Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:02:55.962Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=11", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:02:58.015Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:02:59.914Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T01:03:14.141Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=1", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:03:15.455Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=2", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:03:25.753Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:03:25.755Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:03:27.831Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=3", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:03:29.997Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T01:03:32.734Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=3", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:03:36.669Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=3", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:03:44.149Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=3", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:03:55.749Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:03:55.752Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:04:00.105Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T01:04:25.751Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:04:25.754Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:04:30.203Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T01:04:36.267Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=12", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:04:37.478Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=12", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:04:38.694Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=12", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:04:39.968Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=12", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:04:41.434Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=12", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:04:48.108Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:04:48.889Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:04:48.907Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:04:51.450Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:04:52.114Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:04:52.124Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:04:54.542Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:04:55.233Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:04:55.244Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:04:55.738Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:04:55.745Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:04:58.153Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:04:59.170Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:04:59.179Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:05:00.291Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T01:05:02.414Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:05:06.347Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:05:06.358Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:05:11.704Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:05:12.570Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:05:12.589Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:05:14.848Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:05:15.480Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:05:15.496Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:05:17.433Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:05:18.050Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:05:18.059Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:05:20.164Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:05:21.184Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:05:21.195Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:05:23.581Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:05:24.260Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:05:24.273Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:05:25.739Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:05:25.745Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:05:26.686Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:05:27.313Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:05:27.320Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:05:29.370Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:05:30.045Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:05:30.057Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:05:30.407Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T01:05:32.056Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:05:32.898Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:05:32.911Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:05:36.289Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:05:36.964Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:05:36.973Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:05:46.484Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-02", - "worker": 5, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-05T01:05:46.499Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-05T01:05:46.500Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "18ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:05:57.132Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:05:57.143Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:06:00.494Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T01:06:01.531Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-23", - "worker": 5, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-05T01:06:01.542Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-05T01:06:01.545Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "15ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:06:27.133Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:06:27.139Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:06:30.568Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T01:06:57.140Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:06:57.142Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:07:00.660Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T01:07:09.986Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-05", - "worker": 5, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-05T01:07:09.998Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-05T01:07:10.000Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "16ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:07:11.010Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-06", - "worker": 5, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-05T01:07:11.017Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-05T01:07:11.019Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:07:12.026Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-07", - "worker": 5, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-05T01:07:12.034Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-05T01:07:12.035Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:07:13.042Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-08", - "worker": 5, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-05T01:07:13.049Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-05T01:07:13.052Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:07:14.062Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-09", - "worker": 5, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-05T01:07:14.071Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-05T01:07:14.073Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:07:15.087Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-12", - "worker": 5, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-05T01:07:15.096Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-05T01:07:15.098Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:07:16.113Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-13", - "worker": 5, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-05T01:07:16.122Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-05T01:07:16.124Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:07:17.141Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-14", - "worker": 5, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-05T01:07:17.148Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-05T01:07:17.151Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:07:18.165Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-15", - "worker": 5, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-05T01:07:18.178Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-05T01:07:18.180Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "17ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:07:19.196Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-16", - "worker": 5, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-05T01:07:19.207Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-05T01:07:19.210Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "16ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:07:20.226Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-19", - "worker": 5, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-05T01:07:20.233Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-05T01:07:20.235Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:07:21.243Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-20", - "worker": 5, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-05T01:07:21.249Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-05T01:07:21.250Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:07:22.263Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-21", - "worker": 5, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-05T01:07:22.275Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-05T01:07:22.278Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "17ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:07:23.295Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-22", - "worker": 5, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-05T01:07:23.306Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-05T01:07:23.308Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "15ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:07:24.323Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-26", - "worker": 5, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-05T01:07:24.337Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-05T01:07:24.338Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "17ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:07:25.352Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-27", - "worker": 5, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-05T01:07:25.362Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-05T01:07:25.364Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "15ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:07:26.381Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-28", - "worker": 5, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-05T01:07:26.393Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-05T01:07:26.395Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "17ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:07:27.407Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-29", - "worker": 5, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-05T01:07:27.423Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-05T01:07:27.425Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "19ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:07:28.438Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-30", - "worker": 5, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-05T01:07:28.445Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-05T01:07:28.446Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:07:28.829Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:07:28.835Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:07:30.766Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T01:07:57.742Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260205", - "baseTime": "0900", - "nx": 57, - "ny": 119 -} -[2026-02-05T01:07:57.774Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:07:57.786Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000&department_id=1", - "statusCode": 200, - "duration": "17ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:07:57.874Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260205", - "baseTime": "0900", - "nx": 57, - "ny": 119 -} -[2026-02-05T01:07:57.892Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:07:57.896Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:07:57.903Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:07:57.907Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:07:57.914Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:07:57.921Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues/categories/type/nonconformity", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:07:57.928Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues/items", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:07:57.938Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:07:58.379Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 4.8, - "humidity": 67, - "windSpeed": 0.7, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-05T01:07:58.383Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 4.8, - "humidity": 67, - "windSpeed": 0.7, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-05T01:07:58.387Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 4.8, - "humidity": 67, - "windSpeed": 0.7, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-05T01:07:58.390Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "658ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:07:58.392Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 4.8, - "humidity": 67, - "windSpeed": 0.7, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-05T01:07:58.395Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "523ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:08:00.916Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T01:08:15.096Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=11", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:08:17.993Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:08:27.443Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:08:27.710Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:08:31.051Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T01:08:33.120Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=1", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:08:36.243Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:08:37.147Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:08:37.162Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:08:57.458Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:08:57.716Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:09:01.198Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T01:09:27.447Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:09:27.709Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:09:28.465Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=1", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:09:29.480Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=1", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:09:30.734Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=1", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:09:31.285Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T01:09:32.052Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=1", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:09:37.841Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:09:38.548Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:09:38.562Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:09:40.970Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:09:41.593Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:09:41.601Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:09:44.928Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:09:45.593Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:09:45.602Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:09:48.630Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:09:49.404Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:09:49.416Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:09:57.451Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:09:57.708Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:10:01.372Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T01:10:27.451Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:10:27.717Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:10:31.479Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T01:10:35.219Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=1", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:10:36.182Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=1", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:10:37.125Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=3", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:10:38.518Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=1", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:10:40.171Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=1", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:10:41.137Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=1", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:10:57.479Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "28ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:10:57.707Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:11:01.629Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T01:11:27.015Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=1", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:11:27.448Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:11:27.714Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:11:28.017Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=1", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:11:31.722Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T01:11:40.237Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=3", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:11:41.324Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=1", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:11:42.781Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=3", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:11:44.292Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=1", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:11:46.048Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=2", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:11:47.364Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=2", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:11:49.040Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=2", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:11:57.466Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:11:57.722Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:12:01.901Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T01:12:27.465Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "16ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:12:27.715Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:12:32.007Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T01:12:50.993Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=3", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:12:52.028Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=3", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:12:53.444Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=3", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:12:54.496Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=3", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:12:55.815Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=3", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:12:57.446Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:12:57.716Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:13:02.125Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T01:13:03.737Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:13:07.238Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:13:07.991Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "20ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:13:08.007Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:13:10.974Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:13:11.695Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:13:11.707Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:13:14.138Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:13:14.798Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:13:14.814Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:13:17.108Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:13:17.901Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:13:17.911Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:13:21.685Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:13:22.272Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=2", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:13:24.256Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:13:24.911Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:13:24.923Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:13:27.322Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:13:27.447Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:13:27.714Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:13:28.036Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:13:28.052Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:13:30.805Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:13:31.650Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:13:31.661Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:13:32.235Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T01:13:34.059Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:13:34.814Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:13:34.822Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:13:36.863Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:13:37.680Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:13:37.690Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:13:42.067Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:13:43.061Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:13:43.081Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:13:47.797Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:13:48.445Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:13:48.458Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:13:50.936Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:13:51.684Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:13:51.699Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:13:53.901Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:13:54.594Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:13:54.608Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:13:57.124Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:13:57.447Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:13:57.715Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:13:59.128Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:13:59.861Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:13:59.872Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:14:02.323Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T01:14:02.526Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:14:03.230Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:14:03.245Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:14:27.455Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:14:27.712Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:14:32.414Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T01:14:48.448Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-02", - "worker": 8, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-05T01:14:48.461Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-05T01:14:48.462Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "15ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:14:49.473Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-05", - "worker": 8, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-05T01:14:49.480Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-05T01:14:49.482Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:14:50.493Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-06", - "worker": 8, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-05T01:14:50.502Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-05T01:14:50.503Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:14:51.514Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-07", - "worker": 8, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-05T01:14:51.525Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-05T01:14:51.527Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:14:52.539Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-08", - "worker": 8, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-05T01:14:52.547Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-05T01:14:52.549Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:14:53.562Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-09", - "worker": 8, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-05T01:14:53.576Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-05T01:14:53.578Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "18ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:14:54.594Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-12", - "worker": 8, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-05T01:14:54.606Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-05T01:14:54.608Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "16ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:14:55.622Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-13", - "worker": 8, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-05T01:14:55.631Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-05T01:14:55.633Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:14:56.644Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-14", - "worker": 8, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-05T01:14:56.652Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-05T01:14:56.654Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:14:57.668Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-15", - "worker": 8, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-05T01:14:57.677Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-05T01:14:57.680Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:14:58.623Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:14:58.696Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-16", - "worker": 8, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-05T01:14:58.706Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-05T01:14:58.709Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:14:58.892Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:14:59.723Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-19", - "worker": 8, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-05T01:14:59.735Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-05T01:14:59.737Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "16ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:15:00.752Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-20", - "worker": 8, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-05T01:15:00.759Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-05T01:15:00.760Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:15:01.776Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-21", - "worker": 8, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-05T01:15:01.787Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-05T01:15:01.789Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:15:02.522Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T01:15:02.800Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-22", - "worker": 8, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-05T01:15:02.809Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-05T01:15:02.813Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "15ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:15:03.826Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-23", - "worker": 8, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-05T01:15:03.833Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-05T01:15:03.834Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:15:04.846Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-26", - "worker": 8, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-05T01:15:04.857Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-05T01:15:04.860Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "16ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:15:05.875Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-27", - "worker": 8, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-05T01:15:05.887Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-05T01:15:05.889Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "15ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:15:06.932Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-28", - "worker": 8, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-05T01:15:06.946Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-05T01:15:06.949Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "24ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:15:07.969Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-29", - "worker": 8, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-05T01:15:07.981Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-05T01:15:07.984Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "18ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:15:09.001Z] [INFO] ℹ️ 작업보고서 생성 요청 - Context: { - "date": "2026-01-30", - "worker": 8, - "creator": "안현기", - "entries_count": 1 -} -[2026-02-05T01:15:09.019Z] [INFO] ℹ️ 작업보고서 생성 성공 - Context: { - "entries_count": 1 -} -[2026-02-05T01:15:09.020Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/daily-work-reports", - "statusCode": 201, - "duration": "20ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:15:25.419Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:15:25.654Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260205", - "baseTime": "1000", - "nx": 57, - "ny": 119 -} -[2026-02-05T01:15:25.666Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "20ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:15:26.034Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 5.2, - "humidity": 66, - "windSpeed": 0.6, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-05T01:15:26.037Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 5.2, - "humidity": 66, - "windSpeed": 0.6, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-05T01:15:26.041Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "391ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:15:26.413Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:15:32.691Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T01:15:55.396Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "15ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:16:02.789Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T01:16:10.004Z] [INFO] ℹ️ 프로젝트별-작업별 시간 분석 요청 - Context: { - "start": "2026-01-01", - "end": "2026-01-30" -} -[2026-02-05T01:16:10.010Z] [INFO] ℹ️ 작업자별 통계 조회 요청 - Context: { - "start": "2026-01-01", - "end": "2026-01-30" -} -[2026-02-05T01:16:10.017Z] [INFO] ℹ️ 프로젝트별-작업별 시간 분석 성공 - Context: { - "start": "2026-01-01", - "end": "2026-01-30", - "projectCount": 5, - "workTypeCount": 19, - "totalHours": 1680 -} -[2026-02-05T01:16:10.025Z] [INFO] ℹ️ 작업자별 통계 조회 성공 - Context: { - "start": "2026-01-01", - "end": "2026-01-30", - "workerCount": 10 -} -[2026-02-05T01:16:10.027Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-analysis/project-worktype-analysis?start=2026-01-01&end=2026-01-30", - "statusCode": 200, - "duration": "27ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:16:10.030Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-analysis/worker-stats?start=2026-01-01&end=2026-01-30", - "statusCode": 200, - "duration": "22ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:16:10.043Z] [INFO] ℹ️ 최근 작업 현황 조회 요청 - Context: { - "start": "2026-01-01", - "end": "2026-01-30", - "limit": 2000 -} -[2026-02-05T01:16:10.054Z] [INFO] ℹ️ 최근 작업 현황 조회 성공 - Context: { - "start": "2026-01-01", - "end": "2026-01-30", - "limit": 2000, - "resultCount": 216 -} -[2026-02-05T01:16:10.058Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-analysis/recent-work?start=2026-01-01&end=2026-01-30&limit=2000", - "statusCode": 200, - "duration": "16ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:16:25.399Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:16:32.908Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T01:16:44.670Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000&department_id=1", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:16:44.834Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:16:44.853Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 200, - "duration": "15ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:16:44.860Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:16:44.866Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:16:44.870Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:16:44.874Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:16:44.880Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues/categories/type/nonconformity", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:16:44.887Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues/items", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:16:44.892Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:16:46.923Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-02-05", - "created_by_user_id": 1, - "requester": 1, - "isAdmin": false -} -[2026-02-05T01:16:46.926Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-02-05T01:16:46.927Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-02-05", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:16:49.647Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-05", - "created_by_user_id": 1, - "requester": 1, - "isAdmin": false -} -[2026-02-05T01:16:49.653Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 10 -} -[2026-02-05T01:16:49.656Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-05", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:16:57.688Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=1", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:17:03.045Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T01:17:03.098Z] [INFO] ℹ️ 작업보고서 수정 요청 - Context: { - "reportId": "1644", - "updatedBy": 1 -} -[2026-02-05T01:17:03.103Z] [INFO] ℹ️ 작업보고서 수정 성공 - Context: { - "reportId": "1644" -} -[2026-02-05T01:17:03.104Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "PUT", - "url": "/api/daily-work-reports/1644", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:17:03.111Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-05", - "created_by_user_id": 1, - "requester": 1, - "isAdmin": false -} -[2026-02-05T01:17:03.113Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 10 -} -[2026-02-05T01:17:03.115Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-05", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:17:14.390Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:17:14.658Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:17:26.026Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:17:26.119Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:17:27.005Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:17:33.198Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T01:17:55.885Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:18:03.333Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T01:18:25.891Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:18:33.463Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T01:18:55.889Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:19:03.575Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T01:19:13.843Z] [INFO] ℹ️ 프로젝트별-작업별 시간 분석 요청 - Context: { - "start": "2026-01-01", - "end": "2026-01-30" -} -[2026-02-05T01:19:13.850Z] [INFO] ℹ️ 작업자별 통계 조회 요청 - Context: { - "start": "2026-01-01", - "end": "2026-01-30" -} -[2026-02-05T01:19:13.860Z] [INFO] ℹ️ 작업자별 통계 조회 성공 - Context: { - "start": "2026-01-01", - "end": "2026-01-30", - "workerCount": 10 -} -[2026-02-05T01:19:13.862Z] [INFO] ℹ️ 프로젝트별-작업별 시간 분석 성공 - Context: { - "start": "2026-01-01", - "end": "2026-01-30", - "projectCount": 5, - "workTypeCount": 19, - "totalHours": 1680 -} -[2026-02-05T01:19:13.864Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-analysis/worker-stats?start=2026-01-01&end=2026-01-30", - "statusCode": 200, - "duration": "15ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:19:13.865Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-analysis/project-worktype-analysis?start=2026-01-01&end=2026-01-30", - "statusCode": 200, - "duration": "29ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:19:13.869Z] [INFO] ℹ️ 최근 작업 현황 조회 요청 - Context: { - "start": "2026-01-01", - "end": "2026-01-30", - "limit": 2000 -} -[2026-02-05T01:19:13.891Z] [INFO] ℹ️ 최근 작업 현황 조회 성공 - Context: { - "start": "2026-01-01", - "end": "2026-01-30", - "limit": 2000, - "resultCount": 216 -} -[2026-02-05T01:19:13.897Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-analysis/recent-work?start=2026-01-01&end=2026-01-30&limit=2000", - "statusCode": 200, - "duration": "28ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:19:25.888Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:19:33.677Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T01:19:55.921Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:20:03.803Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T01:20:22.253Z] [INFO] ℹ️ 최근 작업 현황 조회 요청 - Context: { - "start": "2026-01-01", - "end": "2026-01-30", - "limit": 2000 -} -[2026-02-05T01:20:22.262Z] [INFO] ℹ️ 프로젝트별-작업별 시간 분석 요청 - Context: { - "start": "2026-01-01", - "end": "2026-01-30" -} -[2026-02-05T01:20:22.265Z] [INFO] ℹ️ 작업자별 통계 조회 요청 - Context: { - "start": "2026-01-01", - "end": "2026-01-30" -} -[2026-02-05T01:20:22.279Z] [INFO] ℹ️ 최근 작업 현황 조회 성공 - Context: { - "start": "2026-01-01", - "end": "2026-01-30", - "limit": 2000, - "resultCount": 216 -} -[2026-02-05T01:20:22.284Z] [INFO] ℹ️ 프로젝트별-작업별 시간 분석 성공 - Context: { - "start": "2026-01-01", - "end": "2026-01-30", - "projectCount": 5, - "workTypeCount": 19, - "totalHours": 1680 -} -[2026-02-05T01:20:22.287Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-analysis/recent-work?start=2026-01-01&end=2026-01-30&limit=2000", - "statusCode": 200, - "duration": "56ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:20:22.292Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-analysis/project-worktype-analysis?start=2026-01-01&end=2026-01-30&limit=2000", - "statusCode": 200, - "duration": "31ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:20:22.298Z] [INFO] ℹ️ 작업자별 통계 조회 성공 - Context: { - "start": "2026-01-01", - "end": "2026-01-30", - "workerCount": 10 -} -[2026-02-05T01:20:22.301Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-analysis/worker-stats?start=2026-01-01&end=2026-01-30&limit=2000", - "statusCode": 200, - "duration": "37ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:20:25.892Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:20:33.921Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T01:20:47.847Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:20:56.017Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:21:04.030Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T01:21:34.124Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T01:22:04.213Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T01:22:34.290Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T01:23:04.381Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T01:23:34.457Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T01:24:04.567Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T01:24:06.982Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "96ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:24:09.701Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:24:17.341Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:24:17.532Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260205", - "baseTime": "1000", - "nx": 57, - "ny": 119 -} -[2026-02-05T01:24:17.548Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "22ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:24:17.791Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 5.2, - "humidity": 66, - "windSpeed": 0.6, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-05T01:24:17.794Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 5.2, - "humidity": 66, - "windSpeed": 0.6, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-05T01:24:17.798Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "269ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:24:18.335Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:24:27.707Z] [INFO] ℹ️ 프로젝트별-작업별 시간 분석 요청 - Context: { - "start": "2026-01-01", - "end": "2026-01-30" -} -[2026-02-05T01:24:27.715Z] [INFO] ℹ️ 작업자별 통계 조회 요청 - Context: { - "start": "2026-01-01", - "end": "2026-01-30" -} -[2026-02-05T01:24:27.725Z] [INFO] ℹ️ 프로젝트별-작업별 시간 분석 성공 - Context: { - "start": "2026-01-01", - "end": "2026-01-30", - "projectCount": 5, - "workTypeCount": 19, - "totalHours": 1680 -} -[2026-02-05T01:24:27.729Z] [INFO] ℹ️ 작업자별 통계 조회 성공 - Context: { - "start": "2026-01-01", - "end": "2026-01-30", - "workerCount": 10 -} -[2026-02-05T01:24:27.732Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-analysis/project-worktype-analysis?start=2026-01-01&end=2026-01-30", - "statusCode": 200, - "duration": "29ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:24:27.734Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-analysis/worker-stats?start=2026-01-01&end=2026-01-30", - "statusCode": 200, - "duration": "22ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:24:27.742Z] [INFO] ℹ️ 최근 작업 현황 조회 요청 - Context: { - "start": "2026-01-01", - "end": "2026-01-30", - "limit": 2000 -} -[2026-02-05T01:24:27.747Z] [INFO] ℹ️ 최근 작업 현황 조회 성공 - Context: { - "start": "2026-01-01", - "end": "2026-01-30", - "limit": 2000, - "resultCount": 216 -} -[2026-02-05T01:24:27.754Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-analysis/recent-work?start=2026-01-01&end=2026-01-30&limit=2000", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:24:34.666Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T01:24:47.337Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "18ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:25:04.824Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T01:25:17.328Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:25:34.894Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T01:25:41.935Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:25:48.858Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:25:49.157Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:25:49.843Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:26:00.163Z] [INFO] ℹ️ 프로젝트별-작업별 시간 분석 요청 - Context: { - "start": "2026-01-01", - "end": "2026-01-30" -} -[2026-02-05T01:26:00.165Z] [INFO] ℹ️ 작업자별 통계 조회 요청 - Context: { - "start": "2026-01-01", - "end": "2026-01-30" -} -[2026-02-05T01:26:00.169Z] [INFO] ℹ️ 프로젝트별-작업별 시간 분석 성공 - Context: { - "start": "2026-01-01", - "end": "2026-01-30", - "projectCount": 5, - "workTypeCount": 19, - "totalHours": 1680 -} -[2026-02-05T01:26:00.172Z] [INFO] ℹ️ 작업자별 통계 조회 성공 - Context: { - "start": "2026-01-01", - "end": "2026-01-30", - "workerCount": 10 -} -[2026-02-05T01:26:00.173Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-analysis/project-worktype-analysis?start=2026-01-01&end=2026-01-30", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:26:00.176Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-analysis/worker-stats?start=2026-01-01&end=2026-01-30", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:26:00.183Z] [INFO] ℹ️ 최근 작업 현황 조회 요청 - Context: { - "start": "2026-01-01", - "end": "2026-01-30", - "limit": 2000 -} -[2026-02-05T01:26:00.193Z] [INFO] ℹ️ 최근 작업 현황 조회 성공 - Context: { - "start": "2026-01-01", - "end": "2026-01-30", - "limit": 2000, - "resultCount": 216 -} -[2026-02-05T01:26:00.202Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-analysis/recent-work?start=2026-01-01&end=2026-01-30&limit=2000", - "statusCode": 200, - "duration": "19ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:26:04.986Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T01:26:18.812Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:26:35.066Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T01:26:48.816Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:27:05.142Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T01:27:18.833Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "21ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:27:35.218Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T01:27:48.809Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:28:05.305Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T01:28:18.811Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:28:25.489Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:28:35.428Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T01:28:55.511Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "34ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:29:05.523Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T01:29:25.074Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:29:25.472Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:29:26.747Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:29:26.751Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:29:26.844Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260205", - "baseTime": "1000", - "nx": 57, - "ny": 119 -} -[2026-02-05T01:29:26.935Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:29:27.596Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 5.1, - "humidity": 66, - "windSpeed": 0.8, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-05T01:29:27.602Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 5.1, - "humidity": 66, - "windSpeed": 0.8, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-05T01:29:27.609Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "768ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:29:35.625Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T01:29:40.008Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:29:40.204Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260205", - "baseTime": "1000", - "nx": 57, - "ny": 119 -} -[2026-02-05T01:29:40.226Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:29:40.438Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 5.1, - "humidity": 66, - "windSpeed": 0.8, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-05T01:29:40.441Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 5.1, - "humidity": 66, - "windSpeed": 0.8, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-05T01:29:40.443Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "243ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:29:41.004Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:29:49.395Z] [INFO] ℹ️ 프로젝트별-작업별 시간 분석 요청 - Context: { - "start": "2026-01-01", - "end": "2026-01-30" -} -[2026-02-05T01:29:49.402Z] [INFO] ℹ️ 작업자별 통계 조회 요청 - Context: { - "start": "2026-01-01", - "end": "2026-01-30" -} -[2026-02-05T01:29:49.408Z] [INFO] ℹ️ 프로젝트별-작업별 시간 분석 성공 - Context: { - "start": "2026-01-01", - "end": "2026-01-30", - "projectCount": 5, - "workTypeCount": 19, - "totalHours": 1680 -} -[2026-02-05T01:29:49.411Z] [INFO] ℹ️ 작업자별 통계 조회 성공 - Context: { - "start": "2026-01-01", - "end": "2026-01-30", - "workerCount": 10 -} -[2026-02-05T01:29:49.414Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-analysis/project-worktype-analysis?start=2026-01-01&end=2026-01-30", - "statusCode": 200, - "duration": "20ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:29:49.415Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-analysis/worker-stats?start=2026-01-01&end=2026-01-30", - "statusCode": 200, - "duration": "16ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:29:49.467Z] [INFO] ℹ️ 최근 작업 현황 조회 요청 - Context: { - "start": "2026-01-01", - "end": "2026-01-30", - "limit": 2000 -} -[2026-02-05T01:29:49.475Z] [INFO] ℹ️ 최근 작업 현황 조회 성공 - Context: { - "start": "2026-01-01", - "end": "2026-01-30", - "limit": 2000, - "resultCount": 216 -} -[2026-02-05T01:29:49.482Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-analysis/recent-work?start=2026-01-01&end=2026-01-30&limit=2000", - "statusCode": 200, - "duration": "16ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:30:05.779Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T01:30:10.008Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "15ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:30:25.229Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "34ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:30:27.551Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000&department_id=1", - "statusCode": 200, - "duration": "15ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:30:27.650Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 304, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:30:27.664Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 304, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:30:27.674Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:30:27.684Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:30:27.693Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues/categories/type/nonconformity", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:30:27.702Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues/items", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:30:27.711Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:30:27.717Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:30:27.718Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:30:28.431Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-02-05", - "created_by_user_id": 1, - "requester": 1, - "isAdmin": false -} -[2026-02-05T01:30:28.435Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-02-05T01:30:28.437Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-02-05", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:30:31.333Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-15", - "created_by_user_id": 1, - "requester": 1, - "isAdmin": false -} -[2026-02-05T01:30:31.338Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 10 -} -[2026-02-05T01:30:31.340Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-15", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:30:35.898Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T01:30:37.164Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2026-02-05T01:30:37.165Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-02-05T01:30:37.683Z] [INFO] ℹ️ Rate Limiting 설정 완료 -[2026-02-05T01:30:37.683Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-02-05T01:30:37.775Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-02-05T01:30:37.895Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2026-02-05T01:30:37.904Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-02-05T01:30:42.541Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T01:30:47.201Z] [INFO] ℹ️ MariaDB 연결 성공 - Context: { - "connection": "db:3306", - "database": "hyungi", - "connectionLimit": 10 -} -[2026-02-05T01:30:47.215Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "129ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:30:56.159Z] [INFO] ℹ️ 최근 작업 현황 조회 요청 - Context: { - "start": "2026-01-01", - "end": "2026-02-05", - "limit": 10 -} -[2026-02-05T01:30:56.169Z] [INFO] ℹ️ 최근 작업 현황 조회 성공 - Context: { - "start": "2026-01-01", - "end": "2026-02-05", - "limit": 10, - "resultCount": 10 -} -[2026-02-05T01:30:56.170Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-analysis/recent-work?start=2026-01-01&end=2026-02-05&limit=10", - "statusCode": 200, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "curl/8.7.1" -} -[2026-02-05T01:30:57.552Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:30:57.555Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:31:12.659Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T01:31:17.083Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:31:17.335Z] [INFO] ℹ️ 최근 작업 현황 조회 요청 - Context: { - "start": "2026-01-01", - "end": "2026-02-05", - "limit": 500 -} -[2026-02-05T01:31:17.342Z] [INFO] ℹ️ 최근 작업 현황 조회 성공 - Context: { - "start": "2026-01-01", - "end": "2026-02-05", - "limit": 500, - "resultCount": 216 -} -[2026-02-05T01:31:17.344Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-analysis/recent-work?start=2026-01-01&end=2026-02-05&limit=500", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "curl/8.7.1" -} -[2026-02-05T01:31:42.768Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T01:31:47.075Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:32:00.203Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:32:00.205Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:32:08.706Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 200, - "duration": "21ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:32:08.976Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:32:09.686Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:32:12.903Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T01:32:38.655Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:32:43.015Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T01:32:45.228Z] [INFO] ℹ️ 프로젝트별-작업별 시간 분석 요청 - Context: { - "start": "2026-01-01", - "end": "2026-01-30" -} -[2026-02-05T01:32:45.231Z] [INFO] ℹ️ 작업자별 통계 조회 요청 - Context: { - "start": "2026-01-01", - "end": "2026-01-30" -} -[2026-02-05T01:32:45.237Z] [INFO] ℹ️ 프로젝트별-작업별 시간 분석 성공 - Context: { - "start": "2026-01-01", - "end": "2026-01-30", - "projectCount": 5, - "workTypeCount": 6, - "totalHours": 1680 -} -[2026-02-05T01:32:45.239Z] [INFO] ℹ️ 작업자별 통계 조회 성공 - Context: { - "start": "2026-01-01", - "end": "2026-01-30", - "workerCount": 10 -} -[2026-02-05T01:32:45.242Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-analysis/project-worktype-analysis?start=2026-01-01&end=2026-01-30", - "statusCode": 200, - "duration": "18ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:32:45.245Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-analysis/worker-stats?start=2026-01-01&end=2026-01-30", - "statusCode": 200, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:32:45.252Z] [INFO] ℹ️ 최근 작업 현황 조회 요청 - Context: { - "start": "2026-01-01", - "end": "2026-01-30", - "limit": 2000 -} -[2026-02-05T01:32:45.265Z] [INFO] ℹ️ 최근 작업 현황 조회 성공 - Context: { - "start": "2026-01-01", - "end": "2026-01-30", - "limit": 2000, - "resultCount": 216 -} -[2026-02-05T01:32:45.271Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-analysis/recent-work?start=2026-01-01&end=2026-01-30&limit=2000", - "statusCode": 200, - "duration": "20ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:33:08.637Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:33:13.113Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T01:33:15.884Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:33:15.885Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:33:39.889Z] [INFO] ℹ️ 일일 근태 기록 조회 요청 - Context: { - "date": "2026-02-05", - "workerId": null -} -[2026-02-05T01:33:39.893Z] [INFO] ℹ️ 출근 체크 목록 조회 요청 - Context: { - "date": "2026-02-05" -} -[2026-02-05T01:33:39.902Z] [INFO] ℹ️ 일일 근태 기록 조회 성공 - Context: { - "date": "2026-02-05", - "count": 0 -} -[2026-02-05T01:33:39.903Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/daily-records?date=2026-02-05", - "statusCode": 200, - "duration": "15ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:33:39.904Z] [INFO] ℹ️ 출근 체크 목록 조회 성공 - Context: { - "date": "2026-02-05", - "count": 10 -} -[2026-02-05T01:33:39.906Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/checkin-list?date=2026-02-05", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:33:39.910Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=100", - "statusCode": 200, - "duration": "26ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:33:39.959Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:33:43.228Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T01:33:44.143Z] [INFO] ℹ️ 출근 체크 일괄 저장 요청 - Context: { - "date": "2026-02-05", - "count": 10 -} -[2026-02-05T01:33:44.159Z] [INFO] ℹ️ 출근 체크 일괄 저장 성공 - Context: { - "date": "2026-02-05", - "saved": 10 -} -[2026-02-05T01:33:44.160Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/checkins", - "statusCode": 200, - "duration": "20ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:33:50.080Z] [INFO] ℹ️ 출근 체크 목록 조회 요청 - Context: { - "date": "2026-01-02" -} -[2026-02-05T01:33:50.088Z] [INFO] ℹ️ 일일 근태 기록 조회 요청 - Context: { - "date": "2026-01-02", - "workerId": null -} -[2026-02-05T01:33:50.089Z] [INFO] ℹ️ 출근 체크 목록 조회 성공 - Context: { - "date": "2026-01-02", - "count": 10 -} -[2026-02-05T01:33:50.090Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=100", - "statusCode": 200, - "duration": "15ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:33:50.091Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/checkin-list?date=2026-01-02", - "statusCode": 200, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:33:50.093Z] [INFO] ℹ️ 일일 근태 기록 조회 성공 - Context: { - "date": "2026-01-02", - "count": 0 -} -[2026-02-05T01:33:50.094Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/daily-records?date=2026-01-02", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:33:51.811Z] [INFO] ℹ️ 출근 체크 일괄 저장 요청 - Context: { - "date": "2026-01-02", - "count": 10 -} -[2026-02-05T01:33:51.826Z] [INFO] ℹ️ 출근 체크 일괄 저장 성공 - Context: { - "date": "2026-01-02", - "saved": 10 -} -[2026-02-05T01:33:51.827Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/checkins", - "statusCode": 200, - "duration": "22ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:33:58.251Z] [INFO] ℹ️ 출근 체크 목록 조회 요청 - Context: { - "date": "2026-01-05" -} -[2026-02-05T01:33:58.254Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers?limit=100", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:33:58.254Z] [INFO] ℹ️ 출근 체크 목록 조회 성공 - Context: { - "date": "2026-01-05", - "count": 10 -} -[2026-02-05T01:33:58.256Z] [INFO] ℹ️ 일일 근태 기록 조회 요청 - Context: { - "date": "2026-01-05", - "workerId": null -} -[2026-02-05T01:33:58.258Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/checkin-list?date=2026-01-05", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:33:58.259Z] [INFO] ℹ️ 일일 근태 기록 조회 성공 - Context: { - "date": "2026-01-05", - "count": 10 -} -[2026-02-05T01:33:58.261Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/daily-records?date=2026-01-05", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:34:04.315Z] [WARN] ⚠️ 인증 실패: Authorization 헤더 없음 - Context: { - "path": "/", - "method": "GET", - "ip": "::ffff:185.199.108.133" -} -[2026-02-05T01:34:04.318Z] [WARN] ⚠️ Authorization 헤더가 필요합니다 - Context: { - "code": "AUTHENTICATION_ERROR", - "url": "/api/work-analysis/recent-work?start=2025-12-01&end=2026-01-31&limit=10", - "method": "GET", - "user": "anonymous" -} -[2026-02-05T01:34:04.322Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/work-analysis/recent-work?start=2025-12-01&end=2026-01-31&limit=10", - "statusCode": 401, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-02-05T01:34:08.234Z] [INFO] ℹ️ 출근 체크 목록 조회 요청 - Context: { - "date": "2026-01-06" -} -[2026-02-05T01:34:08.236Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers?limit=100", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:34:08.237Z] [INFO] ℹ️ 출근 체크 목록 조회 성공 - Context: { - "date": "2026-01-06", - "count": 10 -} -[2026-02-05T01:34:08.239Z] [INFO] ℹ️ 일일 근태 기록 조회 요청 - Context: { - "date": "2026-01-06", - "workerId": null -} -[2026-02-05T01:34:08.240Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/checkin-list?date=2026-01-06", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:34:08.242Z] [INFO] ℹ️ 일일 근태 기록 조회 성공 - Context: { - "date": "2026-01-06", - "count": 0 -} -[2026-02-05T01:34:08.243Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/daily-records?date=2026-01-06", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:34:12.075Z] [INFO] ℹ️ 출근 체크 일괄 저장 요청 - Context: { - "date": "2026-01-06", - "count": 10 -} -[2026-02-05T01:34:12.095Z] [INFO] ℹ️ 출근 체크 일괄 저장 성공 - Context: { - "date": "2026-01-06", - "saved": 10 -} -[2026-02-05T01:34:12.096Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/checkins", - "statusCode": 200, - "duration": "25ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:34:13.334Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T01:34:13.796Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:34:16.819Z] [INFO] ℹ️ 출근 체크 목록 조회 요청 - Context: { - "date": "2026-01-07" -} -[2026-02-05T01:34:16.823Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers?limit=100", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:34:16.824Z] [INFO] ℹ️ 출근 체크 목록 조회 성공 - Context: { - "date": "2026-01-07", - "count": 10 -} -[2026-02-05T01:34:16.826Z] [INFO] ℹ️ 일일 근태 기록 조회 요청 - Context: { - "date": "2026-01-07", - "workerId": null -} -[2026-02-05T01:34:16.827Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/checkin-list?date=2026-01-07", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:34:16.827Z] [INFO] ℹ️ 일일 근태 기록 조회 성공 - Context: { - "date": "2026-01-07", - "count": 0 -} -[2026-02-05T01:34:16.828Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/daily-records?date=2026-01-07", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:34:23.218Z] [INFO] ℹ️ 출근 체크 일괄 저장 요청 - Context: { - "date": "2026-01-07", - "count": 10 -} -[2026-02-05T01:34:23.234Z] [INFO] ℹ️ 출근 체크 일괄 저장 성공 - Context: { - "date": "2026-01-07", - "saved": 10 -} -[2026-02-05T01:34:23.235Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/checkins", - "statusCode": 200, - "duration": "19ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:34:26.864Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers?limit=100", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:34:26.868Z] [INFO] ℹ️ 출근 체크 목록 조회 요청 - Context: { - "date": "2026-01-08" -} -[2026-02-05T01:34:26.871Z] [INFO] ℹ️ 일일 근태 기록 조회 요청 - Context: { - "date": "2026-01-08", - "workerId": null -} -[2026-02-05T01:34:26.872Z] [INFO] ℹ️ 출근 체크 목록 조회 성공 - Context: { - "date": "2026-01-08", - "count": 10 -} -[2026-02-05T01:34:26.874Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/checkin-list?date=2026-01-08", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:34:26.875Z] [INFO] ℹ️ 일일 근태 기록 조회 성공 - Context: { - "date": "2026-01-08", - "count": 0 -} -[2026-02-05T01:34:26.876Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/daily-records?date=2026-01-08", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:34:27.852Z] [INFO] ℹ️ 출근 체크 일괄 저장 요청 - Context: { - "date": "2026-01-08", - "count": 10 -} -[2026-02-05T01:34:27.873Z] [INFO] ℹ️ 출근 체크 일괄 저장 성공 - Context: { - "date": "2026-01-08", - "saved": 10 -} -[2026-02-05T01:34:27.874Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/checkins", - "statusCode": 200, - "duration": "25ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:34:31.112Z] [INFO] ℹ️ 일일 근태 기록 조회 요청 - Context: { - "date": "2026-01-09", - "workerId": null -} -[2026-02-05T01:34:31.117Z] [INFO] ℹ️ 출근 체크 목록 조회 요청 - Context: { - "date": "2026-01-09" -} -[2026-02-05T01:34:31.119Z] [INFO] ℹ️ 일일 근태 기록 조회 성공 - Context: { - "date": "2026-01-09", - "count": 0 -} -[2026-02-05T01:34:31.120Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/daily-records?date=2026-01-09", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:34:31.121Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers?limit=100", - "statusCode": 304, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:34:31.122Z] [INFO] ℹ️ 출근 체크 목록 조회 성공 - Context: { - "date": "2026-01-09", - "count": 10 -} -[2026-02-05T01:34:31.123Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/checkin-list?date=2026-01-09", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:34:31.974Z] [INFO] ℹ️ 출근 체크 일괄 저장 요청 - Context: { - "date": "2026-01-09", - "count": 10 -} -[2026-02-05T01:34:31.992Z] [INFO] ℹ️ 출근 체크 일괄 저장 성공 - Context: { - "date": "2026-01-09", - "saved": 10 -} -[2026-02-05T01:34:31.993Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/checkins", - "statusCode": 200, - "duration": "21ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:34:38.523Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers?limit=100", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:34:38.528Z] [INFO] ℹ️ 일일 근태 기록 조회 요청 - Context: { - "date": "2026-01-12", - "workerId": null -} -[2026-02-05T01:34:38.531Z] [INFO] ℹ️ 출근 체크 목록 조회 요청 - Context: { - "date": "2026-01-12" -} -[2026-02-05T01:34:38.532Z] [INFO] ℹ️ 일일 근태 기록 조회 성공 - Context: { - "date": "2026-01-12", - "count": 0 -} -[2026-02-05T01:34:38.533Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/daily-records?date=2026-01-12", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:34:38.534Z] [INFO] ℹ️ 출근 체크 목록 조회 성공 - Context: { - "date": "2026-01-12", - "count": 10 -} -[2026-02-05T01:34:38.535Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/checkin-list?date=2026-01-12", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:34:39.433Z] [INFO] ℹ️ 출근 체크 일괄 저장 요청 - Context: { - "date": "2026-01-12", - "count": 10 -} -[2026-02-05T01:34:39.452Z] [INFO] ℹ️ 출근 체크 일괄 저장 성공 - Context: { - "date": "2026-01-12", - "saved": 10 -} -[2026-02-05T01:34:39.453Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/checkins", - "statusCode": 200, - "duration": "23ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:34:43.436Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T01:34:46.565Z] [INFO] ℹ️ 출근 체크 목록 조회 요청 - Context: { - "date": "2026-01-13" -} -[2026-02-05T01:34:46.569Z] [INFO] ℹ️ 출근 체크 목록 조회 성공 - Context: { - "date": "2026-01-13", - "count": 10 -} -[2026-02-05T01:34:46.571Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers?limit=100", - "statusCode": 304, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:34:46.573Z] [INFO] ℹ️ 일일 근태 기록 조회 요청 - Context: { - "date": "2026-01-13", - "workerId": null -} -[2026-02-05T01:34:46.574Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/checkin-list?date=2026-01-13", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:34:46.575Z] [INFO] ℹ️ 일일 근태 기록 조회 성공 - Context: { - "date": "2026-01-13", - "count": 0 -} -[2026-02-05T01:34:46.575Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/daily-records?date=2026-01-13", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:34:47.487Z] [INFO] ℹ️ 출근 체크 일괄 저장 요청 - Context: { - "date": "2026-01-13", - "count": 10 -} -[2026-02-05T01:34:47.511Z] [INFO] ℹ️ 출근 체크 일괄 저장 성공 - Context: { - "date": "2026-01-13", - "saved": 10 -} -[2026-02-05T01:34:47.513Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/checkins", - "statusCode": 200, - "duration": "28ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:34:54.051Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:35:04.024Z] [INFO] ℹ️ 출근 체크 목록 조회 요청 - Context: { - "date": "2026-01-14" -} -[2026-02-05T01:35:04.028Z] [INFO] ℹ️ 일일 근태 기록 조회 요청 - Context: { - "date": "2026-01-14", - "workerId": null -} -[2026-02-05T01:35:04.030Z] [INFO] ℹ️ 출근 체크 목록 조회 성공 - Context: { - "date": "2026-01-14", - "count": 10 -} -[2026-02-05T01:35:04.032Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers?limit=100", - "statusCode": 304, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:35:04.033Z] [INFO] ℹ️ 일일 근태 기록 조회 성공 - Context: { - "date": "2026-01-14", - "count": 0 -} -[2026-02-05T01:35:04.034Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/daily-records?date=2026-01-14", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:35:04.035Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/checkin-list?date=2026-01-14", - "statusCode": 200, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:35:06.498Z] [INFO] ℹ️ 출근 체크 일괄 저장 요청 - Context: { - "date": "2026-01-14", - "count": 10 -} -[2026-02-05T01:35:06.515Z] [INFO] ℹ️ 출근 체크 일괄 저장 성공 - Context: { - "date": "2026-01-14", - "saved": 10 -} -[2026-02-05T01:35:06.517Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/checkins", - "statusCode": 200, - "duration": "24ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:35:10.276Z] [INFO] ℹ️ 출근 체크 목록 조회 요청 - Context: { - "date": "2026-01-15" -} -[2026-02-05T01:35:10.279Z] [INFO] ℹ️ 출근 체크 목록 조회 성공 - Context: { - "date": "2026-01-15", - "count": 10 -} -[2026-02-05T01:35:10.281Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers?limit=100", - "statusCode": 304, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:35:10.283Z] [INFO] ℹ️ 일일 근태 기록 조회 요청 - Context: { - "date": "2026-01-15", - "workerId": null -} -[2026-02-05T01:35:10.283Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/checkin-list?date=2026-01-15", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:35:10.284Z] [INFO] ℹ️ 일일 근태 기록 조회 성공 - Context: { - "date": "2026-01-15", - "count": 0 -} -[2026-02-05T01:35:10.284Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/daily-records?date=2026-01-15", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:35:13.420Z] [INFO] ℹ️ 출근 체크 일괄 저장 요청 - Context: { - "date": "2026-01-15", - "count": 10 -} -[2026-02-05T01:35:13.439Z] [INFO] ℹ️ 출근 체크 일괄 저장 성공 - Context: { - "date": "2026-01-15", - "saved": 10 -} -[2026-02-05T01:35:13.440Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/checkins", - "statusCode": 200, - "duration": "22ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:35:13.515Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T01:35:17.864Z] [INFO] ℹ️ 출근 체크 목록 조회 요청 - Context: { - "date": "2026-01-16" -} -[2026-02-05T01:35:17.868Z] [INFO] ℹ️ 일일 근태 기록 조회 요청 - Context: { - "date": "2026-01-16", - "workerId": null -} -[2026-02-05T01:35:17.870Z] [INFO] ℹ️ 출근 체크 목록 조회 성공 - Context: { - "date": "2026-01-16", - "count": 10 -} -[2026-02-05T01:35:17.873Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers?limit=100", - "statusCode": 304, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:35:17.874Z] [INFO] ℹ️ 일일 근태 기록 조회 성공 - Context: { - "date": "2026-01-16", - "count": 0 -} -[2026-02-05T01:35:17.875Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/daily-records?date=2026-01-16", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:35:17.876Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/checkin-list?date=2026-01-16", - "statusCode": 200, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:35:26.211Z] [INFO] ℹ️ 출근 체크 일괄 저장 요청 - Context: { - "date": "2026-01-16", - "count": 10 -} -[2026-02-05T01:35:26.224Z] [INFO] ℹ️ 출근 체크 일괄 저장 성공 - Context: { - "date": "2026-01-16", - "saved": 10 -} -[2026-02-05T01:35:26.225Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/checkins", - "statusCode": 200, - "duration": "18ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:35:28.953Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:35:31.596Z] [INFO] ℹ️ 출근 체크 목록 조회 요청 - Context: { - "date": "2026-01-19" -} -[2026-02-05T01:35:31.603Z] [INFO] ℹ️ 출근 체크 목록 조회 성공 - Context: { - "date": "2026-01-19", - "count": 10 -} -[2026-02-05T01:35:31.606Z] [INFO] ℹ️ 일일 근태 기록 조회 요청 - Context: { - "date": "2026-01-19", - "workerId": null -} -[2026-02-05T01:35:31.608Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers?limit=100", - "statusCode": 304, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:35:31.610Z] [INFO] ℹ️ 일일 근태 기록 조회 성공 - Context: { - "date": "2026-01-19", - "count": 0 -} -[2026-02-05T01:35:31.611Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/daily-records?date=2026-01-19", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:35:31.612Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/checkin-list?date=2026-01-19", - "statusCode": 200, - "duration": "20ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:35:38.097Z] [INFO] ℹ️ 출근 체크 일괄 저장 요청 - Context: { - "date": "2026-01-19", - "count": 10 -} -[2026-02-05T01:35:38.114Z] [INFO] ℹ️ 출근 체크 일괄 저장 성공 - Context: { - "date": "2026-01-19", - "saved": 10 -} -[2026-02-05T01:35:38.114Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/checkins", - "statusCode": 200, - "duration": "20ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:35:43.605Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T01:35:46.313Z] [INFO] ℹ️ 출근 체크 일괄 저장 요청 - Context: { - "date": "2026-01-19", - "count": 10 -} -[2026-02-05T01:35:46.325Z] [INFO] ℹ️ 출근 체크 일괄 저장 성공 - Context: { - "date": "2026-01-19", - "saved": 10 -} -[2026-02-05T01:35:46.326Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/checkins", - "statusCode": 200, - "duration": "16ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:35:49.367Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers?limit=100", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:35:49.372Z] [INFO] ℹ️ 출근 체크 목록 조회 요청 - Context: { - "date": "2026-01-20" -} -[2026-02-05T01:35:49.375Z] [INFO] ℹ️ 출근 체크 목록 조회 성공 - Context: { - "date": "2026-01-20", - "count": 10 -} -[2026-02-05T01:35:49.376Z] [INFO] ℹ️ 일일 근태 기록 조회 요청 - Context: { - "date": "2026-01-20", - "workerId": null -} -[2026-02-05T01:35:49.378Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/checkin-list?date=2026-01-20", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:35:49.379Z] [INFO] ℹ️ 일일 근태 기록 조회 성공 - Context: { - "date": "2026-01-20", - "count": 0 -} -[2026-02-05T01:35:49.380Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/daily-records?date=2026-01-20", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:35:58.442Z] [INFO] ℹ️ 출근 체크 일괄 저장 요청 - Context: { - "date": "2026-01-20", - "count": 10 -} -[2026-02-05T01:35:58.459Z] [INFO] ℹ️ 출근 체크 일괄 저장 성공 - Context: { - "date": "2026-01-20", - "saved": 10 -} -[2026-02-05T01:35:58.461Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/checkins", - "statusCode": 200, - "duration": "21ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:36:02.399Z] [INFO] ℹ️ 출근 체크 목록 조회 요청 - Context: { - "date": "2026-01-21" -} -[2026-02-05T01:36:02.400Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers?limit=100", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:36:02.402Z] [INFO] ℹ️ 일일 근태 기록 조회 요청 - Context: { - "date": "2026-01-21", - "workerId": null -} -[2026-02-05T01:36:02.403Z] [INFO] ℹ️ 출근 체크 목록 조회 성공 - Context: { - "date": "2026-01-21", - "count": 10 -} -[2026-02-05T01:36:02.404Z] [INFO] ℹ️ 일일 근태 기록 조회 성공 - Context: { - "date": "2026-01-21", - "count": 0 -} -[2026-02-05T01:36:02.404Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/daily-records?date=2026-01-21", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:36:02.405Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/checkin-list?date=2026-01-21", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:36:03.311Z] [INFO] ℹ️ 출근 체크 일괄 저장 요청 - Context: { - "date": "2026-01-21", - "count": 10 -} -[2026-02-05T01:36:03.329Z] [INFO] ℹ️ 출근 체크 일괄 저장 성공 - Context: { - "date": "2026-01-21", - "saved": 10 -} -[2026-02-05T01:36:03.330Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/checkins", - "statusCode": 200, - "duration": "21ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:36:05.973Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:36:06.064Z] [INFO] ℹ️ 출근 체크 목록 조회 요청 - Context: { - "date": "2026-01-22" -} -[2026-02-05T01:36:06.067Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers?limit=100", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:36:06.069Z] [INFO] ℹ️ 출근 체크 목록 조회 성공 - Context: { - "date": "2026-01-22", - "count": 10 -} -[2026-02-05T01:36:06.073Z] [INFO] ℹ️ 일일 근태 기록 조회 요청 - Context: { - "date": "2026-01-22", - "workerId": null -} -[2026-02-05T01:36:06.074Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/checkin-list?date=2026-01-22", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:36:06.075Z] [INFO] ℹ️ 일일 근태 기록 조회 성공 - Context: { - "date": "2026-01-22", - "count": 0 -} -[2026-02-05T01:36:06.075Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/daily-records?date=2026-01-22", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:36:06.956Z] [INFO] ℹ️ 출근 체크 일괄 저장 요청 - Context: { - "date": "2026-01-22", - "count": 10 -} -[2026-02-05T01:36:06.975Z] [INFO] ℹ️ 출근 체크 일괄 저장 성공 - Context: { - "date": "2026-01-22", - "saved": 10 -} -[2026-02-05T01:36:06.976Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/checkins", - "statusCode": 200, - "duration": "22ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:36:09.406Z] [INFO] ℹ️ 출근 체크 목록 조회 요청 - Context: { - "date": "2026-01-23" -} -[2026-02-05T01:36:09.410Z] [INFO] ℹ️ 일일 근태 기록 조회 요청 - Context: { - "date": "2026-01-23", - "workerId": null -} -[2026-02-05T01:36:09.412Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers?limit=100", - "statusCode": 304, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:36:09.413Z] [INFO] ℹ️ 출근 체크 목록 조회 성공 - Context: { - "date": "2026-01-23", - "count": 10 -} -[2026-02-05T01:36:09.415Z] [INFO] ℹ️ 일일 근태 기록 조회 성공 - Context: { - "date": "2026-01-23", - "count": 0 -} -[2026-02-05T01:36:09.416Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/daily-records?date=2026-01-23", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:36:09.417Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/checkin-list?date=2026-01-23", - "statusCode": 200, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:36:13.708Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T01:36:20.344Z] [INFO] ℹ️ 출근 체크 일괄 저장 요청 - Context: { - "date": "2026-01-23", - "count": 10 -} -[2026-02-05T01:36:20.361Z] [INFO] ℹ️ 출근 체크 일괄 저장 성공 - Context: { - "date": "2026-01-23", - "saved": 10 -} -[2026-02-05T01:36:20.362Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/checkins", - "statusCode": 200, - "duration": "21ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:36:27.161Z] [INFO] ℹ️ 출근 체크 목록 조회 요청 - Context: { - "date": "2026-01-26" -} -[2026-02-05T01:36:27.163Z] [INFO] ℹ️ 출근 체크 목록 조회 성공 - Context: { - "date": "2026-01-26", - "count": 10 -} -[2026-02-05T01:36:27.165Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers?limit=100", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:36:27.166Z] [INFO] ℹ️ 일일 근태 기록 조회 요청 - Context: { - "date": "2026-01-26", - "workerId": null -} -[2026-02-05T01:36:27.168Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/checkin-list?date=2026-01-26", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:36:27.169Z] [INFO] ℹ️ 일일 근태 기록 조회 성공 - Context: { - "date": "2026-01-26", - "count": 0 -} -[2026-02-05T01:36:27.170Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/daily-records?date=2026-01-26", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:36:31.349Z] [INFO] ℹ️ 출근 체크 일괄 저장 요청 - Context: { - "date": "2026-01-26", - "count": 10 -} -[2026-02-05T01:36:31.367Z] [INFO] ℹ️ 출근 체크 일괄 저장 성공 - Context: { - "date": "2026-01-26", - "saved": 10 -} -[2026-02-05T01:36:31.368Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/checkins", - "statusCode": 200, - "duration": "23ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:36:37.518Z] [INFO] ℹ️ 출근 체크 목록 조회 요청 - Context: { - "date": "2026-01-27" -} -[2026-02-05T01:36:37.527Z] [INFO] ℹ️ 출근 체크 목록 조회 성공 - Context: { - "date": "2026-01-27", - "count": 10 -} -[2026-02-05T01:36:37.528Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers?limit=100", - "statusCode": 304, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:36:37.529Z] [INFO] ℹ️ 일일 근태 기록 조회 요청 - Context: { - "date": "2026-01-27", - "workerId": null -} -[2026-02-05T01:36:37.530Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/checkin-list?date=2026-01-27", - "statusCode": 200, - "duration": "15ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:36:37.531Z] [INFO] ℹ️ 일일 근태 기록 조회 성공 - Context: { - "date": "2026-01-27", - "count": 0 -} -[2026-02-05T01:36:37.531Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/daily-records?date=2026-01-27", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:36:38.452Z] [INFO] ℹ️ 출근 체크 일괄 저장 요청 - Context: { - "date": "2026-01-27", - "count": 10 -} -[2026-02-05T01:36:38.468Z] [INFO] ℹ️ 출근 체크 일괄 저장 성공 - Context: { - "date": "2026-01-27", - "saved": 10 -} -[2026-02-05T01:36:38.470Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/checkins", - "statusCode": 200, - "duration": "23ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:36:41.271Z] [INFO] ℹ️ 출근 체크 목록 조회 요청 - Context: { - "date": "2026-01-28" -} -[2026-02-05T01:36:41.274Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers?limit=100", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:36:41.276Z] [INFO] ℹ️ 출근 체크 목록 조회 성공 - Context: { - "date": "2026-01-28", - "count": 10 -} -[2026-02-05T01:36:41.280Z] [INFO] ℹ️ 일일 근태 기록 조회 요청 - Context: { - "date": "2026-01-28", - "workerId": null -} -[2026-02-05T01:36:41.281Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/checkin-list?date=2026-01-28", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:36:41.282Z] [INFO] ℹ️ 일일 근태 기록 조회 성공 - Context: { - "date": "2026-01-28", - "count": 0 -} -[2026-02-05T01:36:41.282Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/daily-records?date=2026-01-28", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:36:42.041Z] [INFO] ℹ️ 출근 체크 일괄 저장 요청 - Context: { - "date": "2026-01-28", - "count": 10 -} -[2026-02-05T01:36:42.056Z] [INFO] ℹ️ 출근 체크 일괄 저장 성공 - Context: { - "date": "2026-01-28", - "saved": 10 -} -[2026-02-05T01:36:42.057Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/checkins", - "statusCode": 200, - "duration": "19ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:36:43.641Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:36:43.796Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T01:36:44.929Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers?limit=100", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:36:44.933Z] [INFO] ℹ️ 출근 체크 목록 조회 요청 - Context: { - "date": "2026-01-29" -} -[2026-02-05T01:36:44.936Z] [INFO] ℹ️ 일일 근태 기록 조회 요청 - Context: { - "date": "2026-01-29", - "workerId": null -} -[2026-02-05T01:36:44.937Z] [INFO] ℹ️ 출근 체크 목록 조회 성공 - Context: { - "date": "2026-01-29", - "count": 10 -} -[2026-02-05T01:36:44.939Z] [INFO] ℹ️ 일일 근태 기록 조회 성공 - Context: { - "date": "2026-01-29", - "count": 0 -} -[2026-02-05T01:36:44.940Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/daily-records?date=2026-01-29", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:36:44.941Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/checkin-list?date=2026-01-29", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:36:45.757Z] [INFO] ℹ️ 출근 체크 일괄 저장 요청 - Context: { - "date": "2026-01-29", - "count": 10 -} -[2026-02-05T01:36:45.771Z] [INFO] ℹ️ 출근 체크 일괄 저장 성공 - Context: { - "date": "2026-01-29", - "saved": 10 -} -[2026-02-05T01:36:45.772Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/checkins", - "statusCode": 200, - "duration": "18ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:36:48.230Z] [INFO] ℹ️ 출근 체크 목록 조회 요청 - Context: { - "date": "2026-01-30" -} -[2026-02-05T01:36:48.234Z] [INFO] ℹ️ 일일 근태 기록 조회 요청 - Context: { - "date": "2026-01-30", - "workerId": null -} -[2026-02-05T01:36:48.236Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers?limit=100", - "statusCode": 304, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:36:48.237Z] [INFO] ℹ️ 출근 체크 목록 조회 성공 - Context: { - "date": "2026-01-30", - "count": 10 -} -[2026-02-05T01:36:48.238Z] [INFO] ℹ️ 일일 근태 기록 조회 성공 - Context: { - "date": "2026-01-30", - "count": 0 -} -[2026-02-05T01:36:48.240Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/daily-records?date=2026-01-30", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:36:48.241Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/checkin-list?date=2026-01-30", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:36:52.619Z] [INFO] ℹ️ 출근 체크 일괄 저장 요청 - Context: { - "date": "2026-01-30", - "count": 10 -} -[2026-02-05T01:36:52.638Z] [INFO] ℹ️ 출근 체크 일괄 저장 성공 - Context: { - "date": "2026-01-30", - "saved": 10 -} -[2026-02-05T01:36:52.639Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/checkins", - "statusCode": 200, - "duration": "23ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:36:55.072Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers?limit=100", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:36:55.079Z] [INFO] ℹ️ 일일 근태 기록 조회 요청 - Context: { - "date": "2026-02-05", - "workerId": null -} -[2026-02-05T01:36:55.086Z] [INFO] ℹ️ 일일 근태 기록 조회 성공 - Context: { - "date": "2026-02-05", - "count": 10 -} -[2026-02-05T01:36:55.093Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/daily-records?date=2026-02-05", - "statusCode": 200, - "duration": "17ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:36:55.162Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260205", - "baseTime": "1000", - "nx": 57, - "ny": 119 -} -[2026-02-05T01:36:55.200Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:36:55.261Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 6, - "humidity": 64, - "windSpeed": 0.9, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-05T01:36:55.263Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 6, - "humidity": 64, - "windSpeed": 0.9, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-05T01:36:55.264Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "160ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:37:01.985Z] [INFO] ℹ️ 일일 근태 기록 조회 요청 - Context: { - "date": "2026-01-02", - "workerId": null -} -[2026-02-05T01:37:01.990Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers?limit=100", - "statusCode": 304, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:37:01.992Z] [INFO] ℹ️ 일일 근태 기록 조회 성공 - Context: { - "date": "2026-01-02", - "count": 10 -} -[2026-02-05T01:37:01.995Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/daily-records?date=2026-01-02", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:37:06.753Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-02", - "worker_id": 11 -} -[2026-02-05T01:37:06.760Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-02", - "worker_id": 11 -} -[2026-02-05T01:37:06.761Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:37:06.769Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-02", - "worker_id": 10 -} -[2026-02-05T01:37:06.772Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-02", - "worker_id": 10 -} -[2026-02-05T01:37:06.773Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:37:06.782Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-02", - "worker_id": 9 -} -[2026-02-05T01:37:06.784Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-02", - "worker_id": 9 -} -[2026-02-05T01:37:06.785Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:37:06.793Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-02", - "worker_id": 8 -} -[2026-02-05T01:37:06.795Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-02", - "worker_id": 8 -} -[2026-02-05T01:37:06.796Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:37:06.802Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-02", - "worker_id": 6 -} -[2026-02-05T01:37:06.804Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-02", - "worker_id": 6 -} -[2026-02-05T01:37:06.805Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:37:06.810Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-02", - "worker_id": 5 -} -[2026-02-05T01:37:06.813Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-02", - "worker_id": 5 -} -[2026-02-05T01:37:06.814Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:37:06.821Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-02", - "worker_id": 4 -} -[2026-02-05T01:37:06.823Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-02", - "worker_id": 4 -} -[2026-02-05T01:37:06.823Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:37:06.828Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-02", - "worker_id": 3 -} -[2026-02-05T01:37:06.830Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-02", - "worker_id": 3 -} -[2026-02-05T01:37:06.831Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:37:06.837Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-02", - "worker_id": 2 -} -[2026-02-05T01:37:06.839Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-02", - "worker_id": 2 -} -[2026-02-05T01:37:06.839Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:37:06.845Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-02", - "worker_id": 1 -} -[2026-02-05T01:37:06.847Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-02", - "worker_id": 1 -} -[2026-02-05T01:37:06.847Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:37:13.883Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T01:37:15.189Z] [INFO] ℹ️ 일일 근태 기록 조회 요청 - Context: { - "date": "2026-01-05", - "workerId": null -} -[2026-02-05T01:37:15.193Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers?limit=100", - "statusCode": 304, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:37:15.194Z] [INFO] ℹ️ 일일 근태 기록 조회 성공 - Context: { - "date": "2026-01-05", - "count": 10 -} -[2026-02-05T01:37:15.195Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/attendance/daily-records?date=2026-01-05", - "statusCode": 304, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:37:26.756Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:37:32.654Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-05", - "worker_id": 11 -} -[2026-02-05T01:37:32.658Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-05", - "worker_id": 11 -} -[2026-02-05T01:37:32.660Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:37:32.671Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-05", - "worker_id": 10 -} -[2026-02-05T01:37:32.674Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-05", - "worker_id": 10 -} -[2026-02-05T01:37:32.676Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:37:32.681Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-05", - "worker_id": 9 -} -[2026-02-05T01:37:32.683Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-05", - "worker_id": 9 -} -[2026-02-05T01:37:32.684Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:37:32.689Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-05", - "worker_id": 8 -} -[2026-02-05T01:37:32.691Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-05", - "worker_id": 8 -} -[2026-02-05T01:37:32.692Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:37:32.699Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-05", - "worker_id": 6 -} -[2026-02-05T01:37:32.700Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-05", - "worker_id": 6 -} -[2026-02-05T01:37:32.701Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:37:32.706Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-05", - "worker_id": 5 -} -[2026-02-05T01:37:32.707Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-05", - "worker_id": 5 -} -[2026-02-05T01:37:32.708Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:37:32.713Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-05", - "worker_id": 4 -} -[2026-02-05T01:37:32.715Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-05", - "worker_id": 4 -} -[2026-02-05T01:37:32.716Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:37:32.721Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-05", - "worker_id": 3 -} -[2026-02-05T01:37:32.724Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-05", - "worker_id": 3 -} -[2026-02-05T01:37:32.725Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:37:32.731Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-05", - "worker_id": 2 -} -[2026-02-05T01:37:32.733Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-05", - "worker_id": 2 -} -[2026-02-05T01:37:32.733Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:37:32.739Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-05", - "worker_id": 1 -} -[2026-02-05T01:37:32.741Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-05", - "worker_id": 1 -} -[2026-02-05T01:37:32.742Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:37:37.636Z] [INFO] ℹ️ 일일 근태 기록 조회 요청 - Context: { - "date": "2026-01-06", - "workerId": null -} -[2026-02-05T01:37:37.642Z] [INFO] ℹ️ 일일 근태 기록 조회 성공 - Context: { - "date": "2026-01-06", - "count": 10 -} -[2026-02-05T01:37:37.645Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers?limit=100", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:37:37.648Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/daily-records?date=2026-01-06", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:37:43.962Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T01:37:46.262Z] [INFO] ℹ️ 일일 근태 기록 조회 요청 - Context: { - "date": "2026-01-06", - "workerId": null -} -[2026-02-05T01:37:46.267Z] [INFO] ℹ️ 일일 근태 기록 조회 성공 - Context: { - "date": "2026-01-06", - "count": 10 -} -[2026-02-05T01:37:46.269Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/attendance/daily-records?date=2026-01-06", - "statusCode": 304, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:37:46.271Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers?limit=100", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:37:50.117Z] [INFO] ℹ️ 일일 근태 기록 조회 요청 - Context: { - "date": "2026-01-07", - "workerId": null -} -[2026-02-05T01:37:50.121Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers?limit=100", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:37:50.124Z] [INFO] ℹ️ 일일 근태 기록 조회 성공 - Context: { - "date": "2026-01-07", - "count": 10 -} -[2026-02-05T01:37:50.127Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/daily-records?date=2026-01-07", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:37:57.947Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-07", - "worker_id": 11 -} -[2026-02-05T01:37:57.951Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-07", - "worker_id": 11 -} -[2026-02-05T01:37:57.953Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:37:57.961Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-07", - "worker_id": 10 -} -[2026-02-05T01:37:57.966Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-07", - "worker_id": 10 -} -[2026-02-05T01:37:57.967Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:37:57.968Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:37:57.975Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-07", - "worker_id": 9 -} -[2026-02-05T01:37:57.977Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-07", - "worker_id": 9 -} -[2026-02-05T01:37:57.978Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:37:57.985Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-07", - "worker_id": 8 -} -[2026-02-05T01:37:57.987Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-07", - "worker_id": 8 -} -[2026-02-05T01:37:57.988Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:37:57.994Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-07", - "worker_id": 6 -} -[2026-02-05T01:37:57.995Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-07", - "worker_id": 6 -} -[2026-02-05T01:37:57.996Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:37:58.002Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-07", - "worker_id": 5 -} -[2026-02-05T01:37:58.004Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-07", - "worker_id": 5 -} -[2026-02-05T01:37:58.004Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:37:58.010Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-07", - "worker_id": 4 -} -[2026-02-05T01:37:58.011Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-07", - "worker_id": 4 -} -[2026-02-05T01:37:58.011Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:37:58.017Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-07", - "worker_id": 3 -} -[2026-02-05T01:37:58.019Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-07", - "worker_id": 3 -} -[2026-02-05T01:37:58.019Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:37:58.024Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-07", - "worker_id": 2 -} -[2026-02-05T01:37:58.026Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-07", - "worker_id": 2 -} -[2026-02-05T01:37:58.027Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:37:58.032Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-07", - "worker_id": 1 -} -[2026-02-05T01:37:58.035Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-07", - "worker_id": 1 -} -[2026-02-05T01:37:58.036Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:38:14.051Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T01:38:14.345Z] [INFO] ℹ️ 일일 근태 기록 조회 요청 - Context: { - "date": "2026-01-08", - "workerId": null -} -[2026-02-05T01:38:14.349Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers?limit=100", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:38:14.351Z] [INFO] ℹ️ 일일 근태 기록 조회 성공 - Context: { - "date": "2026-01-08", - "count": 10 -} -[2026-02-05T01:38:14.355Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/daily-records?date=2026-01-08", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:38:17.281Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-08", - "worker_id": 11 -} -[2026-02-05T01:38:17.287Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-08", - "worker_id": 11 -} -[2026-02-05T01:38:17.288Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:38:17.295Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-08", - "worker_id": 10 -} -[2026-02-05T01:38:17.298Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-08", - "worker_id": 10 -} -[2026-02-05T01:38:17.299Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:38:17.306Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-08", - "worker_id": 9 -} -[2026-02-05T01:38:17.308Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-08", - "worker_id": 9 -} -[2026-02-05T01:38:17.309Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:38:17.316Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-08", - "worker_id": 8 -} -[2026-02-05T01:38:17.318Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-08", - "worker_id": 8 -} -[2026-02-05T01:38:17.318Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:38:17.324Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-08", - "worker_id": 6 -} -[2026-02-05T01:38:17.325Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-08", - "worker_id": 6 -} -[2026-02-05T01:38:17.326Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:38:17.331Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-08", - "worker_id": 5 -} -[2026-02-05T01:38:17.332Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-08", - "worker_id": 5 -} -[2026-02-05T01:38:17.333Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:38:17.338Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-08", - "worker_id": 4 -} -[2026-02-05T01:38:17.340Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-08", - "worker_id": 4 -} -[2026-02-05T01:38:17.340Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:38:17.345Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-08", - "worker_id": 3 -} -[2026-02-05T01:38:17.347Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-08", - "worker_id": 3 -} -[2026-02-05T01:38:17.347Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:38:17.353Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-08", - "worker_id": 2 -} -[2026-02-05T01:38:17.355Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-08", - "worker_id": 2 -} -[2026-02-05T01:38:17.355Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:38:17.360Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-08", - "worker_id": 1 -} -[2026-02-05T01:38:17.361Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-08", - "worker_id": 1 -} -[2026-02-05T01:38:17.362Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:38:24.915Z] [INFO] ℹ️ 일일 근태 기록 조회 요청 - Context: { - "date": "2026-01-09", - "workerId": null -} -[2026-02-05T01:38:24.919Z] [INFO] ℹ️ 일일 근태 기록 조회 성공 - Context: { - "date": "2026-01-09", - "count": 10 -} -[2026-02-05T01:38:24.922Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers?limit=100", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:38:24.925Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/daily-records?date=2026-01-09", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:38:27.795Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-09", - "worker_id": 11 -} -[2026-02-05T01:38:27.800Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-09", - "worker_id": 11 -} -[2026-02-05T01:38:27.802Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:38:27.808Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-09", - "worker_id": 10 -} -[2026-02-05T01:38:27.811Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-09", - "worker_id": 10 -} -[2026-02-05T01:38:27.813Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:38:27.821Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-09", - "worker_id": 9 -} -[2026-02-05T01:38:27.824Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-09", - "worker_id": 9 -} -[2026-02-05T01:38:27.825Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:38:27.832Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-09", - "worker_id": 8 -} -[2026-02-05T01:38:27.836Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-09", - "worker_id": 8 -} -[2026-02-05T01:38:27.837Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:38:27.844Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-09", - "worker_id": 6 -} -[2026-02-05T01:38:27.847Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-09", - "worker_id": 6 -} -[2026-02-05T01:38:27.847Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:38:27.854Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-09", - "worker_id": 5 -} -[2026-02-05T01:38:27.855Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-09", - "worker_id": 5 -} -[2026-02-05T01:38:27.856Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:38:27.861Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-09", - "worker_id": 4 -} -[2026-02-05T01:38:27.863Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-09", - "worker_id": 4 -} -[2026-02-05T01:38:27.864Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:38:27.869Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-09", - "worker_id": 3 -} -[2026-02-05T01:38:27.871Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-09", - "worker_id": 3 -} -[2026-02-05T01:38:27.871Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:38:27.876Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-09", - "worker_id": 2 -} -[2026-02-05T01:38:27.877Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-09", - "worker_id": 2 -} -[2026-02-05T01:38:27.878Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:38:27.882Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-09", - "worker_id": 1 -} -[2026-02-05T01:38:27.883Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-09", - "worker_id": 1 -} -[2026-02-05T01:38:27.884Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:38:31.453Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:38:34.982Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers?limit=100", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:38:34.987Z] [INFO] ℹ️ 일일 근태 기록 조회 요청 - Context: { - "date": "2026-01-12", - "workerId": null -} -[2026-02-05T01:38:34.991Z] [INFO] ℹ️ 일일 근태 기록 조회 성공 - Context: { - "date": "2026-01-12", - "count": 10 -} -[2026-02-05T01:38:34.993Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/daily-records?date=2026-01-12", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:38:37.962Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-12", - "worker_id": 11 -} -[2026-02-05T01:38:37.965Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-12", - "worker_id": 11 -} -[2026-02-05T01:38:37.967Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:38:37.977Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-12", - "worker_id": 10 -} -[2026-02-05T01:38:37.980Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-12", - "worker_id": 10 -} -[2026-02-05T01:38:37.982Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:38:37.988Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-12", - "worker_id": 9 -} -[2026-02-05T01:38:37.991Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-12", - "worker_id": 9 -} -[2026-02-05T01:38:37.992Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:38:37.997Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-12", - "worker_id": 8 -} -[2026-02-05T01:38:37.998Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-12", - "worker_id": 8 -} -[2026-02-05T01:38:37.999Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:38:38.004Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-12", - "worker_id": 6 -} -[2026-02-05T01:38:38.005Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-12", - "worker_id": 6 -} -[2026-02-05T01:38:38.006Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:38:38.011Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-12", - "worker_id": 5 -} -[2026-02-05T01:38:38.012Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-12", - "worker_id": 5 -} -[2026-02-05T01:38:38.012Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:38:38.017Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-12", - "worker_id": 4 -} -[2026-02-05T01:38:38.019Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-12", - "worker_id": 4 -} -[2026-02-05T01:38:38.020Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:38:38.024Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-12", - "worker_id": 3 -} -[2026-02-05T01:38:38.026Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-12", - "worker_id": 3 -} -[2026-02-05T01:38:38.027Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:38:38.031Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-12", - "worker_id": 2 -} -[2026-02-05T01:38:38.033Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-12", - "worker_id": 2 -} -[2026-02-05T01:38:38.034Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:38:38.038Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-12", - "worker_id": 1 -} -[2026-02-05T01:38:38.039Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-12", - "worker_id": 1 -} -[2026-02-05T01:38:38.039Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:38:41.974Z] [INFO] ℹ️ 일일 근태 기록 조회 요청 - Context: { - "date": "2026-01-13", - "workerId": null -} -[2026-02-05T01:38:41.978Z] [INFO] ℹ️ 일일 근태 기록 조회 성공 - Context: { - "date": "2026-01-13", - "count": 10 -} -[2026-02-05T01:38:41.981Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/daily-records?date=2026-01-13", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:38:41.985Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=100", - "statusCode": 200, - "duration": "16ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:38:44.146Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T01:38:52.756Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-13", - "worker_id": 11 -} -[2026-02-05T01:38:52.759Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-13", - "worker_id": 11 -} -[2026-02-05T01:38:52.761Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:38:52.771Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-13", - "worker_id": 10 -} -[2026-02-05T01:38:52.774Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-13", - "worker_id": 10 -} -[2026-02-05T01:38:52.775Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:38:52.779Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-13", - "worker_id": 9 -} -[2026-02-05T01:38:52.780Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-13", - "worker_id": 9 -} -[2026-02-05T01:38:52.781Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:38:52.786Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-13", - "worker_id": 8 -} -[2026-02-05T01:38:52.787Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-13", - "worker_id": 8 -} -[2026-02-05T01:38:52.788Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:38:52.792Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-13", - "worker_id": 6 -} -[2026-02-05T01:38:52.794Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-13", - "worker_id": 6 -} -[2026-02-05T01:38:52.794Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:38:52.799Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-13", - "worker_id": 5 -} -[2026-02-05T01:38:52.801Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-13", - "worker_id": 5 -} -[2026-02-05T01:38:52.802Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:38:52.807Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-13", - "worker_id": 4 -} -[2026-02-05T01:38:52.809Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-13", - "worker_id": 4 -} -[2026-02-05T01:38:52.809Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:38:52.815Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-13", - "worker_id": 3 -} -[2026-02-05T01:38:52.817Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-13", - "worker_id": 3 -} -[2026-02-05T01:38:52.818Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:38:52.824Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-13", - "worker_id": 2 -} -[2026-02-05T01:38:52.826Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-13", - "worker_id": 2 -} -[2026-02-05T01:38:52.826Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:38:52.830Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-13", - "worker_id": 1 -} -[2026-02-05T01:38:52.832Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-13", - "worker_id": 1 -} -[2026-02-05T01:38:52.833Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:38:56.855Z] [INFO] ℹ️ 일일 근태 기록 조회 요청 - Context: { - "date": "2026-01-14", - "workerId": null -} -[2026-02-05T01:38:56.859Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=100", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:38:56.861Z] [INFO] ℹ️ 일일 근태 기록 조회 성공 - Context: { - "date": "2026-01-14", - "count": 10 -} -[2026-02-05T01:38:56.863Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/daily-records?date=2026-01-14", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:39:03.817Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:39:05.293Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-14", - "worker_id": 11 -} -[2026-02-05T01:39:05.298Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-14", - "worker_id": 11 -} -[2026-02-05T01:39:05.300Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:39:05.307Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-14", - "worker_id": 10 -} -[2026-02-05T01:39:05.310Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-14", - "worker_id": 10 -} -[2026-02-05T01:39:05.312Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:39:05.319Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-14", - "worker_id": 9 -} -[2026-02-05T01:39:05.321Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-14", - "worker_id": 9 -} -[2026-02-05T01:39:05.321Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:39:05.329Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-14", - "worker_id": 8 -} -[2026-02-05T01:39:05.330Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-14", - "worker_id": 8 -} -[2026-02-05T01:39:05.331Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:39:05.337Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-14", - "worker_id": 6 -} -[2026-02-05T01:39:05.338Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-14", - "worker_id": 6 -} -[2026-02-05T01:39:05.338Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:39:05.344Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-14", - "worker_id": 5 -} -[2026-02-05T01:39:05.346Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-14", - "worker_id": 5 -} -[2026-02-05T01:39:05.346Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:39:05.353Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-14", - "worker_id": 4 -} -[2026-02-05T01:39:05.354Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-14", - "worker_id": 4 -} -[2026-02-05T01:39:05.355Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:39:05.359Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-14", - "worker_id": 3 -} -[2026-02-05T01:39:05.360Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-14", - "worker_id": 3 -} -[2026-02-05T01:39:05.361Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:39:05.365Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-14", - "worker_id": 2 -} -[2026-02-05T01:39:05.367Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-14", - "worker_id": 2 -} -[2026-02-05T01:39:05.367Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:39:05.372Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-14", - "worker_id": 1 -} -[2026-02-05T01:39:05.373Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-14", - "worker_id": 1 -} -[2026-02-05T01:39:05.374Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:39:14.234Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T01:39:14.327Z] [INFO] ℹ️ 일일 근태 기록 조회 요청 - Context: { - "date": "2026-01-15", - "workerId": null -} -[2026-02-05T01:39:14.328Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers?limit=100", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:39:14.330Z] [INFO] ℹ️ 일일 근태 기록 조회 성공 - Context: { - "date": "2026-01-15", - "count": 10 -} -[2026-02-05T01:39:14.330Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/daily-records?date=2026-01-15", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:39:18.932Z] [INFO] ℹ️ 일일 근태 기록 조회 요청 - Context: { - "date": "2026-01-15", - "workerId": null -} -[2026-02-05T01:39:18.936Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers?limit=100", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:39:18.939Z] [INFO] ℹ️ 일일 근태 기록 조회 성공 - Context: { - "date": "2026-01-15", - "count": 10 -} -[2026-02-05T01:39:18.940Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/attendance/daily-records?date=2026-01-15", - "statusCode": 304, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:39:22.996Z] [INFO] ℹ️ 일일 근태 기록 조회 요청 - Context: { - "date": "2026-01-16", - "workerId": null -} -[2026-02-05T01:39:23.000Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers?limit=100", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:39:23.003Z] [INFO] ℹ️ 일일 근태 기록 조회 성공 - Context: { - "date": "2026-01-16", - "count": 10 -} -[2026-02-05T01:39:23.006Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/daily-records?date=2026-01-16", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:39:26.054Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-16", - "worker_id": 11 -} -[2026-02-05T01:39:26.058Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-16", - "worker_id": 11 -} -[2026-02-05T01:39:26.059Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:39:26.069Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-16", - "worker_id": 10 -} -[2026-02-05T01:39:26.072Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-16", - "worker_id": 10 -} -[2026-02-05T01:39:26.073Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:39:26.080Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-16", - "worker_id": 9 -} -[2026-02-05T01:39:26.082Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-16", - "worker_id": 9 -} -[2026-02-05T01:39:26.083Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:39:26.090Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-16", - "worker_id": 8 -} -[2026-02-05T01:39:26.092Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-16", - "worker_id": 8 -} -[2026-02-05T01:39:26.093Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:39:26.099Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-16", - "worker_id": 6 -} -[2026-02-05T01:39:26.100Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-16", - "worker_id": 6 -} -[2026-02-05T01:39:26.101Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:39:26.105Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-16", - "worker_id": 5 -} -[2026-02-05T01:39:26.107Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-16", - "worker_id": 5 -} -[2026-02-05T01:39:26.108Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:39:26.112Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-16", - "worker_id": 4 -} -[2026-02-05T01:39:26.114Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-16", - "worker_id": 4 -} -[2026-02-05T01:39:26.114Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:39:26.118Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-16", - "worker_id": 3 -} -[2026-02-05T01:39:26.120Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-16", - "worker_id": 3 -} -[2026-02-05T01:39:26.121Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:39:26.125Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-16", - "worker_id": 2 -} -[2026-02-05T01:39:26.126Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-16", - "worker_id": 2 -} -[2026-02-05T01:39:26.127Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:39:26.131Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-16", - "worker_id": 1 -} -[2026-02-05T01:39:26.134Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-16", - "worker_id": 1 -} -[2026-02-05T01:39:26.134Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:39:36.324Z] [INFO] ℹ️ 일일 근태 기록 조회 요청 - Context: { - "date": "2026-01-19", - "workerId": null -} -[2026-02-05T01:39:36.327Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers?limit=100", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:39:36.328Z] [INFO] ℹ️ 일일 근태 기록 조회 성공 - Context: { - "date": "2026-01-19", - "count": 10 -} -[2026-02-05T01:39:36.331Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/daily-records?date=2026-01-19", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:39:36.438Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:39:43.885Z] [INFO] ℹ️ 일일 근태 기록 조회 요청 - Context: { - "date": "2026-01-20", - "workerId": null -} -[2026-02-05T01:39:43.888Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers?limit=100", - "statusCode": 304, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:39:43.890Z] [INFO] ℹ️ 일일 근태 기록 조회 성공 - Context: { - "date": "2026-01-20", - "count": 10 -} -[2026-02-05T01:39:43.891Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/daily-records?date=2026-01-20", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:39:44.324Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T01:39:46.920Z] [INFO] ℹ️ 일일 근태 기록 조회 요청 - Context: { - "date": "2026-01-21", - "workerId": null -} -[2026-02-05T01:39:46.923Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers?limit=100", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:39:46.925Z] [INFO] ℹ️ 일일 근태 기록 조회 성공 - Context: { - "date": "2026-01-21", - "count": 10 -} -[2026-02-05T01:39:46.928Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/daily-records?date=2026-01-21", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:39:53.449Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-21", - "worker_id": 11 -} -[2026-02-05T01:39:53.453Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-21", - "worker_id": 11 -} -[2026-02-05T01:39:53.455Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:39:53.461Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-21", - "worker_id": 10 -} -[2026-02-05T01:39:53.464Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-21", - "worker_id": 10 -} -[2026-02-05T01:39:53.465Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:39:53.473Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-21", - "worker_id": 9 -} -[2026-02-05T01:39:53.475Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-21", - "worker_id": 9 -} -[2026-02-05T01:39:53.476Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:39:53.482Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-21", - "worker_id": 8 -} -[2026-02-05T01:39:53.484Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-21", - "worker_id": 8 -} -[2026-02-05T01:39:53.484Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:39:53.489Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-21", - "worker_id": 6 -} -[2026-02-05T01:39:53.491Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-21", - "worker_id": 6 -} -[2026-02-05T01:39:53.492Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:39:53.496Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-21", - "worker_id": 5 -} -[2026-02-05T01:39:53.498Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-21", - "worker_id": 5 -} -[2026-02-05T01:39:53.499Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:39:53.504Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-21", - "worker_id": 4 -} -[2026-02-05T01:39:53.505Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-21", - "worker_id": 4 -} -[2026-02-05T01:39:53.506Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:39:53.510Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-21", - "worker_id": 3 -} -[2026-02-05T01:39:53.512Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-21", - "worker_id": 3 -} -[2026-02-05T01:39:53.513Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:39:53.518Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-21", - "worker_id": 2 -} -[2026-02-05T01:39:53.520Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-21", - "worker_id": 2 -} -[2026-02-05T01:39:53.520Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:39:53.525Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-21", - "worker_id": 1 -} -[2026-02-05T01:39:53.527Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-21", - "worker_id": 1 -} -[2026-02-05T01:39:53.527Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:39:57.134Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers?limit=100", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:39:57.139Z] [INFO] ℹ️ 일일 근태 기록 조회 요청 - Context: { - "date": "2026-01-22", - "workerId": null -} -[2026-02-05T01:39:57.142Z] [INFO] ℹ️ 일일 근태 기록 조회 성공 - Context: { - "date": "2026-01-22", - "count": 10 -} -[2026-02-05T01:39:57.144Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/daily-records?date=2026-01-22", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:40:07.704Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:40:07.993Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers?limit=100", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:40:07.997Z] [INFO] ℹ️ 일일 근태 기록 조회 요청 - Context: { - "date": "2026-01-23", - "workerId": null -} -[2026-02-05T01:40:08.000Z] [INFO] ℹ️ 일일 근태 기록 조회 성공 - Context: { - "date": "2026-01-23", - "count": 10 -} -[2026-02-05T01:40:08.002Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/daily-records?date=2026-01-23", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:40:14.443Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T01:40:17.723Z] [INFO] ℹ️ 일일 근태 기록 조회 요청 - Context: { - "date": "2026-01-26", - "workerId": null -} -[2026-02-05T01:40:17.728Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers?limit=100", - "statusCode": 304, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:40:17.729Z] [INFO] ℹ️ 일일 근태 기록 조회 성공 - Context: { - "date": "2026-01-26", - "count": 10 -} -[2026-02-05T01:40:17.732Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/daily-records?date=2026-01-26", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:40:19.940Z] [INFO] ℹ️ 일일 근태 기록 조회 요청 - Context: { - "date": "2026-01-27", - "workerId": null -} -[2026-02-05T01:40:19.942Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers?limit=100", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:40:19.943Z] [INFO] ℹ️ 일일 근태 기록 조회 성공 - Context: { - "date": "2026-01-27", - "count": 10 -} -[2026-02-05T01:40:19.945Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/daily-records?date=2026-01-27", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:40:20.690Z] [INFO] ℹ️ 일일 근태 기록 조회 요청 - Context: { - "date": "2026-01-27", - "workerId": null -} -[2026-02-05T01:40:20.691Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers?limit=100", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:40:20.693Z] [INFO] ℹ️ 일일 근태 기록 조회 성공 - Context: { - "date": "2026-01-27", - "count": 10 -} -[2026-02-05T01:40:20.694Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/attendance/daily-records?date=2026-01-27", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:40:22.570Z] [INFO] ℹ️ 일일 근태 기록 조회 요청 - Context: { - "date": "2026-01-28", - "workerId": null -} -[2026-02-05T01:40:22.573Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers?limit=100", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:40:22.575Z] [INFO] ℹ️ 일일 근태 기록 조회 성공 - Context: { - "date": "2026-01-28", - "count": 10 -} -[2026-02-05T01:40:22.579Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/daily-records?date=2026-01-28", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:40:24.471Z] [INFO] ℹ️ 일일 근태 기록 조회 요청 - Context: { - "date": "2026-01-29", - "workerId": null -} -[2026-02-05T01:40:24.475Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers?limit=100", - "statusCode": 304, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:40:24.477Z] [INFO] ℹ️ 일일 근태 기록 조회 성공 - Context: { - "date": "2026-01-29", - "count": 10 -} -[2026-02-05T01:40:24.479Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/daily-records?date=2026-01-29", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:40:26.510Z] [INFO] ℹ️ 일일 근태 기록 조회 요청 - Context: { - "date": "2026-01-30", - "workerId": null -} -[2026-02-05T01:40:26.514Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers?limit=100", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:40:26.516Z] [INFO] ℹ️ 일일 근태 기록 조회 성공 - Context: { - "date": "2026-01-30", - "count": 10 -} -[2026-02-05T01:40:26.519Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/daily-records?date=2026-01-30", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:40:37.721Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:40:44.561Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T01:41:07.719Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:41:14.659Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T01:41:37.720Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:41:44.746Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T01:42:07.728Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:42:14.842Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T01:42:37.736Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:42:44.964Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T01:42:45.214Z] [INFO] ℹ️ SIGINT 신호 수신 - 서버 종료 시작 -[2026-02-05T01:42:45.281Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-02-05T01:42:45.639Z] [INFO] ℹ️ Rate Limiting 설정 완료 -[2026-02-05T01:42:45.639Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-02-05T01:42:45.744Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-02-05T01:42:45.875Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v24.4.0" -} -[2026-02-05T01:42:45.882Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-02-05T01:42:54.685Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-02-05T01:43:07.731Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:43:15.102Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T01:43:37.720Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:43:43.978Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 304, - "duration": "16ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:43:44.010Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260205", - "baseTime": "1000", - "nx": 57, - "ny": 119 -} -[2026-02-05T01:43:44.097Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:43:44.153Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 6, - "humidity": 64, - "windSpeed": 0.9, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-05T01:43:44.154Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 6, - "humidity": 64, - "windSpeed": 0.9, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-05T01:43:44.157Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 304, - "duration": "158ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:43:44.938Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:43:45.186Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T01:43:53.347Z] [INFO] ℹ️ 프로젝트별-작업별 시간 분석 요청 - Context: { - "start": "2026-01-01", - "end": "2026-01-30" -} -[2026-02-05T01:43:53.350Z] [INFO] ℹ️ 작업자별 통계 조회 요청 - Context: { - "start": "2026-01-01", - "end": "2026-01-30" -} -[2026-02-05T01:43:53.354Z] [INFO] ℹ️ 작업자별 통계 조회 성공 - Context: { - "start": "2026-01-01", - "end": "2026-01-30", - "workerCount": 10 -} -[2026-02-05T01:43:53.357Z] [INFO] ℹ️ 프로젝트별-작업별 시간 분석 성공 - Context: { - "start": "2026-01-01", - "end": "2026-01-30", - "projectCount": 5, - "workTypeCount": 6, - "totalHours": 1680 -} -[2026-02-05T01:43:53.358Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/work-analysis/project-worktype-analysis?start=2026-01-01&end=2026-01-30", - "statusCode": 304, - "duration": "17ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:43:53.359Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-analysis/worker-stats?start=2026-01-01&end=2026-01-30", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:43:53.363Z] [INFO] ℹ️ 최근 작업 현황 조회 요청 - Context: { - "start": "2026-01-01", - "end": "2026-01-30", - "limit": 2000 -} -[2026-02-05T01:43:53.368Z] [INFO] ℹ️ 최근 작업 현황 조회 성공 - Context: { - "start": "2026-01-01", - "end": "2026-01-30", - "limit": 2000, - "resultCount": 216 -} -[2026-02-05T01:43:53.370Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/work-analysis/recent-work?start=2026-01-01&end=2026-01-30&limit=2000", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:44:13.927Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:44:15.299Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T01:44:43.894Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:44:45.395Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T01:45:00.644Z] [INFO] ℹ️ 일일 근태 기록 조회 요청 - Context: { - "date": "2026-02-05", - "workerId": null -} -[2026-02-05T01:45:00.651Z] [INFO] ℹ️ 일일 근태 기록 조회 성공 - Context: { - "date": "2026-02-05", - "count": 10 -} -[2026-02-05T01:45:00.652Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/attendance/daily-records?date=2026-02-05", - "statusCode": 304, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:45:00.657Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=100", - "statusCode": 200, - "duration": "18ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:45:00.734Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:45:07.237Z] [INFO] ℹ️ 일일 근태 기록 조회 요청 - Context: { - "date": "2026-01-16", - "workerId": null -} -[2026-02-05T01:45:07.242Z] [INFO] ℹ️ 일일 근태 기록 조회 성공 - Context: { - "date": "2026-01-16", - "count": 10 -} -[2026-02-05T01:45:07.245Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=100", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:45:07.246Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/daily-records?date=2026-01-16", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:45:15.510Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T01:45:20.473Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:45:21.879Z] [INFO] ℹ️ 일일 근태 기록 조회 요청 - Context: { - "date": "2026-02-05", - "workerId": null -} -[2026-02-05T01:45:21.881Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=100", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:45:21.882Z] [INFO] ℹ️ 일일 근태 기록 조회 성공 - Context: { - "date": "2026-02-05", - "count": 10 -} -[2026-02-05T01:45:21.885Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/daily-records?date=2026-02-05", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:45:22.017Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:45:24.901Z] [INFO] ℹ️ 일일 근태 기록 조회 요청 - Context: { - "date": "2026-02-05", - "workerId": null -} -[2026-02-05T01:45:24.906Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers?limit=100", - "statusCode": 304, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:45:24.908Z] [INFO] ℹ️ 일일 근태 기록 조회 성공 - Context: { - "date": "2026-02-05", - "count": 10 -} -[2026-02-05T01:45:24.910Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/attendance/daily-records?date=2026-02-05", - "statusCode": 304, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:45:27.707Z] [INFO] ℹ️ 일일 근태 기록 조회 요청 - Context: { - "date": "2026-01-16", - "workerId": null -} -[2026-02-05T01:45:27.716Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers?limit=100", - "statusCode": 304, - "duration": "15ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:45:27.722Z] [INFO] ℹ️ 일일 근태 기록 조회 성공 - Context: { - "date": "2026-01-16", - "count": 10 -} -[2026-02-05T01:45:27.726Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/daily-records?date=2026-01-16", - "statusCode": 200, - "duration": "23ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:45:45.641Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T01:45:51.827Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:46:15.726Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T01:46:21.829Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:46:45.853Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T01:46:51.834Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:47:15.943Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T01:47:21.828Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:47:46.032Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T01:47:51.834Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:48:16.131Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T01:48:21.831Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:48:46.223Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T01:48:51.835Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:49:16.330Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T01:49:21.831Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:49:46.411Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T01:49:51.833Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:50:16.543Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T01:50:21.843Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:50:29.656Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260205", - "baseTime": "1000", - "nx": 57, - "ny": 119 -} -[2026-02-05T01:50:29.695Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/active/list", - "statusCode": 200, - "duration": "15ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:50:29.709Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:50:29.719Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:50:29.733Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-05", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:50:29.737Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "17ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:50:29.750Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:50:30.979Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 6.7, - "humidity": 62, - "windSpeed": 0.8, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-05T01:50:30.984Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 6.7, - "humidity": 62, - "windSpeed": 0.8, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-05T01:50:30.988Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "1340ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:50:35.341Z] [INFO] ℹ️ SIGINT 신호 수신 - 서버 종료 시작 -[2026-02-05T01:50:35.346Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-02-05T01:50:35.921Z] [INFO] ℹ️ Rate Limiting 설정 완료 -[2026-02-05T01:50:35.922Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-02-05T01:50:36.022Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-02-05T01:50:36.200Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v24.4.0" -} -[2026-02-05T01:50:36.206Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-02-05T01:50:46.712Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "10ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T01:50:59.500Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:51:16.818Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T01:51:29.490Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:51:46.910Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T01:51:59.497Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:52:01.264Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:52:01.420Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:52:02.247Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:52:09.360Z] [INFO] ℹ️ 프로젝트별-작업별 시간 분석 요청 - Context: { - "start": "2026-01-01", - "end": "2026-01-30" -} -[2026-02-05T01:52:09.363Z] [INFO] ℹ️ 작업자별 통계 조회 요청 - Context: { - "start": "2026-01-01", - "end": "2026-01-30" -} -[2026-02-05T01:52:09.371Z] [INFO] ℹ️ 프로젝트별-작업별 시간 분석 성공 - Context: { - "start": "2026-01-01", - "end": "2026-01-30", - "projectCount": 5, - "workTypeCount": 6, - "totalHours": 1680 -} -[2026-02-05T01:52:09.373Z] [INFO] ℹ️ 작업자별 통계 조회 성공 - Context: { - "start": "2026-01-01", - "end": "2026-01-30", - "workerCount": 10 -} -[2026-02-05T01:52:09.376Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-analysis/project-worktype-analysis?start=2026-01-01&end=2026-01-30", - "statusCode": 200, - "duration": "19ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:52:09.377Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-analysis/worker-stats?start=2026-01-01&end=2026-01-30", - "statusCode": 200, - "duration": "15ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:52:09.385Z] [INFO] ℹ️ 최근 작업 현황 조회 요청 - Context: { - "start": "2026-01-01", - "end": "2026-01-30", - "limit": 2000 -} -[2026-02-05T01:52:09.395Z] [INFO] ℹ️ 최근 작업 현황 조회 성공 - Context: { - "start": "2026-01-01", - "end": "2026-01-30", - "limit": 2000, - "resultCount": 216 -} -[2026-02-05T01:52:09.399Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-analysis/recent-work?start=2026-01-01&end=2026-01-30&limit=2000", - "statusCode": 200, - "duration": "16ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:52:17.029Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T01:52:31.228Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:52:47.127Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T01:53:01.231Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:53:17.219Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T01:53:25.563Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=100", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:53:27.317Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:53:28.120Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:53:47.323Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T01:53:57.121Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:54:17.425Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T01:54:20.324Z] [INFO] ℹ️ SIGINT 신호 수신 - 서버 종료 시작 -[2026-02-05T01:54:20.325Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-02-05T01:54:20.749Z] [INFO] ℹ️ Rate Limiting 설정 완료 -[2026-02-05T01:54:20.750Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-02-05T01:54:20.824Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-02-05T01:54:20.937Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v24.4.0" -} -[2026-02-05T01:54:20.939Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-02-05T01:54:27.122Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:54:47.535Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T01:54:51.861Z] [INFO] ℹ️ SIGINT 신호 수신 - 서버 종료 시작 -[2026-02-05T01:54:51.862Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-02-05T01:54:52.279Z] [INFO] ℹ️ Rate Limiting 설정 완료 -[2026-02-05T01:54:52.279Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-02-05T01:54:52.351Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-02-05T01:54:52.463Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v24.4.0" -} -[2026-02-05T01:54:52.469Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-02-05T01:54:55.029Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health/migrate-work-type-id", - "method": "POST" -} -[2026-02-05T01:54:55.033Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "POST", - "url": "/api/health/migrate-work-type-id", - "statusCode": 404, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-02-05T01:54:57.123Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:55:17.625Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T01:55:20.343Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/health/migrate-work-type-id", - "method": "POST" -} -[2026-02-05T01:55:20.345Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "POST", - "url": "/api/health/migrate-work-type-id", - "statusCode": 404, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-02-05T01:55:27.130Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:55:47.719Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T01:55:57.123Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:56:17.799Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T01:56:27.119Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:56:47.888Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T01:56:57.124Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:57:17.981Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T01:57:27.122Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:57:48.074Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T01:57:54.920Z] [INFO] ℹ️ SIGINT 신호 수신 - 서버 종료 시작 -[2026-02-05T01:57:54.921Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-02-05T01:57:55.319Z] [INFO] ℹ️ Rate Limiting 설정 완료 -[2026-02-05T01:57:55.319Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-02-05T01:57:55.390Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-02-05T01:57:55.502Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v24.4.0" -} -[2026-02-05T01:57:55.508Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-02-05T01:57:57.125Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:57:59.071Z] [WARN] ⚠️ 인증 실패: Authorization 헤더 없음 - Context: { - "path": "/", - "method": "POST", - "ip": "::ffff:185.199.108.133" -} -[2026-02-05T01:57:59.073Z] [WARN] ⚠️ Authorization 헤더가 필요합니다 - Context: { - "code": "AUTHENTICATION_ERROR", - "url": "/api/migrate-work-type-id", - "method": "POST", - "user": "anonymous" -} -[2026-02-05T01:57:59.075Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "POST", - "url": "/api/migrate-work-type-id", - "statusCode": 401, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-02-05T01:58:15.289Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "19ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:58:17.295Z] [INFO] ℹ️ 월별 근태 통계 조회 요청 - Context: { - "year": 2026, - "month": 2, - "workerId": null -} -[2026-02-05T01:58:17.302Z] [ERROR] ❌ 월별 근태 통계 조회 실패 - Context: { - "year": 2026, - "month": 2, - "error": "Unknown column 'dar.status' in 'field list'" -} -[2026-02-05T01:58:17.305Z] [ERROR] ❌ 월별 근태 통계 조회 중 데이터베이스 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 월별 근태 통계 조회 중 데이터베이스 오류가 발생했습니다\n at Object.getMonthlyAttendanceStatsService (/usr/src/app/services/attendanceService.js:246:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:144:16", - "url": "/api/attendance/monthly-stats?year=2026&month=2", - "method": "GET", - "user": "hyungi" -} -[2026-02-05T01:58:17.307Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/attendance/monthly-stats?year=2026&month=2", - "statusCode": 500, - "duration": "34ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:58:17.312Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260205", - "baseTime": "1000", - "nx": 57, - "ny": 119 -} -[2026-02-05T01:58:17.384Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:58:18.207Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:58:18.236Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T01:58:18.488Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 6.9, - "humidity": 61, - "windSpeed": 1.5, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-05T01:58:18.492Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 6.9, - "humidity": 61, - "windSpeed": 1.5, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-05T01:58:18.495Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "1185ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:58:39.555Z] [INFO] ℹ️ SIGINT 신호 수신 - 서버 종료 시작 -[2026-02-05T01:58:39.556Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-02-05T01:58:39.976Z] [INFO] ℹ️ Rate Limiting 설정 완료 -[2026-02-05T01:58:39.976Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-02-05T01:58:40.055Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-02-05T01:58:40.172Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v24.4.0" -} -[2026-02-05T01:58:40.174Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-02-05T01:58:41.205Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260205", - "baseTime": "1000", - "nx": 57, - "ny": 119 -} -[2026-02-05T01:58:41.211Z] [INFO] ℹ️ 월별 근태 통계 조회 요청 - Context: { - "year": 2026, - "month": 2, - "workerId": null -} -[2026-02-05T01:58:41.217Z] [ERROR] ❌ 월별 근태 통계 조회 실패 - Context: { - "year": 2026, - "month": 2, - "error": "Unknown column 'dar.status' in 'field list'" -} -[2026-02-05T01:58:41.219Z] [ERROR] ❌ 월별 근태 통계 조회 중 데이터베이스 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 월별 근태 통계 조회 중 데이터베이스 오류가 발생했습니다\n at Object.getMonthlyAttendanceStatsService (/usr/src/app/services/attendanceService.js:246:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:144:16", - "url": "/api/attendance/monthly-stats?year=2026&month=2", - "method": "GET", - "user": "hyungi" -} -[2026-02-05T01:58:41.220Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/attendance/monthly-stats?year=2026&month=2", - "statusCode": 500, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:58:41.221Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:58:41.343Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 6.9, - "humidity": 61, - "windSpeed": 1.5, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-05T01:58:41.346Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 6.9, - "humidity": 61, - "windSpeed": 1.5, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-05T01:58:41.349Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "147ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:58:41.856Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:58:43.718Z] [WARN] ⚠️ 인증 실패: Authorization 헤더 없음 - Context: { - "path": "/", - "method": "POST", - "ip": "::ffff:185.199.108.133" -} -[2026-02-05T01:58:43.720Z] [WARN] ⚠️ Authorization 헤더가 필요합니다 - Context: { - "code": "AUTHENTICATION_ERROR", - "url": "/api/migrate-work-type-id", - "method": "POST", - "user": "anonymous" -} -[2026-02-05T01:58:43.722Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "POST", - "url": "/api/migrate-work-type-id", - "statusCode": 401, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-02-05T01:58:48.357Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T01:59:07.878Z] [INFO] ℹ️ SIGINT 신호 수신 - 서버 종료 시작 -[2026-02-05T01:59:07.879Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-02-05T01:59:10.814Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:59:14.388Z] [WARN] ⚠️ 인증 실패: Authorization 헤더 없음 - Context: { - "path": "/", - "method": "POST", - "ip": "::ffff:185.199.108.133" -} -[2026-02-05T01:59:14.390Z] [WARN] ⚠️ Authorization 헤더가 필요합니다 - Context: { - "code": "AUTHENTICATION_ERROR", - "url": "/api/migrate-work-type-id", - "method": "POST", - "user": "anonymous" -} -[2026-02-05T01:59:14.392Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "POST", - "url": "/api/migrate-work-type-id", - "statusCode": 401, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-02-05T01:59:18.471Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T01:59:25.908Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2026-02-05T01:59:25.911Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-02-05T01:59:26.402Z] [INFO] ℹ️ Rate Limiting 설정 완료 -[2026-02-05T01:59:26.403Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-02-05T01:59:26.482Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-02-05T01:59:26.572Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2026-02-05T01:59:26.595Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-02-05T01:59:31.274Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T01:59:44.079Z] [INFO] ℹ️ 월별 근태 통계 조회 요청 - Context: { - "year": 2026, - "month": 2, - "workerId": null -} -[2026-02-05T01:59:44.117Z] [INFO] ℹ️ MariaDB 연결 성공 - Context: { - "connection": "db:3306", - "database": "hyungi", - "connectionLimit": 10 -} -[2026-02-05T01:59:44.122Z] [ERROR] ❌ 월별 근태 통계 조회 실패 - Context: { - "year": 2026, - "month": 2, - "error": "Unknown column 'dar.status' in 'field list'" -} -[2026-02-05T01:59:44.128Z] [ERROR] ❌ 월별 근태 통계 조회 중 데이터베이스 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 월별 근태 통계 조회 중 데이터베이스 오류가 발생했습니다\n at Object.getMonthlyAttendanceStatsService (/usr/src/app/services/attendanceService.js:246:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:144:16", - "url": "/api/attendance/monthly-stats?year=2026&month=2", - "method": "GET", - "user": "hyungi" -} -[2026-02-05T01:59:44.132Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/attendance/monthly-stats?year=2026&month=2", - "statusCode": 500, - "duration": "58ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:59:44.136Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "54ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:59:44.726Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T02:00:01.398Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T02:00:13.719Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T02:00:25.614Z] [WARN] ⚠️ 인증 실패: 유효하지 않은 토큰 - Context: { - "error": "jwt malformed", - "path": "/", - "ip": "::ffff:185.199.108.133" -} -[2026-02-05T02:00:25.616Z] [WARN] ⚠️ 유효하지 않은 토큰입니다 - Context: { - "code": "AUTHENTICATION_ERROR", - "url": "/api/attendance/monthly-stats?year=2026&month=2", - "method": "GET", - "user": "anonymous" -} -[2026-02-05T02:00:25.620Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/attendance/monthly-stats?year=2026&month=2", - "statusCode": 401, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-02-05T02:00:31.494Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T02:00:40.462Z] [WARN] ⚠️ 인증 실패: Authorization 헤더 없음 - Context: { - "path": "/", - "method": "GET", - "ip": "::ffff:185.199.108.133" -} -[2026-02-05T02:00:40.463Z] [WARN] ⚠️ Authorization 헤더가 필요합니다 - Context: { - "code": "AUTHENTICATION_ERROR", - "url": "/api/diagnose-work-type-id", - "method": "GET", - "user": "anonymous" -} -[2026-02-05T02:00:40.466Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/diagnose-work-type-id", - "statusCode": 401, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-02-05T02:00:43.712Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T02:01:01.579Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T02:01:01.665Z] [INFO] ℹ️ Rate Limiting 설정 완료 -[2026-02-05T02:01:01.666Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-02-05T02:01:01.715Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-02-05T02:01:01.783Z] [ERROR] ❌ 처리되지 않은 예외 - Context: { - "error": "listen EADDRINUSE: address already in use :::20005", - "stack": "Error: listen EADDRINUSE: address already in use :::20005\n at Server.setupListenHandle [as _listen2] (node:net:1940:16)\n at listenInCluster (node:net:1997:12)\n at Server.listen (node:net:2102:7)\n at app.listen (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/application.js:635:24)\n at Object. (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/index.js:207:20)\n at Module._compile (node:internal/modules/cjs/loader:1692:14)\n at Object..js (node:internal/modules/cjs/loader:1824:10)\n at Module.load (node:internal/modules/cjs/loader:1427:32)\n at Module._load (node:internal/modules/cjs/loader:1250:12)\n at TracingChannel.traceSync (node:diagnostics_channel:322:14)" -} -[2026-02-05T02:01:01.783Z] [INFO] ℹ️ UNCAUGHT_EXCEPTION 신호 수신 - 서버 종료 시작 -[2026-02-05T02:01:01.784Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-02-05T02:01:13.707Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T02:01:14.807Z] [INFO] ℹ️ Rate Limiting 설정 완료 -[2026-02-05T02:01:14.808Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-02-05T02:01:14.871Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-02-05T02:01:14.935Z] [ERROR] ❌ 처리되지 않은 예외 - Context: { - "error": "listen EADDRINUSE: address already in use :::20005", - "stack": "Error: listen EADDRINUSE: address already in use :::20005\n at Server.setupListenHandle [as _listen2] (node:net:1940:16)\n at listenInCluster (node:net:1997:12)\n at Server.listen (node:net:2102:7)\n at app.listen (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/application.js:635:24)\n at Object. (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/index.js:207:20)\n at Module._compile (node:internal/modules/cjs/loader:1692:14)\n at Object..js (node:internal/modules/cjs/loader:1824:10)\n at Module.load (node:internal/modules/cjs/loader:1427:32)\n at Module._load (node:internal/modules/cjs/loader:1250:12)\n at TracingChannel.traceSync (node:diagnostics_channel:322:14)" -} -[2026-02-05T02:01:14.936Z] [INFO] ℹ️ UNCAUGHT_EXCEPTION 신호 수신 - 서버 종료 시작 -[2026-02-05T02:01:14.936Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-02-05T02:01:19.607Z] [WARN] ⚠️ 인증 실패: Authorization 헤더 없음 - Context: { - "path": "/", - "method": "GET", - "ip": "::ffff:185.199.108.133" -} -[2026-02-05T02:01:19.609Z] [WARN] ⚠️ Authorization 헤더가 필요합니다 - Context: { - "code": "AUTHENTICATION_ERROR", - "url": "/api/diagnose-work-type-id", - "method": "GET", - "user": "anonymous" -} -[2026-02-05T02:01:19.612Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/diagnose-work-type-id", - "statusCode": 401, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-02-05T02:01:31.648Z] [INFO] ℹ️ Rate Limiting 설정 완료 -[2026-02-05T02:01:31.651Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-02-05T02:01:31.657Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T02:01:31.719Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-02-05T02:01:31.840Z] [ERROR] ❌ 처리되지 않은 예외 - Context: { - "error": "listen EADDRINUSE: address already in use :::20005", - "stack": "Error: listen EADDRINUSE: address already in use :::20005\n at Server.setupListenHandle [as _listen2] (node:net:1940:16)\n at listenInCluster (node:net:1997:12)\n at Server.listen (node:net:2102:7)\n at app.listen (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/application.js:635:24)\n at Object. (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/index.js:207:20)\n at Module._compile (node:internal/modules/cjs/loader:1692:14)\n at Object..js (node:internal/modules/cjs/loader:1824:10)\n at Module.load (node:internal/modules/cjs/loader:1427:32)\n at Module._load (node:internal/modules/cjs/loader:1250:12)\n at TracingChannel.traceSync (node:diagnostics_channel:322:14)" -} -[2026-02-05T02:01:31.840Z] [INFO] ℹ️ UNCAUGHT_EXCEPTION 신호 수신 - 서버 종료 시작 -[2026-02-05T02:01:31.841Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-02-05T02:01:36.308Z] [WARN] ⚠️ 인증 실패: Authorization 헤더 없음 - Context: { - "path": "/", - "method": "GET", - "ip": "::ffff:185.199.108.133" -} -[2026-02-05T02:01:36.310Z] [WARN] ⚠️ Authorization 헤더가 필요합니다 - Context: { - "code": "AUTHENTICATION_ERROR", - "url": "/api/diagnose-work-type-id", - "method": "GET", - "user": "anonymous" -} -[2026-02-05T02:01:36.313Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/diagnose-work-type-id", - "statusCode": 401, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-02-05T02:01:41.177Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2026-02-05T02:01:41.179Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-02-05T02:01:41.632Z] [INFO] ℹ️ Rate Limiting 설정 완료 -[2026-02-05T02:01:41.633Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-02-05T02:01:41.710Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-02-05T02:01:41.798Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2026-02-05T02:01:41.812Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-02-05T02:01:43.732Z] [INFO] ℹ️ MariaDB 연결 성공 - Context: { - "connection": "db:3306", - "database": "hyungi", - "connectionLimit": 10 -} -[2026-02-05T02:01:43.739Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "22ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T02:01:46.504Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T02:01:51.221Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2026-02-05T02:01:51.223Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-02-05T02:01:51.623Z] [INFO] ℹ️ Rate Limiting 설정 완료 -[2026-02-05T02:01:51.624Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-02-05T02:01:51.703Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-02-05T02:01:51.775Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2026-02-05T02:01:51.781Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-02-05T02:01:56.546Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T02:02:01.504Z] [INFO] ℹ️ MariaDB 연결 성공 - Context: { - "connection": "db:3306", - "database": "hyungi", - "connectionLimit": 10 -} -[2026-02-05T02:02:13.733Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "17ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T02:02:26.665Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T02:02:42.860Z] [WARN] ⚠️ 인증 실패: 유효하지 않은 토큰 - Context: { - "error": "jwt malformed", - "path": "/", - "ip": "::ffff:185.199.108.133" -} -[2026-02-05T02:02:42.864Z] [WARN] ⚠️ 유효하지 않은 토큰입니다 - Context: { - "code": "AUTHENTICATION_ERROR", - "url": "/api/work-analysis/recent-work?start=2026-01-19&end=2026-01-22&limit=10", - "method": "GET", - "user": "anonymous" -} -[2026-02-05T02:02:42.867Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/work-analysis/recent-work?start=2026-01-19&end=2026-01-22&limit=10", - "statusCode": 401, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-02-05T02:02:43.715Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T02:02:56.761Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T02:03:07.694Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2026-02-05T02:03:07.700Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-02-05T02:03:08.228Z] [INFO] ℹ️ Rate Limiting 설정 완료 -[2026-02-05T02:03:08.229Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-02-05T02:03:08.315Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-02-05T02:03:08.421Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2026-02-05T02:03:08.431Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-02-05T02:03:09.224Z] [INFO] ℹ️ MariaDB 연결 성공 - Context: { - "connection": "db:3306", - "database": "hyungi", - "connectionLimit": 10 -} -[2026-02-05T02:03:09.230Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "21ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T02:03:09.376Z] [INFO] ℹ️ 월별 근태 통계 조회 요청 - Context: { - "year": 2026, - "month": 2, - "workerId": null -} -[2026-02-05T02:03:09.382Z] [INFO] ℹ️ 월별 근태 통계 조회 성공 - Context: { - "year": 2026, - "month": 2 -} -[2026-02-05T02:03:09.385Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/monthly-stats?year=2026&month=2", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T02:03:10.269Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T02:03:13.077Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T02:03:33.288Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2026-02-05T02:03:33.290Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-02-05T02:03:33.764Z] [INFO] ℹ️ Rate Limiting 설정 완료 -[2026-02-05T02:03:33.765Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-02-05T02:03:33.844Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-02-05T02:03:33.930Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2026-02-05T02:03:33.940Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-02-05T02:03:38.597Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-02-05T02:03:38.637Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T02:03:38.992Z] [INFO] ℹ️ MariaDB 연결 성공 - Context: { - "connection": "db:3306", - "database": "hyungi", - "connectionLimit": 10 -} -[2026-02-05T02:03:38.996Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "25ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T02:04:08.748Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T02:04:08.985Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T02:04:38.876Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T02:04:43.738Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 200, - "duration": "18ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T02:04:44.009Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260205", - "baseTime": "1000", - "nx": 57, - "ny": 119 -} -[2026-02-05T02:04:44.057Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T02:04:44.397Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 6.9, - "humidity": 61, - "windSpeed": 1.5, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-05T02:04:44.407Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 6.9, - "humidity": 61, - "windSpeed": 1.5, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-05T02:04:44.410Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "455ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T02:04:44.721Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T02:04:52.577Z] [INFO] ℹ️ 프로젝트별-작업별 시간 분석 요청 - Context: { - "start": "2026-01-01", - "end": "2026-01-30" -} -[2026-02-05T02:04:52.582Z] [INFO] ℹ️ 작업자별 통계 조회 요청 - Context: { - "start": "2026-01-01", - "end": "2026-01-30" -} -[2026-02-05T02:04:52.594Z] [INFO] ℹ️ 프로젝트별-작업별 시간 분석 성공 - Context: { - "start": "2026-01-01", - "end": "2026-01-30", - "projectCount": 5, - "workTypeCount": 5, - "totalHours": 1680 -} -[2026-02-05T02:04:52.598Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-analysis/project-worktype-analysis?start=2026-01-01&end=2026-01-30", - "statusCode": 200, - "duration": "30ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T02:04:52.602Z] [INFO] ℹ️ 작업자별 통계 조회 성공 - Context: { - "start": "2026-01-01", - "end": "2026-01-30", - "workerCount": 10 -} -[2026-02-05T02:04:52.603Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-analysis/worker-stats?start=2026-01-01&end=2026-01-30", - "statusCode": 200, - "duration": "22ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T02:04:52.615Z] [INFO] ℹ️ 최근 작업 현황 조회 요청 - Context: { - "start": "2026-01-01", - "end": "2026-01-30", - "limit": 2000 -} -[2026-02-05T02:04:52.624Z] [INFO] ℹ️ 최근 작업 현황 조회 성공 - Context: { - "start": "2026-01-01", - "end": "2026-01-30", - "limit": 2000, - "resultCount": 216 -} -[2026-02-05T02:04:52.627Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-analysis/recent-work?start=2026-01-01&end=2026-01-30&limit=2000", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T02:05:09.034Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T02:05:13.725Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T02:05:31.244Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000&department_id=1", - "statusCode": 200, - "duration": "18ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T02:05:31.484Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T02:05:31.498Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T02:05:31.499Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T02:05:31.514Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T02:05:31.536Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T02:05:31.547Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T02:05:31.556Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues/categories/type/nonconformity", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T02:05:31.565Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues/items", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T02:05:31.573Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T02:05:33.502Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-02-05", - "created_by_user_id": 1, - "requester": 1, - "isAdmin": false -} -[2026-02-05T02:05:33.507Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-02-05T02:05:33.509Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-02-05", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T02:05:36.847Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-16", - "created_by_user_id": 1, - "requester": 1, - "isAdmin": false -} -[2026-02-05T02:05:36.855Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 12 -} -[2026-02-05T02:05:36.858Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-16", - "statusCode": 200, - "duration": "17ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T02:05:39.143Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T02:05:42.862Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=1", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T02:05:48.794Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=11", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T02:05:51.241Z] [INFO] ℹ️ 작업보고서 수정 요청 - Context: { - "reportId": "1698", - "updatedBy": 1 -} -[2026-02-05T02:05:51.251Z] [INFO] ℹ️ 작업보고서 수정 성공 - Context: { - "reportId": "1698" -} -[2026-02-05T02:05:51.251Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "PUT", - "url": "/api/daily-work-reports/1698", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T02:05:51.263Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-16", - "created_by_user_id": 1, - "requester": 1, - "isAdmin": false -} -[2026-02-05T02:05:51.264Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 12 -} -[2026-02-05T02:05:51.266Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-16", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T02:06:00.967Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T02:06:01.208Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T02:06:09.262Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T02:06:30.978Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T02:06:31.210Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T02:06:39.343Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T02:07:00.968Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T02:07:01.208Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T02:07:09.440Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T02:07:14.591Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2026-02-05T02:07:14.592Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-02-05T02:07:15.082Z] [INFO] ℹ️ Rate Limiting 설정 완료 -[2026-02-05T02:07:15.083Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-02-05T02:07:15.159Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-02-05T02:07:15.242Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2026-02-05T02:07:15.248Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-02-05T02:07:19.930Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T02:07:30.985Z] [INFO] ℹ️ MariaDB 연결 성공 - Context: { - "connection": "db:3306", - "database": "hyungi", - "connectionLimit": 10 -} -[2026-02-05T02:07:30.988Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "23ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T02:07:31.213Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T02:07:50.041Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T02:08:00.973Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T02:08:01.212Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T02:08:20.139Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T02:08:31.021Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "16ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T02:08:31.213Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T02:08:50.236Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T02:09:00.993Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T02:09:01.211Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T02:09:20.327Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T02:09:30.990Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T02:09:31.212Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T02:09:50.397Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T02:10:00.993Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T02:10:01.213Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T02:10:20.482Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T02:10:30.988Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T02:10:31.211Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T02:10:50.578Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T02:11:02.733Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "17ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T02:11:02.736Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T02:11:20.661Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T02:11:36.332Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T02:11:36.333Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T02:11:50.740Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T02:12:20.836Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T02:12:37.504Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T02:12:37.506Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T02:12:50.917Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T02:13:12.942Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T02:13:12.943Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T02:13:21.033Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T02:13:51.158Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T02:14:12.947Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T02:14:12.948Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T02:14:21.241Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T02:14:51.321Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T02:15:12.940Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T02:15:12.941Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T02:15:21.404Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T02:15:51.491Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T02:16:12.964Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "22ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T02:16:12.965Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T02:16:21.580Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T02:16:51.666Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T02:17:12.934Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T02:17:12.936Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T02:17:21.751Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T02:17:51.850Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T02:18:12.865Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T02:18:12.872Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T02:18:21.938Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T02:18:52.017Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T02:19:12.928Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T02:19:12.933Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T02:19:22.095Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T02:19:52.184Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T02:20:12.927Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T02:20:12.932Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T02:20:22.264Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T02:20:52.338Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T02:21:12.880Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T02:21:12.884Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T02:21:22.430Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T02:21:52.513Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T02:22:12.855Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T02:22:12.857Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T02:22:22.594Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T02:22:52.675Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T02:23:12.792Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T02:23:12.810Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T02:23:22.783Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T02:23:52.879Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T02:24:12.929Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T02:24:12.934Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T02:24:22.974Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T02:24:53.080Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T02:25:12.852Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T02:25:12.856Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T02:25:23.160Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T02:25:53.249Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T02:26:12.783Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T02:26:12.787Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T02:26:23.338Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T02:26:53.410Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T02:27:12.932Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T02:27:12.936Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T02:27:23.500Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T02:27:53.585Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T02:28:12.926Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T02:28:12.928Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T02:28:23.660Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T02:28:53.732Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T02:29:12.867Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T02:29:12.872Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T02:29:23.825Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T02:29:53.926Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T02:30:12.827Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T02:30:12.832Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T02:30:24.011Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T02:30:54.083Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T02:31:12.838Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T02:31:12.840Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T02:31:24.155Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T02:31:54.227Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T02:32:12.824Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T02:32:12.829Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T02:32:24.302Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T02:32:54.381Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T02:33:12.933Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T02:33:12.935Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T02:33:24.471Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T02:33:54.566Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T02:34:12.926Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T02:34:12.931Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T02:34:24.663Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T02:34:54.761Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T02:35:12.834Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T02:35:12.836Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T02:35:24.836Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T02:35:54.929Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T02:36:12.933Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T02:36:12.935Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T02:36:25.019Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T02:36:55.097Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T02:37:12.833Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T02:37:12.837Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T02:37:25.180Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T02:37:55.271Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T02:38:12.940Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T02:38:12.944Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T02:38:25.332Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T02:38:55.426Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T02:39:12.872Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T02:39:12.876Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T02:39:25.571Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T02:39:42.904Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T02:39:42.905Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "15ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T02:39:55.702Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T02:40:25.784Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T02:40:55.872Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T02:41:25.969Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T02:41:56.052Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T02:42:26.129Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T02:42:56.201Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T02:43:26.308Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T02:43:56.380Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T02:44:26.474Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T02:44:56.563Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T02:45:26.664Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T02:45:56.779Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T02:46:26.854Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T02:46:56.941Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T02:47:27.021Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T02:47:57.099Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T02:48:27.197Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T02:48:41.536Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T02:48:41.537Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T02:48:57.304Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T02:49:27.401Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T02:49:57.478Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T02:50:27.556Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T02:50:57.637Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T02:51:27.724Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T02:51:57.790Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T02:52:27.870Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T02:52:57.954Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T02:53:28.036Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T02:53:58.125Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T02:54:28.224Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T02:54:58.323Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T02:55:28.398Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T02:55:58.467Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T02:56:28.540Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T02:56:58.632Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T02:57:28.702Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T02:57:58.770Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T02:58:28.849Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T02:58:58.918Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T02:59:29.003Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T02:59:59.094Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T03:00:29.198Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T03:00:59.287Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T03:01:29.370Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T03:01:59.439Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T03:02:29.531Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T03:02:59.622Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T03:03:29.696Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T03:03:59.774Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T03:04:29.867Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T03:04:59.957Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T03:05:30.031Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T03:06:00.114Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T03:06:30.210Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T03:07:00.303Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T03:07:30.389Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T03:08:00.467Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T03:08:30.546Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T03:09:00.625Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T03:09:30.713Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T03:10:00.803Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T03:10:30.901Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T03:11:00.993Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T03:11:31.073Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T03:12:01.160Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T03:12:31.255Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T03:13:01.340Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T03:13:31.429Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T03:14:01.507Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T03:14:31.585Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T03:15:01.655Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T03:15:31.755Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T03:16:01.830Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T03:16:31.913Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T03:17:01.995Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T03:17:32.081Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T03:18:02.155Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T03:18:32.230Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T03:19:02.313Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T03:19:32.388Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T03:20:02.464Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T03:20:32.542Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T03:21:02.620Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T03:21:32.699Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T03:22:02.794Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T03:22:32.881Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T03:23:02.969Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T03:23:33.051Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T03:24:03.117Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T03:24:33.196Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T03:25:03.264Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T03:25:33.362Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T03:26:03.444Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T03:26:33.538Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T03:27:03.626Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T03:27:33.697Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T03:28:03.778Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T03:28:33.846Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T03:29:03.931Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T03:29:34.020Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T03:30:04.121Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T03:30:34.182Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T03:31:04.259Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T03:31:34.341Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T03:32:04.427Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T03:32:34.497Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T03:33:04.591Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T03:33:34.664Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T03:34:04.753Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T03:34:34.837Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T03:35:04.931Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T03:35:35.038Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T03:36:05.125Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T03:36:35.214Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T03:37:05.303Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T03:37:35.374Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T03:38:05.443Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T03:38:35.524Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T03:39:05.597Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T03:39:35.677Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T03:40:05.756Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T03:40:35.832Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T03:41:05.918Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T03:41:36.017Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T03:42:06.110Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T03:42:36.205Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T03:43:06.288Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T03:43:36.375Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T03:44:06.470Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T03:44:36.569Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T03:45:06.656Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T03:45:36.749Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T03:46:06.834Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T03:46:36.902Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T03:47:06.995Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T03:47:37.077Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T03:48:07.158Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T03:48:37.239Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T03:49:07.320Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T03:49:37.382Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T03:50:07.490Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T03:50:37.553Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T03:51:07.650Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T03:51:37.733Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T03:52:07.807Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T03:52:37.883Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T03:53:07.966Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T03:53:38.045Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T03:54:08.129Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T03:54:38.218Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T03:55:08.281Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T03:55:38.354Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T03:56:02.681Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T03:56:08.469Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T03:56:31.018Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 200, - "duration": "90ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T03:56:31.798Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T03:56:31.932Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260205", - "baseTime": "1200", - "nx": 57, - "ny": 119 -} -[2026-02-05T03:56:31.971Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "93ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T03:56:31.974Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T03:56:31.979Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T03:56:31.993Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-05", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T03:56:32.001Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T03:56:32.015Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/moved/list", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T03:56:32.794Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T03:56:33.125Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 9.3, - "humidity": 62, - "windSpeed": 2.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-05T03:56:33.132Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 9.3, - "humidity": 62, - "windSpeed": 2.3, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-05T03:56:33.136Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "1254ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T03:56:38.544Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T03:57:01.756Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T03:57:08.618Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T03:57:31.777Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T03:57:38.704Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T03:58:01.770Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T03:58:08.780Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T03:58:31.763Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T03:58:38.864Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T03:59:01.761Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T03:59:08.956Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T03:59:31.761Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T03:59:39.031Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T04:00:02.420Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:00:09.121Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T04:00:33.433Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:00:39.213Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T04:01:04.442Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:01:09.333Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T04:01:35.418Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:01:39.404Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T04:02:06.426Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:02:09.482Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T04:02:37.427Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:02:39.554Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T04:03:08.419Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:03:09.629Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T04:03:39.423Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:03:39.719Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T04:04:09.794Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T04:04:10.422Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:04:39.877Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T04:04:41.420Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:05:09.952Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T04:05:12.419Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:05:40.029Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T04:05:43.425Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:06:10.107Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T04:06:14.418Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:06:40.198Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T04:06:45.428Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:07:10.284Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T04:07:16.414Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:07:40.389Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T04:07:46.428Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:08:10.479Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T04:08:16.424Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:08:40.562Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T04:08:47.421Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:09:10.651Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T04:09:18.424Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:09:40.751Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T04:09:48.421Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:10:10.830Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T04:10:18.427Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:10:40.928Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T04:10:48.430Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:11:11.015Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T04:11:18.423Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:11:41.096Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T04:11:48.425Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:12:11.179Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T04:12:18.424Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:12:41.259Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T04:12:48.425Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:13:11.335Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T04:13:18.430Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:13:41.411Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T04:13:48.426Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:14:11.493Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T04:14:18.429Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:14:41.584Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T04:14:48.427Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:15:11.674Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T04:15:18.442Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:15:41.757Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T04:15:48.433Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:16:11.849Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T04:16:19.435Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:16:41.939Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T04:16:50.428Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:17:12.032Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T04:17:21.423Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:17:42.122Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T04:17:52.423Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:18:12.216Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T04:18:23.428Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:18:42.290Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T04:18:54.427Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:19:12.375Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T04:19:25.423Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:19:42.462Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T04:19:56.427Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:20:12.552Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T04:20:27.426Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:20:42.627Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T04:20:58.428Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:21:12.711Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T04:21:28.444Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:21:42.811Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T04:21:58.429Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:22:12.899Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T04:22:29.427Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:22:42.972Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T04:23:00.426Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:23:13.044Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T04:23:31.427Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:23:43.124Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T04:24:02.429Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:24:13.196Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T04:24:33.428Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:24:43.274Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T04:25:04.426Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:25:13.348Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T04:25:35.423Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:25:43.438Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T04:26:06.427Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:26:13.524Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T04:26:37.435Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:26:43.617Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T04:27:08.430Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:27:13.725Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T04:27:38.451Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:27:43.811Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T04:28:08.445Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:28:13.936Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T04:28:38.434Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:28:44.037Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T04:29:08.431Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:29:14.125Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T04:29:38.439Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:29:44.224Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T04:30:08.444Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:30:14.318Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T04:30:38.444Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "15ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:30:40.809Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/patrol/item-types", - "statusCode": 200, - "duration": "16ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:30:40.811Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:30:40.822Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260205", - "baseTime": "1300", - "nx": 57, - "ny": 119 -} -[2026-02-05T04:30:40.829Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/patrol/today-status", - "statusCode": 200, - "duration": "31ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:30:40.902Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:30:41.194Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 10, - "humidity": 58, - "windSpeed": 2.9, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-05T04:30:41.201Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 10, - "humidity": 58, - "windSpeed": 2.9, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-05T04:30:41.205Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "385ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:30:41.728Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:30:44.148Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/patrol/sessions", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:30:44.166Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:30:44.183Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/patrol/checklist?category_id=1", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:30:44.434Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T04:31:10.713Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:31:14.538Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T04:31:40.718Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:31:44.629Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T04:32:10.733Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:32:14.770Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T04:32:40.717Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:32:44.847Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T04:33:10.769Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:33:14.982Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T04:33:40.743Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:33:45.125Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T04:34:11.456Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:34:15.269Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T04:34:42.448Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:34:45.423Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T04:35:13.449Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:35:15.541Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T04:35:39.275Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2026-02-05T04:35:39.277Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-02-05T04:35:39.797Z] [INFO] ℹ️ Rate Limiting 설정 완료 -[2026-02-05T04:35:39.798Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-02-05T04:35:39.884Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-02-05T04:35:39.982Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2026-02-05T04:35:39.997Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-02-05T04:35:44.448Z] [INFO] ℹ️ MariaDB 연결 성공 - Context: { - "connection": "db:3306", - "database": "hyungi", - "connectionLimit": 10 -} -[2026-02-05T04:35:44.453Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "22ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:35:44.634Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T04:36:14.458Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "21ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:36:14.764Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T04:36:44.444Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:36:44.888Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T04:37:14.450Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:37:15.023Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T04:37:44.456Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "17ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:37:45.162Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T04:38:14.455Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:38:15.286Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T04:38:44.449Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:38:45.381Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T04:39:14.449Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:39:15.533Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T04:39:44.438Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:39:45.614Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T04:40:14.430Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:40:15.687Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T04:40:41.402Z] [WARN] ⚠️ 인증 실패: 유효하지 않은 토큰 - Context: { - "error": "jwt malformed", - "path": "/", - "ip": "::ffff:185.199.108.133" -} -[2026-02-05T04:40:41.406Z] [WARN] ⚠️ 유효하지 않은 토큰입니다 - Context: { - "code": "AUTHENTICATION_ERROR", - "url": "/api/patrol/workplaces/1/detail", - "method": "GET", - "user": "anonymous" -} -[2026-02-05T04:40:41.408Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/patrol/workplaces/1/detail", - "statusCode": 401, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-02-05T04:40:44.438Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:40:45.811Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T04:41:14.433Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:41:15.901Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T04:41:17.148Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "36ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:41:17.158Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/patrol/item-types", - "statusCode": 200, - "duration": "32ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:41:17.202Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260205", - "baseTime": "1300", - "nx": 57, - "ny": 119 -} -[2026-02-05T04:41:17.230Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/patrol/today-status", - "statusCode": 200, - "duration": "113ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:41:17.245Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:41:18.058Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:41:18.319Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 10, - "humidity": 59, - "windSpeed": 2.4, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-05T04:41:18.326Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 10, - "humidity": 59, - "windSpeed": 2.4, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-05T04:41:18.329Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "1170ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:41:19.794Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/patrol/sessions", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:41:19.805Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:41:19.814Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/patrol/checklist?category_id=1", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:41:23.121Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/patrol/sessions/3/records?workplace_id=12", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:41:23.139Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/patrol/workplaces/12/items", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:41:23.154Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/patrol/workplaces/12/detail?date=2026-02-05", - "statusCode": 500, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:41:24.122Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/patrol/sessions/3/records?workplace_id=11", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:41:24.139Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/patrol/workplaces/11/items", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:41:24.151Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/patrol/workplaces/11/detail?date=2026-02-05", - "statusCode": 500, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:41:24.486Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/patrol/sessions/3/records?workplace_id=10", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:41:24.498Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/patrol/workplaces/10/items", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:41:24.509Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/patrol/workplaces/10/detail?date=2026-02-05", - "statusCode": 500, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:41:45.981Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T04:41:47.054Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:42:16.052Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T04:42:17.055Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:42:46.142Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T04:42:47.053Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:43:16.213Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T04:43:17.055Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:43:46.314Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T04:43:47.068Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:44:16.398Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T04:44:17.063Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:44:46.352Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2026-02-05T04:44:46.353Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-02-05T04:44:46.834Z] [INFO] ℹ️ Rate Limiting 설정 완료 -[2026-02-05T04:44:46.834Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-02-05T04:44:46.919Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-02-05T04:44:47.004Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2026-02-05T04:44:47.011Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-02-05T04:44:47.071Z] [INFO] ℹ️ MariaDB 연결 성공 - Context: { - "connection": "db:3306", - "database": "hyungi", - "connectionLimit": 10 -} -[2026-02-05T04:44:47.075Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "16ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:44:51.720Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T04:45:21.804Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T04:45:29.110Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:45:32.624Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/patrol/today-status", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:45:32.627Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/patrol/item-types", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:45:32.628Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:45:32.684Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:45:33.498Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:45:35.437Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/patrol/sessions", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:45:35.447Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:45:35.454Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/patrol/checklist?category_id=1", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:45:43.179Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/patrol/workplaces/9/detail?date=2026-02-05", - "statusCode": 500, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:45:44.735Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:45:45.567Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:45:51.896Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T04:46:14.547Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:46:21.984Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T04:46:44.550Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:46:52.077Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T04:47:14.548Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:47:22.171Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T04:47:31.648Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2026-02-05T04:47:31.649Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-02-05T04:47:32.144Z] [INFO] ℹ️ Rate Limiting 설정 완료 -[2026-02-05T04:47:32.145Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-02-05T04:47:32.225Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-02-05T04:47:32.314Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2026-02-05T04:47:32.332Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-02-05T04:47:37.001Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T04:47:44.579Z] [INFO] ℹ️ MariaDB 연결 성공 - Context: { - "connection": "db:3306", - "database": "hyungi", - "connectionLimit": 10 -} -[2026-02-05T04:47:44.584Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "41ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:48:07.122Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T04:48:14.553Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:48:37.198Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T04:48:42.019Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2026-02-05T04:48:42.021Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-02-05T04:48:42.511Z] [INFO] ℹ️ Rate Limiting 설정 완료 -[2026-02-05T04:48:42.511Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-02-05T04:48:42.593Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-02-05T04:48:42.680Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2026-02-05T04:48:42.694Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-02-05T04:48:44.568Z] [INFO] ℹ️ MariaDB 연결 성공 - Context: { - "connection": "db:3306", - "database": "hyungi", - "connectionLimit": 10 -} -[2026-02-05T04:48:44.574Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "23ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:48:47.375Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T04:49:14.549Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:49:17.448Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T04:49:44.554Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:49:45.482Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260205", - "baseTime": "1300", - "nx": 57, - "ny": 119 -} -[2026-02-05T04:49:45.518Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/patrol/workplaces/9/detail?date=2026-02-05", - "statusCode": 200, - "duration": "76ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:49:45.523Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:49:45.622Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 9.5, - "humidity": 60, - "windSpeed": 2.1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-05T04:49:45.629Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 9.5, - "humidity": 60, - "windSpeed": 2.1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-05T04:49:45.631Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "186ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:49:46.339Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:49:47.541Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T04:50:15.340Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:50:17.633Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T04:50:45.331Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:50:47.714Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T04:51:15.337Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:51:17.798Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T04:51:45.507Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:51:45.510Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/patrol/item-types", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:51:45.512Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/patrol/today-status", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:51:45.626Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:51:46.434Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:51:47.632Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/patrol/sessions", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:51:47.647Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:51:47.656Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:51:47.666Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/patrol/checklist?category_id=1", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:51:47.888Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T04:51:53.573Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/patrol/workplaces/2/detail?date=2026-02-05", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:51:53.685Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:51:54.498Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:52:17.995Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T04:52:23.489Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:52:23.932Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:52:23.938Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/patrol/today-status", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:52:23.940Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/patrol/item-types", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:52:24.067Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:52:24.879Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:52:48.100Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T04:52:53.873Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:53:18.185Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T04:53:23.873Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:53:38.058Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=100", - "statusCode": 200, - "duration": "17ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:53:38.067Z] [INFO] ℹ️ 기간별 근태 기록 조회 요청 - Context: { - "startDate": "2026-02-01", - "endDate": "2026-02-28", - "workerId": null -} -[2026-02-05T04:53:38.070Z] [INFO] ℹ️ 기간별 근태 기록 조회 성공 - Context: { - "startDate": "2026-02-01", - "endDate": "2026-02-28", - "count": 20 -} -[2026-02-05T04:53:38.072Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/records?start_date=2026-02-01&end_date=2026-02-28", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:53:38.157Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:53:38.969Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:53:48.278Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T04:53:53.664Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=100", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:53:53.675Z] [INFO] ℹ️ 기간별 근태 기록 조회 요청 - Context: { - "startDate": "2026-01-01", - "endDate": "2026-01-31", - "workerId": null -} -[2026-02-05T04:53:53.682Z] [INFO] ℹ️ 기간별 근태 기록 조회 성공 - Context: { - "startDate": "2026-01-01", - "endDate": "2026-01-31", - "count": 210 -} -[2026-02-05T04:53:53.686Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/records?start_date=2026-01-01&end_date=2026-01-31", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:54:07.958Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:54:18.381Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T04:54:37.958Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:54:48.478Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T04:55:07.961Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:55:18.576Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T04:55:37.959Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:55:48.661Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T04:56:07.959Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:56:14.446Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2026-02-05T04:56:14.448Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-02-05T04:56:14.914Z] [INFO] ℹ️ Rate Limiting 설정 완료 -[2026-02-05T04:56:14.915Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-02-05T04:56:15.000Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-02-05T04:56:15.089Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2026-02-05T04:56:15.098Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-02-05T04:56:19.773Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T04:56:37.128Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/patrol/workplaces/1/zone-items", - "method": "GET" -} -[2026-02-05T04:56:37.966Z] [INFO] ℹ️ MariaDB 연결 성공 - Context: { - "connection": "db:3306", - "database": "hyungi", - "connectionLimit": 10 -} -[2026-02-05T04:56:37.969Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "25ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:56:49.855Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T04:56:53.208Z] [WARN] ⚠️ 인증 실패: Authorization 헤더 없음 - Context: { - "path": "/", - "method": "GET", - "ip": "::ffff:185.199.108.133" -} -[2026-02-05T04:56:53.210Z] [WARN] ⚠️ Authorization 헤더가 필요합니다 - Context: { - "code": "AUTHENTICATION_ERROR", - "url": "/api/patrol/workplaces/1/zone-items", - "method": "GET", - "user": "anonymous" -} -[2026-02-05T04:56:53.213Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/patrol/workplaces/1/zone-items", - "statusCode": 401, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-02-05T04:57:07.947Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:57:19.929Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T04:57:37.949Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:57:49.999Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T04:58:07.949Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:58:20.083Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T04:58:37.949Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:58:50.166Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T04:59:07.950Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:59:20.251Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T04:59:37.948Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:59:50.335Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T04:59:59.580Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "30ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:59:59.588Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/patrol/item-types", - "statusCode": 200, - "duration": "32ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:59:59.632Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260205", - "baseTime": "1300", - "nx": 57, - "ny": 119 -} -[2026-02-05T04:59:59.670Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/patrol/today-status", - "statusCode": 200, - "duration": "102ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:59:59.675Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:59:59.755Z] [ERROR] ❌ 날씨 API 호출 실패 - Context: { - "error": "Request failed with status code 429" -} -[2026-02-05T04:59:59.758Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 20, - "humidity": 50, - "windSpeed": 2, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": "clear", - "isDefault": true - }, - "conditions": [ - "clear" - ] -} -[2026-02-05T04:59:59.761Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "172ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:00:00.478Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:00:02.753Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/patrol/sessions", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:00:02.763Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:00:02.772Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:00:02.782Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/patrol/checklist?category_id=1", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:00:20.435Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T05:00:29.476Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:00:50.523Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T05:00:59.476Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:01:20.608Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T05:01:29.473Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:01:50.688Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T05:01:59.484Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:02:20.759Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T05:02:29.479Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:02:50.845Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T05:02:59.475Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:03:20.915Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T05:03:21.887Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:03:21.901Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=100", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:03:21.915Z] [INFO] ℹ️ 기간별 근태 기록 조회 요청 - Context: { - "startDate": "2026-02-01", - "endDate": "2026-02-28", - "workerId": null -} -[2026-02-05T05:03:21.918Z] [INFO] ℹ️ 기간별 근태 기록 조회 성공 - Context: { - "startDate": "2026-02-01", - "endDate": "2026-02-28", - "count": 20 -} -[2026-02-05T05:03:21.920Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/records?start_date=2026-02-01&end_date=2026-02-28", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:03:22.850Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:03:32.040Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=100", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:03:32.049Z] [INFO] ℹ️ 기간별 근태 기록 조회 요청 - Context: { - "startDate": "2026-01-01", - "endDate": "2026-01-31", - "workerId": null -} -[2026-02-05T05:03:32.059Z] [INFO] ℹ️ 기간별 근태 기록 조회 성공 - Context: { - "startDate": "2026-01-01", - "endDate": "2026-01-31", - "count": 210 -} -[2026-02-05T05:03:32.062Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/records?start_date=2026-01-01&end_date=2026-01-31", - "statusCode": 200, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:03:51.015Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T05:03:51.694Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:04:20.865Z] [INFO] ℹ️ 출근 체크 목록 조회 요청 - Context: { - "date": "2026-02-05" -} -[2026-02-05T05:04:20.867Z] [INFO] ℹ️ 일일 근태 기록 조회 요청 - Context: { - "date": "2026-02-05", - "workerId": null -} -[2026-02-05T05:04:20.869Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=100", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:04:20.871Z] [INFO] ℹ️ 출근 체크 목록 조회 성공 - Context: { - "date": "2026-02-05", - "count": 10 -} -[2026-02-05T05:04:20.874Z] [INFO] ℹ️ 일일 근태 기록 조회 성공 - Context: { - "date": "2026-02-05", - "count": 10 -} -[2026-02-05T05:04:20.876Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/checkin-list?date=2026-02-05", - "statusCode": 200, - "duration": "15ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:04:20.877Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/daily-records?date=2026-02-05", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:04:20.998Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:04:21.085Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T05:04:24.530Z] [INFO] ℹ️ 일일 근태 기록 조회 요청 - Context: { - "date": "2026-02-05", - "workerId": null -} -[2026-02-05T05:04:24.538Z] [INFO] ℹ️ 일일 근태 기록 조회 성공 - Context: { - "date": "2026-02-05", - "count": 10 -} -[2026-02-05T05:04:24.543Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=100", - "statusCode": 200, - "duration": "18ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:04:24.544Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/daily-records?date=2026-02-05", - "statusCode": 200, - "duration": "17ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:04:24.674Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:04:34.891Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-02-05", - "worker_id": 11 -} -[2026-02-05T05:04:34.899Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-02-05", - "worker_id": 11 -} -[2026-02-05T05:04:34.900Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:04:34.909Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-02-05", - "worker_id": 10 -} -[2026-02-05T05:04:34.911Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-02-05", - "worker_id": 10 -} -[2026-02-05T05:04:34.912Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:04:34.920Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-02-05", - "worker_id": 9 -} -[2026-02-05T05:04:34.921Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-02-05", - "worker_id": 9 -} -[2026-02-05T05:04:34.922Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:04:34.929Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-02-05", - "worker_id": 8 -} -[2026-02-05T05:04:34.931Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-02-05", - "worker_id": 8 -} -[2026-02-05T05:04:34.932Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:04:34.939Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-02-05", - "worker_id": 6 -} -[2026-02-05T05:04:34.941Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-02-05", - "worker_id": 6 -} -[2026-02-05T05:04:34.942Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:04:34.947Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-02-05", - "worker_id": 5 -} -[2026-02-05T05:04:34.949Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-02-05", - "worker_id": 5 -} -[2026-02-05T05:04:34.950Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:04:34.956Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-02-05", - "worker_id": 4 -} -[2026-02-05T05:04:34.958Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-02-05", - "worker_id": 4 -} -[2026-02-05T05:04:34.958Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:04:34.964Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-02-05", - "worker_id": 3 -} -[2026-02-05T05:04:34.966Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-02-05", - "worker_id": 3 -} -[2026-02-05T05:04:34.966Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:04:34.972Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-02-05", - "worker_id": 2 -} -[2026-02-05T05:04:34.974Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-02-05", - "worker_id": 2 -} -[2026-02-05T05:04:34.974Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:04:34.979Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-02-05", - "worker_id": 1 -} -[2026-02-05T05:04:34.981Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-02-05", - "worker_id": 1 -} -[2026-02-05T05:04:34.982Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:04:42.601Z] [INFO] ℹ️ 일일 근태 기록 조회 요청 - Context: { - "date": "2026-01-15", - "workerId": null -} -[2026-02-05T05:04:42.603Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=100", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:04:42.606Z] [INFO] ℹ️ 일일 근태 기록 조회 성공 - Context: { - "date": "2026-01-15", - "count": 10 -} -[2026-02-05T05:04:42.607Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/daily-records?date=2026-01-15", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:04:49.698Z] [INFO] ℹ️ 일일 근태 기록 조회 요청 - Context: { - "date": "2026-01-02", - "workerId": null -} -[2026-02-05T05:04:49.700Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=100", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:04:49.703Z] [INFO] ℹ️ 일일 근태 기록 조회 성공 - Context: { - "date": "2026-01-02", - "count": 10 -} -[2026-02-05T05:04:49.704Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/daily-records?date=2026-01-02", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:04:51.183Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T05:04:56.029Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:05:21.272Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T05:05:21.641Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=100", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:05:21.644Z] [INFO] ℹ️ 일일 근태 기록 조회 요청 - Context: { - "date": "2026-01-29", - "workerId": null -} -[2026-02-05T05:05:21.646Z] [INFO] ℹ️ 일일 근태 기록 조회 성공 - Context: { - "date": "2026-01-29", - "count": 10 -} -[2026-02-05T05:05:21.650Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/daily-records?date=2026-01-29", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:05:26.036Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:05:51.370Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T05:05:56.029Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:06:21.461Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T05:06:26.042Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:06:51.531Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T05:06:56.035Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:07:00.793Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=100", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:07:00.812Z] [INFO] ℹ️ 기간별 근태 기록 조회 요청 - Context: { - "startDate": "2026-02-01", - "endDate": "2026-02-28", - "workerId": null -} -[2026-02-05T05:07:00.814Z] [INFO] ℹ️ 기간별 근태 기록 조회 성공 - Context: { - "startDate": "2026-02-01", - "endDate": "2026-02-28", - "count": 20 -} -[2026-02-05T05:07:00.815Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/records?start_date=2026-02-01&end_date=2026-02-28", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:07:00.823Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260205", - "baseTime": "1300", - "nx": 57, - "ny": 119 -} -[2026-02-05T05:07:00.926Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:07:01.537Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 9.8, - "humidity": 61, - "windSpeed": 2.8, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-05T05:07:01.544Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 9.8, - "humidity": 61, - "windSpeed": 2.8, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-05T05:07:01.548Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "727ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:07:01.736Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:07:06.468Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=100", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:07:06.482Z] [INFO] ℹ️ 기간별 근태 기록 조회 요청 - Context: { - "startDate": "2026-01-01", - "endDate": "2026-01-31", - "workerId": null -} -[2026-02-05T05:07:06.489Z] [INFO] ℹ️ 기간별 근태 기록 조회 성공 - Context: { - "startDate": "2026-01-01", - "endDate": "2026-01-31", - "count": 210 -} -[2026-02-05T05:07:06.493Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/records?start_date=2026-01-01&end_date=2026-01-31", - "statusCode": 200, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:07:21.639Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T05:07:30.740Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:07:51.724Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T05:08:00.736Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:08:21.818Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T05:08:30.736Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:08:51.915Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T05:09:00.739Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:09:14.409Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:09:14.410Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/patrol/item-types", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:09:14.411Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/patrol/today-status", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:09:14.536Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:09:15.347Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:09:16.235Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/patrol/sessions", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:09:16.245Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:09:16.255Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:09:16.270Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/patrol/checklist?category_id=1", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:09:22.013Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T05:09:22.991Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/patrol/workplaces/2/detail?date=2026-02-05", - "statusCode": 200, - "duration": "17ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:09:23.015Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/patrol/workplaces/2/zone-items", - "statusCode": 500, - "duration": "17ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:09:23.043Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:09:23.886Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:09:52.109Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T05:09:52.856Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:10:22.189Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T05:10:22.855Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:10:52.270Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T05:10:52.862Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:11:22.403Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T05:11:22.867Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:11:52.585Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "8ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T05:11:52.876Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "15ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:12:22.650Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T05:12:22.856Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:12:52.756Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T05:12:52.867Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "15ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:13:22.857Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T05:13:22.860Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:13:52.887Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:13:52.993Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T05:14:22.866Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:14:23.076Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T05:14:52.872Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:14:53.163Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T05:15:22.858Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:15:23.258Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T05:15:52.867Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:15:53.349Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T05:16:22.876Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:16:23.440Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T05:16:47.435Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=100", - "statusCode": 200, - "duration": "20ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:16:47.442Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260205", - "baseTime": "1400", - "nx": 57, - "ny": 119 -} -[2026-02-05T05:16:47.447Z] [INFO] ℹ️ 기간별 근태 기록 조회 요청 - Context: { - "startDate": "2026-02-01", - "endDate": "2026-02-28", - "workerId": null -} -[2026-02-05T05:16:47.451Z] [INFO] ℹ️ 기간별 근태 기록 조회 성공 - Context: { - "startDate": "2026-02-01", - "endDate": "2026-02-28", - "count": 20 -} -[2026-02-05T05:16:47.452Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/records?start_date=2026-02-01&end_date=2026-02-28", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:16:47.512Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:16:47.796Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 9.9, - "humidity": 63, - "windSpeed": 1.6, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-05T05:16:47.802Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 9.9, - "humidity": 63, - "windSpeed": 1.6, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-05T05:16:47.808Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "367ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:16:48.391Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:16:53.539Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T05:16:54.487Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=100", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:16:54.496Z] [INFO] ℹ️ 기간별 근태 기록 조회 요청 - Context: { - "startDate": "2026-01-01", - "endDate": "2026-01-31", - "workerId": null -} -[2026-02-05T05:16:54.503Z] [INFO] ℹ️ 기간별 근태 기록 조회 성공 - Context: { - "startDate": "2026-01-01", - "endDate": "2026-01-31", - "count": 210 -} -[2026-02-05T05:16:54.507Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/records?start_date=2026-01-01&end_date=2026-01-31", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:17:17.325Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:17:23.633Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T05:17:47.334Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:17:53.730Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T05:18:17.323Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:18:23.811Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T05:18:47.332Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:18:53.897Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T05:19:17.336Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:19:23.984Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T05:19:47.334Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:19:54.095Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T05:20:17.365Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:20:24.210Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T05:20:47.351Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:20:54.290Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T05:21:17.355Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:21:24.378Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T05:21:47.355Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:21:54.479Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T05:22:04.902Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:22:15.423Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 200, - "duration": "103ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:22:16.176Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:22:16.221Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:22:16.235Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260205", - "baseTime": "1400", - "nx": 57, - "ny": 119 -} -[2026-02-05T05:22:16.245Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:22:16.259Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-05", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:22:16.269Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:22:16.286Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/moved/list", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:22:16.328Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:22:16.933Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 9.9, - "humidity": 63, - "windSpeed": 1.6, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-05T05:22:16.939Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 9.9, - "humidity": 63, - "windSpeed": 1.6, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-05T05:22:16.943Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 304, - "duration": "711ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:22:17.170Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:22:17.750Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:22:19.791Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments?workplace_id=2", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:22:19.866Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/equipments?workplace_id=2", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:22:24.579Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T05:22:26.599Z] [INFO] ℹ️ 일일 근태 기록 조회 요청 - Context: { - "date": "2026-02-05", - "workerId": null -} -[2026-02-05T05:22:26.603Z] [INFO] ℹ️ 일일 근태 기록 조회 성공 - Context: { - "date": "2026-02-05", - "count": 10 -} -[2026-02-05T05:22:26.608Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/daily-records?date=2026-02-05", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:22:26.610Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=100", - "statusCode": 200, - "duration": "16ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:22:26.733Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:22:31.286Z] [INFO] ℹ️ 일일 근태 기록 조회 요청 - Context: { - "date": "2026-01-06", - "workerId": null -} -[2026-02-05T05:22:31.288Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=100", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:22:31.292Z] [INFO] ℹ️ 일일 근태 기록 조회 성공 - Context: { - "date": "2026-01-06", - "count": 10 -} -[2026-02-05T05:22:31.294Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/daily-records?date=2026-01-06", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:22:37.258Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-06", - "worker_id": 11 -} -[2026-02-05T05:22:37.262Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-06", - "worker_id": 11 -} -[2026-02-05T05:22:37.264Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:22:37.272Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-06", - "worker_id": 10 -} -[2026-02-05T05:22:37.274Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-06", - "worker_id": 10 -} -[2026-02-05T05:22:37.274Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:22:37.280Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-06", - "worker_id": 9 -} -[2026-02-05T05:22:37.281Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-06", - "worker_id": 9 -} -[2026-02-05T05:22:37.281Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:22:37.288Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-06", - "worker_id": 8 -} -[2026-02-05T05:22:37.289Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-06", - "worker_id": 8 -} -[2026-02-05T05:22:37.290Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:22:37.296Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-06", - "worker_id": 6 -} -[2026-02-05T05:22:37.297Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-06", - "worker_id": 6 -} -[2026-02-05T05:22:37.298Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:22:37.305Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-06", - "worker_id": 5 -} -[2026-02-05T05:22:37.306Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-06", - "worker_id": 5 -} -[2026-02-05T05:22:37.307Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:22:37.312Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-06", - "worker_id": 4 -} -[2026-02-05T05:22:37.314Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-06", - "worker_id": 4 -} -[2026-02-05T05:22:37.315Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:22:37.319Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-06", - "worker_id": 3 -} -[2026-02-05T05:22:37.320Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-06", - "worker_id": 3 -} -[2026-02-05T05:22:37.321Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:22:37.326Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-06", - "worker_id": 2 -} -[2026-02-05T05:22:37.327Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-06", - "worker_id": 2 -} -[2026-02-05T05:22:37.327Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:22:37.331Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-06", - "worker_id": 1 -} -[2026-02-05T05:22:37.333Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-06", - "worker_id": 1 -} -[2026-02-05T05:22:37.333Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:22:43.886Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers?limit=100", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:22:43.891Z] [INFO] ℹ️ 일일 근태 기록 조회 요청 - Context: { - "date": "2026-01-15", - "workerId": null -} -[2026-02-05T05:22:43.895Z] [INFO] ℹ️ 일일 근태 기록 조회 성공 - Context: { - "date": "2026-01-15", - "count": 10 -} -[2026-02-05T05:22:43.897Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/daily-records?date=2026-01-15", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:22:48.229Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:22:48.383Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-15", - "worker_id": 11 -} -[2026-02-05T05:22:48.390Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-15", - "worker_id": 11 -} -[2026-02-05T05:22:48.392Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:22:48.400Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-15", - "worker_id": 10 -} -[2026-02-05T05:22:48.404Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-15", - "worker_id": 10 -} -[2026-02-05T05:22:48.405Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:22:48.415Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-15", - "worker_id": 9 -} -[2026-02-05T05:22:48.417Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-15", - "worker_id": 9 -} -[2026-02-05T05:22:48.417Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:22:48.427Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-15", - "worker_id": 8 -} -[2026-02-05T05:22:48.429Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-15", - "worker_id": 8 -} -[2026-02-05T05:22:48.430Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:22:48.439Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-15", - "worker_id": 6 -} -[2026-02-05T05:22:48.442Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-15", - "worker_id": 6 -} -[2026-02-05T05:22:48.442Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:22:48.449Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-15", - "worker_id": 5 -} -[2026-02-05T05:22:48.451Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-15", - "worker_id": 5 -} -[2026-02-05T05:22:48.453Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:22:48.459Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-15", - "worker_id": 4 -} -[2026-02-05T05:22:48.461Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-15", - "worker_id": 4 -} -[2026-02-05T05:22:48.462Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:22:48.468Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-15", - "worker_id": 3 -} -[2026-02-05T05:22:48.470Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-15", - "worker_id": 3 -} -[2026-02-05T05:22:48.470Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:22:48.478Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-15", - "worker_id": 2 -} -[2026-02-05T05:22:48.480Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-15", - "worker_id": 2 -} -[2026-02-05T05:22:48.481Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:22:48.486Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-15", - "worker_id": 1 -} -[2026-02-05T05:22:48.489Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-15", - "worker_id": 1 -} -[2026-02-05T05:22:48.489Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:22:54.657Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T05:23:00.524Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:23:18.232Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:23:24.766Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T05:23:30.512Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:23:33.912Z] [INFO] ℹ️ 일일 근태 기록 조회 요청 - Context: { - "date": "2026-01-02", - "workerId": null -} -[2026-02-05T05:23:33.918Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers?limit=100", - "statusCode": 304, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:23:33.920Z] [INFO] ℹ️ 일일 근태 기록 조회 성공 - Context: { - "date": "2026-01-02", - "count": 10 -} -[2026-02-05T05:23:33.923Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/daily-records?date=2026-01-02", - "statusCode": 200, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:23:48.332Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:23:54.853Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T05:24:00.519Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:24:06.284Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2026-02-05T05:24:06.286Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-02-05T05:24:06.778Z] [INFO] ℹ️ Rate Limiting 설정 완료 -[2026-02-05T05:24:06.779Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-02-05T05:24:06.859Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-02-05T05:24:06.943Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2026-02-05T05:24:06.950Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-02-05T05:24:11.630Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T05:24:26.775Z] [INFO] ℹ️ MariaDB 연결 성공 - Context: { - "connection": "db:3306", - "database": "hyungi", - "connectionLimit": 10 -} -[2026-02-05T05:24:26.779Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "30ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:24:30.619Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:24:33.457Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=100", - "statusCode": 200, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:24:33.516Z] [INFO] ℹ️ 기간별 근태 기록 조회 요청 - Context: { - "startDate": "2026-02-01", - "endDate": "2026-02-28", - "workerId": null -} -[2026-02-05T05:24:33.530Z] [INFO] ℹ️ 기간별 근태 기록 조회 성공 - Context: { - "startDate": "2026-02-01", - "endDate": "2026-02-28", - "count": 20 -} -[2026-02-05T05:24:33.537Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/records?start_date=2026-02-01&end_date=2026-02-28", - "statusCode": 200, - "duration": "25ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:24:33.575Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260205", - "baseTime": "1400", - "nx": 57, - "ny": 119 -} -[2026-02-05T05:24:33.608Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:24:34.044Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 9.9, - "humidity": 63, - "windSpeed": 1.6, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-05T05:24:34.051Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 9.9, - "humidity": 63, - "windSpeed": 1.6, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-05T05:24:34.055Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "517ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:24:34.381Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:24:37.426Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=100", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:24:37.441Z] [INFO] ℹ️ 기간별 근태 기록 조회 요청 - Context: { - "startDate": "2026-01-01", - "endDate": "2026-01-31", - "workerId": null -} -[2026-02-05T05:24:37.447Z] [INFO] ℹ️ 기간별 근태 기록 조회 성공 - Context: { - "startDate": "2026-01-01", - "endDate": "2026-01-31", - "count": 210 -} -[2026-02-05T05:24:37.451Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/records?start_date=2026-01-01&end_date=2026-01-31", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:24:41.754Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T05:24:47.551Z] [WARN] ⚠️ 인증 실패: 유효하지 않은 토큰 - Context: { - "error": "jwt malformed", - "path": "/", - "ip": "::ffff:185.199.108.133" -} -[2026-02-05T05:24:47.554Z] [WARN] ⚠️ 유효하지 않은 토큰입니다 - Context: { - "code": "AUTHENTICATION_ERROR", - "url": "/api/patrol/workplaces/2/zone-items", - "method": "GET", - "user": "anonymous" -} -[2026-02-05T05:24:47.557Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/patrol/workplaces/2/zone-items", - "statusCode": 401, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-02-05T05:25:00.722Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:25:03.371Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:25:06.171Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers?limit=100", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:25:06.175Z] [INFO] ℹ️ 일일 근태 기록 조회 요청 - Context: { - "date": "2026-01-15", - "workerId": null -} -[2026-02-05T05:25:06.179Z] [INFO] ℹ️ 일일 근태 기록 조회 성공 - Context: { - "date": "2026-01-15", - "count": 10 -} -[2026-02-05T05:25:06.181Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/daily-records?date=2026-01-15", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:25:11.840Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T05:25:16.851Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-15", - "worker_id": 11 -} -[2026-02-05T05:25:16.857Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-15", - "worker_id": 11 -} -[2026-02-05T05:25:16.858Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:25:16.869Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-15", - "worker_id": 10 -} -[2026-02-05T05:25:16.872Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-15", - "worker_id": 10 -} -[2026-02-05T05:25:16.872Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:25:16.880Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-15", - "worker_id": 9 -} -[2026-02-05T05:25:16.883Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-15", - "worker_id": 9 -} -[2026-02-05T05:25:16.883Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:25:16.891Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-15", - "worker_id": 8 -} -[2026-02-05T05:25:16.894Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-15", - "worker_id": 8 -} -[2026-02-05T05:25:16.895Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:25:16.901Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-15", - "worker_id": 6 -} -[2026-02-05T05:25:16.903Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-15", - "worker_id": 6 -} -[2026-02-05T05:25:16.903Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:25:16.909Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-15", - "worker_id": 5 -} -[2026-02-05T05:25:16.911Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-15", - "worker_id": 5 -} -[2026-02-05T05:25:16.911Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:25:16.916Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-15", - "worker_id": 4 -} -[2026-02-05T05:25:16.918Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-15", - "worker_id": 4 -} -[2026-02-05T05:25:16.919Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:25:16.924Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-15", - "worker_id": 3 -} -[2026-02-05T05:25:16.926Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-15", - "worker_id": 3 -} -[2026-02-05T05:25:16.928Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:25:16.933Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-15", - "worker_id": 2 -} -[2026-02-05T05:25:16.935Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-15", - "worker_id": 2 -} -[2026-02-05T05:25:16.936Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:25:16.941Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-15", - "worker_id": 1 -} -[2026-02-05T05:25:16.942Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-15", - "worker_id": 1 -} -[2026-02-05T05:25:16.943Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:25:25.589Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=100", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:25:25.600Z] [INFO] ℹ️ 기간별 근태 기록 조회 요청 - Context: { - "startDate": "2026-02-01", - "endDate": "2026-02-28", - "workerId": null -} -[2026-02-05T05:25:25.605Z] [INFO] ℹ️ 기간별 근태 기록 조회 성공 - Context: { - "startDate": "2026-02-01", - "endDate": "2026-02-28", - "count": 20 -} -[2026-02-05T05:25:25.607Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/records?start_date=2026-02-01&end_date=2026-02-28", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:25:25.722Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:25:26.526Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:25:29.358Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=100", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:25:29.367Z] [INFO] ℹ️ 기간별 근태 기록 조회 요청 - Context: { - "startDate": "2026-01-01", - "endDate": "2026-01-31", - "workerId": null -} -[2026-02-05T05:25:29.376Z] [INFO] ℹ️ 기간별 근태 기록 조회 성공 - Context: { - "startDate": "2026-01-01", - "endDate": "2026-01-31", - "count": 210 -} -[2026-02-05T05:25:29.380Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/records?start_date=2026-01-01&end_date=2026-01-31", - "statusCode": 200, - "duration": "15ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:25:32.492Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:25:41.958Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T05:25:45.142Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers?limit=100", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:25:45.146Z] [INFO] ℹ️ 일일 근태 기록 조회 요청 - Context: { - "date": "2026-01-19", - "workerId": null -} -[2026-02-05T05:25:45.149Z] [INFO] ℹ️ 일일 근태 기록 조회 성공 - Context: { - "date": "2026-01-19", - "count": 10 -} -[2026-02-05T05:25:45.152Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/daily-records?date=2026-01-19", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:25:51.898Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-19", - "worker_id": 11 -} -[2026-02-05T05:25:51.902Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-19", - "worker_id": 11 -} -[2026-02-05T05:25:51.904Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:25:51.911Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-19", - "worker_id": 10 -} -[2026-02-05T05:25:51.914Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-19", - "worker_id": 10 -} -[2026-02-05T05:25:51.915Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:25:51.921Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-19", - "worker_id": 9 -} -[2026-02-05T05:25:51.922Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-19", - "worker_id": 9 -} -[2026-02-05T05:25:51.922Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:25:51.928Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-19", - "worker_id": 8 -} -[2026-02-05T05:25:51.929Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-19", - "worker_id": 8 -} -[2026-02-05T05:25:51.929Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:25:51.934Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-19", - "worker_id": 6 -} -[2026-02-05T05:25:51.936Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-19", - "worker_id": 6 -} -[2026-02-05T05:25:51.937Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:25:51.941Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-19", - "worker_id": 5 -} -[2026-02-05T05:25:51.942Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-19", - "worker_id": 5 -} -[2026-02-05T05:25:51.943Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:25:51.947Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-19", - "worker_id": 4 -} -[2026-02-05T05:25:51.948Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-19", - "worker_id": 4 -} -[2026-02-05T05:25:51.949Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:25:51.955Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-19", - "worker_id": 3 -} -[2026-02-05T05:25:51.958Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-19", - "worker_id": 3 -} -[2026-02-05T05:25:51.959Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:25:51.965Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-19", - "worker_id": 2 -} -[2026-02-05T05:25:51.971Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-19", - "worker_id": 2 -} -[2026-02-05T05:25:51.972Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:25:51.976Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-19", - "worker_id": 1 -} -[2026-02-05T05:25:51.977Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-19", - "worker_id": 1 -} -[2026-02-05T05:25:51.978Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:25:55.622Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:25:57.153Z] [INFO] ℹ️ 일일 근태 기록 조회 요청 - Context: { - "date": "2026-01-20", - "workerId": null -} -[2026-02-05T05:25:57.158Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers?limit=100", - "statusCode": 304, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:25:57.160Z] [INFO] ℹ️ 일일 근태 기록 조회 성공 - Context: { - "date": "2026-01-20", - "count": 10 -} -[2026-02-05T05:25:57.162Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/daily-records?date=2026-01-20", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:25:58.299Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-20", - "worker_id": 11 -} -[2026-02-05T05:25:58.303Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-20", - "worker_id": 11 -} -[2026-02-05T05:25:58.304Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:25:58.314Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-20", - "worker_id": 10 -} -[2026-02-05T05:25:58.317Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-20", - "worker_id": 10 -} -[2026-02-05T05:25:58.318Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:25:58.324Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-20", - "worker_id": 9 -} -[2026-02-05T05:25:58.325Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-20", - "worker_id": 9 -} -[2026-02-05T05:25:58.326Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:25:58.331Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-20", - "worker_id": 8 -} -[2026-02-05T05:25:58.333Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-20", - "worker_id": 8 -} -[2026-02-05T05:25:58.333Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:25:58.339Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-20", - "worker_id": 6 -} -[2026-02-05T05:25:58.340Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-20", - "worker_id": 6 -} -[2026-02-05T05:25:58.341Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:25:58.347Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-20", - "worker_id": 5 -} -[2026-02-05T05:25:58.349Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-20", - "worker_id": 5 -} -[2026-02-05T05:25:58.350Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:25:58.354Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-20", - "worker_id": 4 -} -[2026-02-05T05:25:58.355Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-20", - "worker_id": 4 -} -[2026-02-05T05:25:58.355Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:25:58.360Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-20", - "worker_id": 3 -} -[2026-02-05T05:25:58.361Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-20", - "worker_id": 3 -} -[2026-02-05T05:25:58.361Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:25:58.365Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-20", - "worker_id": 2 -} -[2026-02-05T05:25:58.366Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-20", - "worker_id": 2 -} -[2026-02-05T05:25:58.366Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:25:58.370Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-20", - "worker_id": 1 -} -[2026-02-05T05:25:58.371Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-20", - "worker_id": 1 -} -[2026-02-05T05:25:58.372Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:26:03.209Z] [INFO] ℹ️ 일일 근태 기록 조회 요청 - Context: { - "date": "2026-01-21", - "workerId": null -} -[2026-02-05T05:26:03.212Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers?limit=100", - "statusCode": 304, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:26:03.214Z] [INFO] ℹ️ 일일 근태 기록 조회 성공 - Context: { - "date": "2026-01-21", - "count": 10 -} -[2026-02-05T05:26:03.216Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/daily-records?date=2026-01-21", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:26:05.467Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:26:06.548Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-21", - "worker_id": 11 -} -[2026-02-05T05:26:06.553Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-21", - "worker_id": 11 -} -[2026-02-05T05:26:06.555Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:26:06.564Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-21", - "worker_id": 10 -} -[2026-02-05T05:26:06.566Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-21", - "worker_id": 10 -} -[2026-02-05T05:26:06.567Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:26:06.571Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-21", - "worker_id": 9 -} -[2026-02-05T05:26:06.572Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-21", - "worker_id": 9 -} -[2026-02-05T05:26:06.573Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:26:06.578Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-21", - "worker_id": 8 -} -[2026-02-05T05:26:06.579Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-21", - "worker_id": 8 -} -[2026-02-05T05:26:06.580Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:26:06.584Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-21", - "worker_id": 6 -} -[2026-02-05T05:26:06.585Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-21", - "worker_id": 6 -} -[2026-02-05T05:26:06.585Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:26:06.589Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-21", - "worker_id": 5 -} -[2026-02-05T05:26:06.590Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-21", - "worker_id": 5 -} -[2026-02-05T05:26:06.591Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:26:06.595Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-21", - "worker_id": 4 -} -[2026-02-05T05:26:06.596Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-21", - "worker_id": 4 -} -[2026-02-05T05:26:06.596Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:26:06.599Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-21", - "worker_id": 3 -} -[2026-02-05T05:26:06.600Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-21", - "worker_id": 3 -} -[2026-02-05T05:26:06.601Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:26:06.604Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-21", - "worker_id": 2 -} -[2026-02-05T05:26:06.605Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-21", - "worker_id": 2 -} -[2026-02-05T05:26:06.606Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:26:06.609Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-21", - "worker_id": 1 -} -[2026-02-05T05:26:06.610Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-21", - "worker_id": 1 -} -[2026-02-05T05:26:06.610Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:26:10.558Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers?limit=100", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:26:10.564Z] [INFO] ℹ️ 일일 근태 기록 조회 요청 - Context: { - "date": "2026-01-22", - "workerId": null -} -[2026-02-05T05:26:10.569Z] [INFO] ℹ️ 일일 근태 기록 조회 성공 - Context: { - "date": "2026-01-22", - "count": 10 -} -[2026-02-05T05:26:10.571Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/daily-records?date=2026-01-22", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:26:12.050Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T05:26:13.045Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-22", - "worker_id": 11 -} -[2026-02-05T05:26:13.049Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-22", - "worker_id": 11 -} -[2026-02-05T05:26:13.050Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:26:13.059Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-22", - "worker_id": 10 -} -[2026-02-05T05:26:13.062Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-22", - "worker_id": 10 -} -[2026-02-05T05:26:13.063Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:26:13.066Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-22", - "worker_id": 9 -} -[2026-02-05T05:26:13.068Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-22", - "worker_id": 9 -} -[2026-02-05T05:26:13.069Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:26:13.073Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-22", - "worker_id": 8 -} -[2026-02-05T05:26:13.074Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-22", - "worker_id": 8 -} -[2026-02-05T05:26:13.075Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:26:13.080Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-22", - "worker_id": 6 -} -[2026-02-05T05:26:13.081Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-22", - "worker_id": 6 -} -[2026-02-05T05:26:13.082Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:26:13.086Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-22", - "worker_id": 5 -} -[2026-02-05T05:26:13.087Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-22", - "worker_id": 5 -} -[2026-02-05T05:26:13.088Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:26:13.091Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-22", - "worker_id": 4 -} -[2026-02-05T05:26:13.093Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-22", - "worker_id": 4 -} -[2026-02-05T05:26:13.093Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:26:13.098Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-22", - "worker_id": 3 -} -[2026-02-05T05:26:13.099Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-22", - "worker_id": 3 -} -[2026-02-05T05:26:13.100Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:26:13.104Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-22", - "worker_id": 2 -} -[2026-02-05T05:26:13.106Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-22", - "worker_id": 2 -} -[2026-02-05T05:26:13.106Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:26:13.110Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-22", - "worker_id": 1 -} -[2026-02-05T05:26:13.113Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-22", - "worker_id": 1 -} -[2026-02-05T05:26:13.114Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:26:16.622Z] [INFO] ℹ️ 일일 근태 기록 조회 요청 - Context: { - "date": "2026-01-23", - "workerId": null -} -[2026-02-05T05:26:16.625Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers?limit=100", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:26:16.627Z] [INFO] ℹ️ 일일 근태 기록 조회 성공 - Context: { - "date": "2026-01-23", - "count": 10 -} -[2026-02-05T05:26:16.630Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/daily-records?date=2026-01-23", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:26:21.071Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-23", - "worker_id": 11 -} -[2026-02-05T05:26:21.076Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-23", - "worker_id": 11 -} -[2026-02-05T05:26:21.078Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:26:21.084Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-23", - "worker_id": 10 -} -[2026-02-05T05:26:21.088Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-23", - "worker_id": 10 -} -[2026-02-05T05:26:21.089Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:26:21.096Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-23", - "worker_id": 9 -} -[2026-02-05T05:26:21.098Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-23", - "worker_id": 9 -} -[2026-02-05T05:26:21.099Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:26:21.106Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-23", - "worker_id": 8 -} -[2026-02-05T05:26:21.108Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-23", - "worker_id": 8 -} -[2026-02-05T05:26:21.108Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:26:21.115Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-23", - "worker_id": 6 -} -[2026-02-05T05:26:21.117Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-23", - "worker_id": 6 -} -[2026-02-05T05:26:21.117Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:26:21.123Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-23", - "worker_id": 5 -} -[2026-02-05T05:26:21.125Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-23", - "worker_id": 5 -} -[2026-02-05T05:26:21.126Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:26:21.132Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-23", - "worker_id": 4 -} -[2026-02-05T05:26:21.134Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-23", - "worker_id": 4 -} -[2026-02-05T05:26:21.134Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:26:21.140Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-23", - "worker_id": 3 -} -[2026-02-05T05:26:21.141Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-23", - "worker_id": 3 -} -[2026-02-05T05:26:21.142Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:26:21.147Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-23", - "worker_id": 2 -} -[2026-02-05T05:26:21.148Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-23", - "worker_id": 2 -} -[2026-02-05T05:26:21.149Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:26:21.154Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-23", - "worker_id": 1 -} -[2026-02-05T05:26:21.155Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-23", - "worker_id": 1 -} -[2026-02-05T05:26:21.156Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:26:24.631Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers?limit=100", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:26:24.635Z] [INFO] ℹ️ 일일 근태 기록 조회 요청 - Context: { - "date": "2026-01-26", - "workerId": null -} -[2026-02-05T05:26:24.639Z] [INFO] ℹ️ 일일 근태 기록 조회 성공 - Context: { - "date": "2026-01-26", - "count": 10 -} -[2026-02-05T05:26:24.642Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/daily-records?date=2026-01-26", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:26:25.622Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:26:26.774Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-26", - "worker_id": 11 -} -[2026-02-05T05:26:26.780Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-26", - "worker_id": 11 -} -[2026-02-05T05:26:26.782Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:26:26.793Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-26", - "worker_id": 10 -} -[2026-02-05T05:26:26.796Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-26", - "worker_id": 10 -} -[2026-02-05T05:26:26.796Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:26:26.807Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-26", - "worker_id": 9 -} -[2026-02-05T05:26:26.809Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-26", - "worker_id": 9 -} -[2026-02-05T05:26:26.810Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:26:26.817Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-26", - "worker_id": 8 -} -[2026-02-05T05:26:26.819Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-26", - "worker_id": 8 -} -[2026-02-05T05:26:26.820Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:26:26.825Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-26", - "worker_id": 6 -} -[2026-02-05T05:26:26.827Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-26", - "worker_id": 6 -} -[2026-02-05T05:26:26.828Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:26:26.833Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-26", - "worker_id": 5 -} -[2026-02-05T05:26:26.835Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-26", - "worker_id": 5 -} -[2026-02-05T05:26:26.836Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:26:26.841Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-26", - "worker_id": 4 -} -[2026-02-05T05:26:26.843Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-26", - "worker_id": 4 -} -[2026-02-05T05:26:26.844Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:26:26.849Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-26", - "worker_id": 3 -} -[2026-02-05T05:26:26.851Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-26", - "worker_id": 3 -} -[2026-02-05T05:26:26.852Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:26:26.857Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-26", - "worker_id": 2 -} -[2026-02-05T05:26:26.859Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-26", - "worker_id": 2 -} -[2026-02-05T05:26:26.860Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:26:26.865Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-26", - "worker_id": 1 -} -[2026-02-05T05:26:26.866Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-26", - "worker_id": 1 -} -[2026-02-05T05:26:26.867Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:26:30.466Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers?limit=100", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:26:30.471Z] [INFO] ℹ️ 일일 근태 기록 조회 요청 - Context: { - "date": "2026-01-27", - "workerId": null -} -[2026-02-05T05:26:30.476Z] [INFO] ℹ️ 일일 근태 기록 조회 성공 - Context: { - "date": "2026-01-27", - "count": 10 -} -[2026-02-05T05:26:30.478Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/daily-records?date=2026-01-27", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:26:31.752Z] [INFO] ℹ️ 일일 근태 기록 조회 요청 - Context: { - "date": "2026-01-27", - "workerId": null -} -[2026-02-05T05:26:31.756Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers?limit=100", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:26:31.759Z] [INFO] ℹ️ 일일 근태 기록 조회 성공 - Context: { - "date": "2026-01-27", - "count": 10 -} -[2026-02-05T05:26:31.760Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/attendance/daily-records?date=2026-01-27", - "statusCode": 304, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:26:32.756Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-27", - "worker_id": 11 -} -[2026-02-05T05:26:32.761Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-27", - "worker_id": 11 -} -[2026-02-05T05:26:32.762Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:26:32.772Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-27", - "worker_id": 10 -} -[2026-02-05T05:26:32.775Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-27", - "worker_id": 10 -} -[2026-02-05T05:26:32.776Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:26:32.781Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-27", - "worker_id": 9 -} -[2026-02-05T05:26:32.783Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-27", - "worker_id": 9 -} -[2026-02-05T05:26:32.783Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:26:32.788Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-27", - "worker_id": 8 -} -[2026-02-05T05:26:32.790Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-27", - "worker_id": 8 -} -[2026-02-05T05:26:32.790Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:26:32.795Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-27", - "worker_id": 6 -} -[2026-02-05T05:26:32.796Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-27", - "worker_id": 6 -} -[2026-02-05T05:26:32.797Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:26:32.801Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-27", - "worker_id": 5 -} -[2026-02-05T05:26:32.803Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-27", - "worker_id": 5 -} -[2026-02-05T05:26:32.803Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:26:32.812Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-27", - "worker_id": 4 -} -[2026-02-05T05:26:32.814Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-27", - "worker_id": 4 -} -[2026-02-05T05:26:32.814Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:26:32.825Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-27", - "worker_id": 3 -} -[2026-02-05T05:26:32.831Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-27", - "worker_id": 3 -} -[2026-02-05T05:26:32.832Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:26:32.842Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-27", - "worker_id": 2 -} -[2026-02-05T05:26:32.854Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-27", - "worker_id": 2 -} -[2026-02-05T05:26:32.857Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "19ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:26:32.864Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-27", - "worker_id": 1 -} -[2026-02-05T05:26:32.867Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-27", - "worker_id": 1 -} -[2026-02-05T05:26:32.869Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:26:36.750Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers?limit=100", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:26:36.754Z] [INFO] ℹ️ 일일 근태 기록 조회 요청 - Context: { - "date": "2026-01-28", - "workerId": null -} -[2026-02-05T05:26:36.758Z] [INFO] ℹ️ 일일 근태 기록 조회 성공 - Context: { - "date": "2026-01-28", - "count": 10 -} -[2026-02-05T05:26:36.760Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/daily-records?date=2026-01-28", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:26:37.630Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-28", - "worker_id": 11 -} -[2026-02-05T05:26:37.633Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-28", - "worker_id": 11 -} -[2026-02-05T05:26:37.634Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:26:37.642Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-28", - "worker_id": 10 -} -[2026-02-05T05:26:37.646Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-28", - "worker_id": 10 -} -[2026-02-05T05:26:37.647Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:26:37.650Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-28", - "worker_id": 9 -} -[2026-02-05T05:26:37.652Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-28", - "worker_id": 9 -} -[2026-02-05T05:26:37.652Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:26:37.656Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-28", - "worker_id": 8 -} -[2026-02-05T05:26:37.658Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-28", - "worker_id": 8 -} -[2026-02-05T05:26:37.658Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:26:37.662Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-28", - "worker_id": 6 -} -[2026-02-05T05:26:37.663Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-28", - "worker_id": 6 -} -[2026-02-05T05:26:37.664Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:26:37.667Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-28", - "worker_id": 5 -} -[2026-02-05T05:26:37.668Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-28", - "worker_id": 5 -} -[2026-02-05T05:26:37.669Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:26:37.673Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-28", - "worker_id": 4 -} -[2026-02-05T05:26:37.674Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-28", - "worker_id": 4 -} -[2026-02-05T05:26:37.674Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:26:37.678Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-28", - "worker_id": 3 -} -[2026-02-05T05:26:37.679Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-28", - "worker_id": 3 -} -[2026-02-05T05:26:37.679Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:26:37.683Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-28", - "worker_id": 2 -} -[2026-02-05T05:26:37.686Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-28", - "worker_id": 2 -} -[2026-02-05T05:26:37.686Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:26:37.690Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-28", - "worker_id": 1 -} -[2026-02-05T05:26:37.692Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-28", - "worker_id": 1 -} -[2026-02-05T05:26:37.692Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:26:41.007Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers?limit=100", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:26:41.010Z] [INFO] ℹ️ 일일 근태 기록 조회 요청 - Context: { - "date": "2026-01-29", - "workerId": null -} -[2026-02-05T05:26:41.013Z] [INFO] ℹ️ 일일 근태 기록 조회 성공 - Context: { - "date": "2026-01-29", - "count": 10 -} -[2026-02-05T05:26:41.016Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/daily-records?date=2026-01-29", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:26:41.536Z] [INFO] ℹ️ 일일 근태 기록 조회 요청 - Context: { - "date": "2026-01-29", - "workerId": null -} -[2026-02-05T05:26:41.540Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers?limit=100", - "statusCode": 304, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:26:41.543Z] [INFO] ℹ️ 일일 근태 기록 조회 성공 - Context: { - "date": "2026-01-29", - "count": 10 -} -[2026-02-05T05:26:41.545Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/attendance/daily-records?date=2026-01-29", - "statusCode": 304, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:26:42.135Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T05:26:42.260Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:26:42.490Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-29", - "worker_id": 11 -} -[2026-02-05T05:26:42.493Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-29", - "worker_id": 11 -} -[2026-02-05T05:26:42.495Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:26:42.502Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-29", - "worker_id": 10 -} -[2026-02-05T05:26:42.506Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-29", - "worker_id": 10 -} -[2026-02-05T05:26:42.507Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:26:42.511Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-29", - "worker_id": 9 -} -[2026-02-05T05:26:42.513Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-29", - "worker_id": 9 -} -[2026-02-05T05:26:42.515Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:26:42.519Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-29", - "worker_id": 8 -} -[2026-02-05T05:26:42.521Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-29", - "worker_id": 8 -} -[2026-02-05T05:26:42.521Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:26:42.525Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-29", - "worker_id": 6 -} -[2026-02-05T05:26:42.527Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-29", - "worker_id": 6 -} -[2026-02-05T05:26:42.528Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:26:42.532Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-29", - "worker_id": 5 -} -[2026-02-05T05:26:42.533Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-29", - "worker_id": 5 -} -[2026-02-05T05:26:42.534Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:26:42.539Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-29", - "worker_id": 4 -} -[2026-02-05T05:26:42.540Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-29", - "worker_id": 4 -} -[2026-02-05T05:26:42.540Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:26:42.545Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-29", - "worker_id": 3 -} -[2026-02-05T05:26:42.547Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-29", - "worker_id": 3 -} -[2026-02-05T05:26:42.548Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:26:42.552Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-29", - "worker_id": 2 -} -[2026-02-05T05:26:42.553Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-29", - "worker_id": 2 -} -[2026-02-05T05:26:42.554Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:26:42.558Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-29", - "worker_id": 1 -} -[2026-02-05T05:26:42.559Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-29", - "worker_id": 1 -} -[2026-02-05T05:26:42.560Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:26:46.319Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers?limit=100", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:26:46.324Z] [INFO] ℹ️ 일일 근태 기록 조회 요청 - Context: { - "date": "2026-01-30", - "workerId": null -} -[2026-02-05T05:26:46.327Z] [INFO] ℹ️ 일일 근태 기록 조회 성공 - Context: { - "date": "2026-01-30", - "count": 10 -} -[2026-02-05T05:26:46.329Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/daily-records?date=2026-01-30", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:26:54.872Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-30", - "worker_id": 11 -} -[2026-02-05T05:26:54.875Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-30", - "worker_id": 11 -} -[2026-02-05T05:26:54.877Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:26:54.883Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-30", - "worker_id": 10 -} -[2026-02-05T05:26:54.886Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-30", - "worker_id": 10 -} -[2026-02-05T05:26:54.887Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:26:54.902Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-30", - "worker_id": 9 -} -[2026-02-05T05:26:54.903Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-30", - "worker_id": 9 -} -[2026-02-05T05:26:54.904Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:26:54.911Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-30", - "worker_id": 8 -} -[2026-02-05T05:26:54.912Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-30", - "worker_id": 8 -} -[2026-02-05T05:26:54.913Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:26:54.919Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-30", - "worker_id": 6 -} -[2026-02-05T05:26:54.921Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-30", - "worker_id": 6 -} -[2026-02-05T05:26:54.922Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:26:54.927Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-30", - "worker_id": 5 -} -[2026-02-05T05:26:54.930Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-30", - "worker_id": 5 -} -[2026-02-05T05:26:54.930Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:26:54.935Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-30", - "worker_id": 4 -} -[2026-02-05T05:26:54.937Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-30", - "worker_id": 4 -} -[2026-02-05T05:26:54.937Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:26:54.942Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-30", - "worker_id": 3 -} -[2026-02-05T05:26:54.944Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-30", - "worker_id": 3 -} -[2026-02-05T05:26:54.944Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:26:54.948Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-30", - "worker_id": 2 -} -[2026-02-05T05:26:54.950Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-30", - "worker_id": 2 -} -[2026-02-05T05:26:54.950Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:26:54.955Z] [INFO] ℹ️ 근태 기록 저장 요청 - Context: { - "record_date": "2026-01-30", - "worker_id": 1 -} -[2026-02-05T05:26:54.957Z] [INFO] ℹ️ 근태 기록 저장 성공 - Context: { - "record_date": "2026-01-30", - "worker_id": 1 -} -[2026-02-05T05:26:54.957Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:26:55.723Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:27:12.235Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T05:27:14.826Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:27:21.701Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=100", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:27:21.709Z] [INFO] ℹ️ 기간별 근태 기록 조회 요청 - Context: { - "startDate": "2026-01-01", - "endDate": "2026-01-31", - "workerId": null -} -[2026-02-05T05:27:21.717Z] [INFO] ℹ️ 기간별 근태 기록 조회 성공 - Context: { - "startDate": "2026-01-01", - "endDate": "2026-01-31", - "count": 210 -} -[2026-02-05T05:27:21.722Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/records?start_date=2026-01-01&end_date=2026-01-31", - "statusCode": 200, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:27:25.724Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:27:42.347Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T05:27:44.917Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:27:57.085Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:27:57.088Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/patrol/item-types", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:27:57.090Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/patrol/today-status", - "statusCode": 200, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:27:57.134Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:27:57.959Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:27:59.269Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/patrol/sessions", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:27:59.284Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:27:59.291Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:27:59.304Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/patrol/checklist?category_id=1", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:28:02.367Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/patrol/workplaces/2/detail?date=2026-02-05", - "statusCode": 200, - "duration": "17ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:28:02.375Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/patrol/workplaces/2/zone-items", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:28:02.488Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:28:03.301Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:28:12.476Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T05:28:19.410Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:28:36.677Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:28:36.679Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/patrol/item-types", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:28:36.681Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/patrol/today-status", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:28:36.686Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "15ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:28:36.688Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:28:36.694Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:28:36.699Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/patrol/checklist?category_id=1", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:28:37.328Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:28:42.592Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T05:28:49.526Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:29:06.318Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:29:12.705Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T05:29:21.723Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:29:36.334Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:29:42.837Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T05:29:51.931Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:30:05.979Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2026-02-05T05:30:05.981Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-02-05T05:30:06.489Z] [INFO] ℹ️ Rate Limiting 설정 완료 -[2026-02-05T05:30:06.489Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-02-05T05:30:06.578Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-02-05T05:30:06.669Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2026-02-05T05:30:06.680Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-02-05T05:30:11.361Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T05:30:36.337Z] [INFO] ℹ️ MariaDB 연결 성공 - Context: { - "connection": "db:3306", - "database": "hyungi", - "connectionLimit": 10 -} -[2026-02-05T05:30:36.342Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "32ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:30:41.453Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T05:30:49.385Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:31:06.314Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:31:11.532Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T05:31:36.324Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:31:39.971Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:31:41.624Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T05:32:06.321Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:32:11.711Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T05:32:36.321Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:32:41.806Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T05:33:06.319Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:33:11.889Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T05:33:19.966Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:33:36.330Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:33:41.975Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T05:34:06.338Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:34:12.098Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T05:34:36.330Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:34:42.194Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T05:34:56.237Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/patrol/workplaces/2/detail?date=2026-02-05", - "statusCode": 200, - "duration": "16ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:34:56.249Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/patrol/workplaces/2/zone-items", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:34:56.283Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260205", - "baseTime": "1400", - "nx": 57, - "ny": 119 -} -[2026-02-05T05:34:56.345Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:34:56.443Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 8.5, - "humidity": 71, - "windSpeed": 1.7, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-05T05:34:56.448Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 8.5, - "humidity": 71, - "windSpeed": 1.7, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-05T05:34:56.450Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "196ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:34:57.163Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:34:59.966Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:35:12.276Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T05:35:26.169Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:35:42.388Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T05:35:56.157Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:36:12.485Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T05:36:26.177Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:36:42.585Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T05:36:56.173Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "16ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:37:12.677Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T05:37:26.162Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:37:42.768Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T05:37:56.162Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:38:12.865Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T05:38:26.169Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:38:42.934Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T05:38:56.206Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "19ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:39:13.026Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T05:39:26.164Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:39:38.247Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2026-02-05T05:39:38.248Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-02-05T05:39:38.702Z] [INFO] ℹ️ Rate Limiting 설정 완료 -[2026-02-05T05:39:38.702Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-02-05T05:39:38.788Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-02-05T05:39:38.895Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2026-02-05T05:39:38.903Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-02-05T05:39:43.596Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T05:39:56.198Z] [INFO] ℹ️ MariaDB 연결 성공 - Context: { - "connection": "db:3306", - "database": "hyungi", - "connectionLimit": 10 -} -[2026-02-05T05:39:56.203Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "39ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:40:13.697Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T05:40:26.163Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:40:43.786Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T05:40:56.174Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:41:13.865Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T05:41:26.167Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:41:43.961Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T05:41:56.174Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:42:14.055Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T05:42:26.171Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:42:44.149Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T05:42:56.169Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:43:14.238Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T05:43:26.175Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:43:44.339Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T05:43:56.169Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:44:14.415Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T05:44:26.170Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:44:44.508Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T05:44:56.167Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:45:14.595Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T05:45:26.177Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:45:44.689Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T05:45:56.183Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:46:14.793Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T05:46:26.187Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:46:44.881Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T05:46:56.181Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:47:14.971Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T05:47:26.183Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:47:35.936Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=100", - "statusCode": 200, - "duration": "24ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:47:36.014Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260205", - "baseTime": "1400", - "nx": 57, - "ny": 119 -} -[2026-02-05T05:47:36.055Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:47:36.057Z] [INFO] ℹ️ 기간별 근태 기록 조회 요청 - Context: { - "startDate": "2026-02-01", - "endDate": "2026-02-28", - "workerId": null -} -[2026-02-05T05:47:36.060Z] [INFO] ℹ️ 기간별 근태 기록 조회 성공 - Context: { - "startDate": "2026-02-01", - "endDate": "2026-02-28", - "count": 20 -} -[2026-02-05T05:47:36.062Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/records?start_date=2026-02-01&end_date=2026-02-28", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:47:36.846Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:47:37.582Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 8.6, - "humidity": 71, - "windSpeed": 1.4, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-05T05:47:37.588Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 8.6, - "humidity": 71, - "windSpeed": 1.4, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-05T05:47:37.592Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "1650ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:47:40.914Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=100", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:47:40.927Z] [INFO] ℹ️ 기간별 근태 기록 조회 요청 - Context: { - "startDate": "2026-01-01", - "endDate": "2026-01-31", - "workerId": null -} -[2026-02-05T05:47:40.935Z] [INFO] ℹ️ 기간별 근태 기록 조회 성공 - Context: { - "startDate": "2026-01-01", - "endDate": "2026-01-31", - "count": 210 -} -[2026-02-05T05:47:40.939Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/records?start_date=2026-01-01&end_date=2026-01-31", - "statusCode": 200, - "duration": "15ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:47:45.061Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T05:48:05.841Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:48:15.150Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T05:48:35.837Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:48:39.607Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:48:45.278Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T05:48:48.472Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260205", - "baseTime": "1400", - "nx": 57, - "ny": 119 -} -[2026-02-05T05:48:48.480Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/patrol/item-types", - "statusCode": 304, - "duration": "22ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:48:48.490Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "29ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:48:48.492Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/patrol/today-status", - "statusCode": 304, - "duration": "29ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:48:48.496Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:48:48.709Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 8.6, - "humidity": 71, - "windSpeed": 1.4, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-05T05:48:48.716Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 8.6, - "humidity": 71, - "windSpeed": 1.4, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-05T05:48:48.721Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 304, - "duration": "251ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:48:49.308Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:48:50.814Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/patrol/sessions", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:48:50.832Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:48:50.846Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:48:50.859Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/patrol/checklist?category_id=1", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:48:56.593Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/api/vacation-requests?start_date=2026-01-01&end_date=2026-12-31&status=approved", - "method": "GET" -} -[2026-02-05T05:48:56.598Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/api/vacation-requests?start_date=2026-01-01&end_date=2026-12-31&status=approved", - "statusCode": 404, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:48:56.770Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:48:57.581Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:49:05.940Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:49:15.388Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T05:49:22.768Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/api/vacation-requests?start_date=2026-01-01&end_date=2026-12-31&status=approved", - "method": "GET" -} -[2026-02-05T05:49:22.771Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/api/vacation-requests?start_date=2026-01-01&end_date=2026-12-31&status=approved", - "statusCode": 404, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:49:24.227Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/api/vacation-requests?start_date=2026-01-01&end_date=2026-12-31&status=approved", - "method": "GET" -} -[2026-02-05T05:49:24.230Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/api/vacation-requests?start_date=2026-01-01&end_date=2026-12-31&status=approved", - "statusCode": 404, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:49:25.869Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/api/api/vacation-requests?start_date=2026-02-01&end_date=2026-02-28&status=approved", - "method": "GET" -} -[2026-02-05T05:49:25.871Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/api/vacation-requests?start_date=2026-02-01&end_date=2026-02-28&status=approved", - "statusCode": 404, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:49:26.574Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:49:36.029Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:49:45.485Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T05:49:56.586Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:50:06.132Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:50:15.576Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T05:50:26.579Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:50:36.234Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:50:45.678Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T05:50:56.588Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:51:15.787Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T05:51:26.585Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:51:45.869Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T05:51:56.584Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:52:15.970Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T05:52:16.976Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:52:26.583Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:52:37.376Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/patrol/item-types", - "statusCode": 304, - "duration": "20ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:52:37.377Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:52:37.379Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/patrol/today-status", - "statusCode": 304, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:52:37.479Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:52:38.277Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:52:39.251Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/patrol/sessions", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:52:39.261Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:52:39.269Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:52:39.276Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/patrol/checklist?category_id=1", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:52:41.511Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/patrol/workplaces/2/detail?date=2026-02-05", - "statusCode": 304, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:52:41.525Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/patrol/workplaces/2/zone-items", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:52:41.576Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:52:42.443Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:52:46.071Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T05:53:11.388Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:53:16.155Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T05:53:36.987Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:53:41.391Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:53:46.322Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T05:53:51.529Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2026-02-05T05:53:51.531Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-02-05T05:53:52.117Z] [INFO] ℹ️ Rate Limiting 설정 완료 -[2026-02-05T05:53:52.117Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-02-05T05:53:52.218Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-02-05T05:53:52.317Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2026-02-05T05:53:52.327Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-02-05T05:53:57.030Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "7ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T05:54:11.466Z] [INFO] ℹ️ MariaDB 연결 성공 - Context: { - "connection": "db:3306", - "database": "hyungi", - "connectionLimit": 10 -} -[2026-02-05T05:54:11.474Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "55ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:54:27.142Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T05:54:41.391Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:54:56.981Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:54:57.259Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T05:54:57.705Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=100", - "statusCode": 200, - "duration": "18ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:54:57.713Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/vacation-types", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:54:57.725Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/vacation-balances/year/2026", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:54:57.761Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260205", - "baseTime": "1400", - "nx": 57, - "ny": 119 -} -[2026-02-05T05:54:57.827Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:54:58.015Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 9.3, - "humidity": 68, - "windSpeed": 1.4, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-05T05:54:58.020Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 9.3, - "humidity": 68, - "windSpeed": 1.4, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-05T05:54:58.025Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "297ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:55:25.328Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2026-02-05T05:55:25.332Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-02-05T05:55:25.870Z] [INFO] ℹ️ Rate Limiting 설정 완료 -[2026-02-05T05:55:25.871Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-02-05T05:55:25.962Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-02-05T05:55:26.071Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2026-02-05T05:55:26.090Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-02-05T05:55:27.694Z] [INFO] ℹ️ MariaDB 연결 성공 - Context: { - "connection": "db:3306", - "database": "hyungi", - "connectionLimit": 10 -} -[2026-02-05T05:55:27.715Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "55ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:55:30.753Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T05:55:57.664Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "15ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:56:00.861Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T05:56:27.641Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:56:30.949Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T05:56:51.537Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:56:52.707Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=100", - "statusCode": 200, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:56:52.714Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/vacation-types", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:56:52.733Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/vacation-balances/year/2026", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:56:52.839Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:57:01.052Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T05:57:22.647Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:57:31.146Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T05:57:52.641Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:58:01.237Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T05:58:22.650Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:58:31.334Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T05:58:42.441Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:58:48.320Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260205", - "baseTime": "1400", - "nx": 57, - "ny": 119 -} -[2026-02-05T05:58:48.375Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=100", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:58:48.377Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:58:48.382Z] [INFO] ℹ️ 기간별 근태 기록 조회 요청 - Context: { - "startDate": "2026-02-01", - "endDate": "2026-02-28", - "workerId": null -} -[2026-02-05T05:58:48.386Z] [INFO] ℹ️ 기간별 근태 기록 조회 성공 - Context: { - "startDate": "2026-02-01", - "endDate": "2026-02-28", - "count": 20 -} -[2026-02-05T05:58:48.388Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/records?start_date=2026-02-01&end_date=2026-02-28", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:58:48.521Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 9.3, - "humidity": 68, - "windSpeed": 1.4, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-05T05:58:48.524Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 9.3, - "humidity": 68, - "windSpeed": 1.4, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-05T05:58:48.526Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "271ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:58:49.157Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:58:52.739Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:59:01.480Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T05:59:02.049Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=100", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:59:02.057Z] [INFO] ℹ️ 기간별 근태 기록 조회 요청 - Context: { - "startDate": "2026-01-01", - "endDate": "2026-01-31", - "workerId": null -} -[2026-02-05T05:59:02.064Z] [INFO] ℹ️ 기간별 근태 기록 조회 성공 - Context: { - "startDate": "2026-01-01", - "endDate": "2026-01-31", - "count": 210 -} -[2026-02-05T05:59:02.067Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/records?start_date=2026-01-01&end_date=2026-01-31", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:59:18.141Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:59:29.138Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "27ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:59:29.145Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/patrol/item-types", - "statusCode": 200, - "duration": "17ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:59:29.153Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/patrol/today-status", - "statusCode": 200, - "duration": "37ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:59:29.183Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:59:29.983Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:59:31.193Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/patrol/sessions", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:59:31.203Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:59:31.215Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:59:31.233Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/patrol/checklist?category_id=1", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:59:31.640Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T05:59:35.513Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/patrol/workplaces/2/detail?date=2026-02-05", - "statusCode": 200, - "duration": "22ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:59:35.527Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/patrol/workplaces/2/zone-items", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:59:35.607Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T05:59:36.419Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:00:01.822Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "15ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T06:00:05.431Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:00:31.930Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T06:00:35.422Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:01:02.020Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T06:01:05.426Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:01:32.114Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T06:01:35.423Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:02:02.201Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T06:02:05.421Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:02:32.300Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T06:02:35.429Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:03:02.425Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T06:03:05.420Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:03:32.514Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T06:03:35.424Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:04:02.616Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T06:04:05.426Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:04:32.714Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T06:04:35.421Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:05:02.812Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T06:05:24.473Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "176ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:05:32.939Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T06:05:42.403Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:05:54.277Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:06:03.043Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T06:06:15.447Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260205", - "baseTime": "1400", - "nx": 57, - "ny": 119 -} -[2026-02-05T06:06:15.460Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=100", - "statusCode": 200, - "duration": "22ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:06:15.469Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/vacation-balances/year/2026", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:06:15.514Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:06:15.678Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 9.3, - "humidity": 68, - "windSpeed": 1.4, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-05T06:06:15.682Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 9.3, - "humidity": 68, - "windSpeed": 1.4, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-05T06:06:15.687Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "243ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:06:33.144Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T06:06:45.334Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:07:03.249Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T06:07:15.330Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:07:33.337Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T06:07:33.463Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:07:35.988Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=100", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:07:36.022Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/vacation-balances/year/2026", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:07:36.127Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:08:03.443Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T06:08:05.934Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:08:33.546Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T06:08:35.949Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:09:03.636Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T06:09:05.942Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:09:33.743Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T06:09:35.953Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "16ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:10:03.838Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T06:10:05.945Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:10:33.926Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T06:10:35.945Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:11:04.045Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T06:11:05.948Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:11:34.152Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T06:11:35.942Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:12:04.266Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T06:12:05.950Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:12:34.364Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T06:12:35.939Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:12:39.898Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/vacation-types", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:12:39.915Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "POST", - "url": "/api/vacation-types", - "statusCode": 400, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:12:39.926Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "POST", - "url": "/api/vacation-types", - "statusCode": 400, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:12:39.934Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/vacation-types", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:12:39.941Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "POST", - "url": "/api/vacation-types", - "statusCode": 400, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:12:39.960Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/vacation-balances/bulk-upsert", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:12:50.806Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=100", - "statusCode": 200, - "duration": "27ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:12:50.813Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/vacation-balances/year/2026", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:13:04.483Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T06:13:16.767Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:13:18.669Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:13:22.001Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:13:22.003Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260205", - "baseTime": "1500", - "nx": 57, - "ny": 119 -} -[2026-02-05T06:13:22.008Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/patrol/today-status", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:13:22.010Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/patrol/item-types", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:13:22.038Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:13:22.133Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 8.9, - "humidity": 68, - "windSpeed": 1.5, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-05T06:13:22.134Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 8.9, - "humidity": 68, - "windSpeed": 1.5, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-05T06:13:22.135Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "133ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:13:22.879Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:13:23.870Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/patrol/sessions", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:13:23.881Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:13:23.888Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:13:23.895Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/patrol/checklist?category_id=1", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:13:25.905Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/patrol/workplaces/2/detail?date=2026-02-05", - "statusCode": 200, - "duration": "15ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:13:25.912Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/patrol/workplaces/2/zone-items", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:13:25.963Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:13:26.843Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:13:31.580Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000&department_id=1", - "statusCode": 200, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:13:31.616Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects?is_active=1", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:13:31.624Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/safety-checks", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:13:31.631Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:13:31.638Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks/active/list", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:13:31.644Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?is_active=true", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:13:31.648Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/active/list", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:13:31.654Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-05", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:13:31.668Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:13:34.562Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T06:13:37.849Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:13:37.865Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:13:54.225Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/active/list", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:13:54.283Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 304, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:13:54.285Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-05", - "statusCode": 304, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:13:54.287Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:13:54.299Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:13:54.402Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:14:01.520Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:14:01.632Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues?category_type=nonconformity", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:14:01.635Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?status=active", - "statusCode": 200, - "duration": "17ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:14:04.034Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues/7", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:14:04.664Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T06:14:10.704Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/types", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:14:10.709Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments", - "statusCode": 200, - "duration": "17ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:14:10.712Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces", - "statusCode": 200, - "duration": "18ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:14:10.820Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:14:11.632Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:14:15.773Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:14:15.805Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:14:15.814Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:14:15.824Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-05", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:14:15.831Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:14:15.839Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/moved/list", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:14:15.931Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:14:16.609Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments?workplace_id=2", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:14:16.673Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/equipments?workplace_id=2", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:14:16.761Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:14:34.768Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T06:14:45.739Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:15:01.886Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:15:04.922Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T06:15:31.907Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "35ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:15:35.028Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T06:16:01.873Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:16:03.628Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/vacation-types", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:16:03.641Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "POST", - "url": "/api/vacation-types", - "statusCode": 400, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:16:03.653Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "POST", - "url": "/api/vacation-types", - "statusCode": 400, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:16:03.663Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/vacation-types", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:16:03.669Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "POST", - "url": "/api/vacation-types", - "statusCode": 400, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:16:03.689Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/vacation-balances/bulk-upsert", - "statusCode": 200, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:16:05.124Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T06:16:05.267Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=100", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:16:05.278Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/vacation-balances/year/2026", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:16:10.430Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:16:13.614Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=100", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:16:13.625Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/vacation-balances/year/2026", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:16:13.654Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260205", - "baseTime": "1500", - "nx": 57, - "ny": 119 -} -[2026-02-05T06:16:13.725Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 9.4, - "humidity": 68, - "windSpeed": 1.1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-05T06:16:13.728Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 9.4, - "humidity": 68, - "windSpeed": 1.1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-05T06:16:13.730Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "78ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:16:13.748Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:16:35.253Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T06:16:43.569Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:17:05.340Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T06:17:09.462Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/vacation-types", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:17:09.482Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/vacation-types", - "statusCode": 201, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:17:09.494Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/vacation-types", - "statusCode": 201, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:17:09.522Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/vacation-balances/bulk-upsert", - "statusCode": 200, - "duration": "18ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:17:11.570Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=100", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:17:11.584Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/vacation-balances/year/2026", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:17:15.584Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:17:35.453Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T06:17:45.607Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:17:48.539Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=100", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:17:48.559Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:17:48.567Z] [INFO] ℹ️ 기간별 근태 기록 조회 요청 - Context: { - "startDate": "2026-02-01", - "endDate": "2026-02-28", - "workerId": null -} -[2026-02-05T06:17:48.571Z] [INFO] ℹ️ 기간별 근태 기록 조회 성공 - Context: { - "startDate": "2026-02-01", - "endDate": "2026-02-28", - "count": 20 -} -[2026-02-05T06:17:48.573Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/records?start_date=2026-02-01&end_date=2026-02-28", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:17:49.404Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:17:55.986Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=100", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:17:55.995Z] [INFO] ℹ️ 기간별 근태 기록 조회 요청 - Context: { - "startDate": "2026-01-01", - "endDate": "2026-01-31", - "workerId": null -} -[2026-02-05T06:17:56.001Z] [INFO] ℹ️ 기간별 근태 기록 조회 성공 - Context: { - "startDate": "2026-01-01", - "endDate": "2026-01-31", - "count": 210 -} -[2026-02-05T06:17:56.006Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/records?start_date=2026-01-01&end_date=2026-01-31", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:18:05.560Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T06:18:17.519Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:18:18.354Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:18:23.163Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260205", - "baseTime": "1500", - "nx": 57, - "ny": 119 -} -[2026-02-05T06:18:23.174Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:18:23.176Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/patrol/today-status", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:18:23.177Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/patrol/item-types", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:18:23.186Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:18:23.192Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:18:23.198Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/patrol/checklist?category_id=1", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:18:23.208Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:18:23.391Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 9.4, - "humidity": 68, - "windSpeed": 1.1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-05T06:18:23.394Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 9.4, - "humidity": 68, - "windSpeed": 1.1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-05T06:18:23.398Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "238ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:18:24.069Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:18:25.612Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/patrol/workplaces/2/detail?date=2026-02-05", - "statusCode": 200, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:18:25.622Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/patrol/workplaces/2/zone-items", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:18:25.683Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:18:26.549Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:18:35.660Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T06:18:55.514Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:19:05.773Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T06:19:28.464Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:19:35.904Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T06:19:58.460Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:20:06.008Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T06:20:28.458Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:20:36.111Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T06:20:58.463Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:21:06.211Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T06:21:28.469Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:21:36.305Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T06:21:42.019Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:21:43.997Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/patrol/workplaces/2/detail?date=2026-02-05", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:21:44.017Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/patrol/workplaces/2/zone-items", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:21:44.128Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:21:44.939Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:22:06.421Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T06:22:13.952Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "15ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:22:36.510Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T06:22:43.944Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:23:06.595Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T06:23:13.936Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:23:36.697Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T06:23:43.938Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:24:06.796Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T06:24:13.942Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:24:36.909Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T06:24:43.939Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:25:07.004Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T06:25:13.951Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:25:37.102Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T06:25:43.938Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:26:07.185Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T06:26:13.939Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:26:37.281Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T06:26:43.946Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:27:07.354Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T06:27:13.951Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:27:37.472Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T06:27:43.947Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:28:02.612Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "17ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:28:04.237Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/patrol/workplaces/2/detail?date=2026-02-05", - "statusCode": 200, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:28:04.248Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/patrol/workplaces/2/zone-items", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:28:04.255Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260205", - "baseTime": "1500", - "nx": 57, - "ny": 119 -} -[2026-02-05T06:28:04.359Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:28:05.176Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:28:05.379Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 9, - "humidity": 69, - "windSpeed": 1.5, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-05T06:28:05.383Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 9, - "humidity": 69, - "windSpeed": 1.5, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-05T06:28:05.386Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "1131ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:28:07.625Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T06:28:14.560Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects?status=in_progress&limit=100", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:28:34.180Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:28:36.055Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/patrol/workplaces/2/zone-items", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:28:36.063Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/patrol/workplaces/2/zone-items", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:28:37.761Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T06:29:05.832Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:29:07.892Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T06:29:35.824Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:29:37.996Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T06:30:05.835Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:30:08.106Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T06:30:35.825Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:30:38.217Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T06:31:05.826Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:31:08.314Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T06:31:35.819Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:31:38.405Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T06:32:05.833Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:32:08.521Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T06:32:35.830Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:32:38.623Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T06:33:05.827Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:33:08.715Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T06:33:35.824Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:33:38.796Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T06:34:05.834Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:34:08.906Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T06:34:35.829Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:34:38.985Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T06:35:05.841Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:35:09.100Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T06:35:35.826Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:35:39.187Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T06:36:05.834Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:36:09.264Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T06:36:35.842Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:36:39.391Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T06:37:05.837Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:37:09.496Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T06:37:35.833Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:37:39.607Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T06:38:05.838Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:38:09.685Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T06:38:35.848Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:38:39.765Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T06:39:05.844Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:39:09.844Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T06:39:22.446Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "25ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:39:23.922Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/patrol/workplaces/2/detail?date=2026-02-05", - "statusCode": 200, - "duration": "17ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:39:23.937Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/patrol/workplaces/2/zone-items", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:39:23.941Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260205", - "baseTime": "1500", - "nx": 57, - "ny": 119 -} -[2026-02-05T06:39:24.038Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:39:24.060Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 8.2, - "humidity": 75, - "windSpeed": 1.6, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-05T06:39:24.061Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 8.2, - "humidity": 75, - "windSpeed": 1.6, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-05T06:39:24.062Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "122ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:39:24.854Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:39:32.735Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:39:32.793Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:39:32.802Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:39:32.816Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-05", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:39:32.826Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:39:32.840Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:39:32.843Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/moved/list", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:39:33.672Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:39:35.486Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments?workplace_id=2", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:39:35.548Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/equipments?workplace_id=2", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:39:39.933Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T06:40:02.902Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=100", - "statusCode": 200, - "duration": "29ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:40:02.916Z] [INFO] ℹ️ 기간별 근태 기록 조회 요청 - Context: { - "startDate": "2026-02-01", - "endDate": "2026-02-28", - "workerId": null -} -[2026-02-05T06:40:02.919Z] [INFO] ℹ️ 기간별 근태 기록 조회 성공 - Context: { - "startDate": "2026-02-01", - "endDate": "2026-02-28", - "count": 20 -} -[2026-02-05T06:40:02.922Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/records?start_date=2026-02-01&end_date=2026-02-28", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:40:02.928Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:40:03.750Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:40:10.067Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T06:40:32.745Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:40:40.163Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T06:41:02.747Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:41:10.269Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T06:41:32.751Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:41:40.376Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T06:42:02.747Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:42:10.614Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T06:42:32.772Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:42:40.773Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T06:43:02.750Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:43:10.867Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T06:43:32.755Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:43:40.965Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T06:44:03.415Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:44:11.060Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T06:44:34.402Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:44:41.160Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T06:45:04.406Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:45:11.283Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T06:45:11.976Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:45:14.240Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260205", - "baseTime": "1500", - "nx": 57, - "ny": 119 -} -[2026-02-05T06:45:14.275Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=100", - "statusCode": 200, - "duration": "77ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:45:14.290Z] [INFO] ℹ️ 기간별 근태 기록 조회 요청 - Context: { - "startDate": "2026-02-01", - "endDate": "2026-02-28", - "workerId": null -} -[2026-02-05T06:45:14.296Z] [INFO] ℹ️ 기간별 근태 기록 조회 성공 - Context: { - "startDate": "2026-02-01", - "endDate": "2026-02-28", - "count": 20 -} -[2026-02-05T06:45:14.301Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:45:14.304Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/records?start_date=2026-02-01&end_date=2026-02-28", - "statusCode": 200, - "duration": "17ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:45:14.535Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 7.4, - "humidity": 78, - "windSpeed": 1.6, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-05T06:45:14.542Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 7.4, - "humidity": 78, - "windSpeed": 1.6, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-05T06:45:14.545Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "315ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:45:15.093Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:45:41.440Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T06:45:44.103Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "20ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:45:58.249Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:45:59.423Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=100", - "statusCode": 200, - "duration": "16ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:45:59.440Z] [INFO] ℹ️ 기간별 근태 기록 조회 요청 - Context: { - "startDate": "2026-02-01", - "endDate": "2026-02-28", - "workerId": null -} -[2026-02-05T06:45:59.455Z] [INFO] ℹ️ 기간별 근태 기록 조회 성공 - Context: { - "startDate": "2026-02-01", - "endDate": "2026-02-28", - "count": 20 -} -[2026-02-05T06:45:59.458Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/records?start_date=2026-02-01&end_date=2026-02-28", - "statusCode": 200, - "duration": "25ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:45:59.499Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:46:00.331Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:46:11.573Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T06:46:29.350Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "27ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:46:41.793Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T06:46:59.314Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:47:11.892Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T06:47:25.940Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000&department_id=1", - "statusCode": 200, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:47:25.998Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:47:26.003Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects?is_active=1", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:47:26.013Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/safety-checks", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:47:26.020Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:47:26.028Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks/active/list", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:47:26.033Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?is_active=true", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:47:26.038Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories/active/list", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:47:26.044Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-05", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:47:42.026Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T06:47:53.556Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=2", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:47:55.699Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:48:12.113Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T06:48:13.042Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:48:13.048Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:48:13.049Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:48:13.075Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/10", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:48:13.078Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/9", - "statusCode": 200, - "duration": "15ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:48:13.082Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/workplace/2", - "statusCode": 200, - "duration": "21ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:48:13.095Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/3", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:48:13.099Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/1", - "statusCode": 200, - "duration": "35ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:48:13.101Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/11", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:48:13.107Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/7", - "statusCode": 200, - "duration": "40ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:48:13.110Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/4", - "statusCode": 200, - "duration": "39ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:48:13.112Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/8", - "statusCode": 200, - "duration": "15ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:48:13.115Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/12", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:48:13.117Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/6", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:48:13.118Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/5", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:48:13.123Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:48:13.145Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/equipments/workplace/2", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:48:37.643Z] [INFO] ℹ️ 작업장 생성 요청 - Context: { - "name": "테스트 구역" -} -[2026-02-05T06:48:37.648Z] [INFO] ℹ️ 작업장 생성 성공 - Context: { - "workplace_id": 13 -} -[2026-02-05T06:48:37.649Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/workplaces", - "statusCode": 201, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:48:37.657Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:48:37.660Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:48:37.667Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/10", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:48:37.670Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/equipments/workplace/2", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:48:37.693Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/7", - "statusCode": 304, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:48:37.695Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/4", - "statusCode": 304, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:48:37.697Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/9", - "statusCode": 304, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:48:37.700Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/11", - "statusCode": 304, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:48:37.701Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/8", - "statusCode": 304, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:48:37.703Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/1", - "statusCode": 304, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:48:37.716Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/6", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:48:37.718Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/12", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:48:37.719Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/3", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:48:37.720Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/5", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:48:37.724Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/equipments", - "statusCode": 304, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:48:37.726Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/equipments/workplace/2", - "statusCode": 304, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:48:42.253Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T06:48:42.852Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:49:12.346Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T06:49:12.863Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:49:42.450Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T06:49:42.865Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:50:12.545Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T06:50:12.866Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:50:42.659Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T06:50:42.876Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:51:12.817Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T06:51:12.898Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "22ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:51:42.874Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:51:42.922Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T06:52:12.881Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:52:13.017Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T06:52:42.881Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:52:43.124Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T06:53:07.395Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:53:09.090Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260205", - "baseTime": "1500", - "nx": 57, - "ny": 119 -} -[2026-02-05T06:53:09.212Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:53:09.227Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:53:09.232Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:53:09.249Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": 7.4, - "humidity": 78, - "windSpeed": 1.6, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-05T06:53:09.268Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": 7.4, - "humidity": 78, - "windSpeed": 1.6, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-05T06:53:09.270Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/10", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:53:09.271Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/8", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:53:09.275Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/7", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:53:09.278Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "192ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:53:09.280Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/4", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:53:09.282Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/workplace/2", - "statusCode": 200, - "duration": "19ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:53:09.285Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/1", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:53:09.287Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/9", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:53:09.290Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/11", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:53:09.302Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/12", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:53:09.305Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/6", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:53:09.306Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/5", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:53:09.311Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces/map-regions/workplace/3", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:53:09.314Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:53:09.340Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/equipments/workplace/2", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:53:13.259Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T06:53:39.031Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "21ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:53:43.412Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T06:53:46.656Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=100", - "statusCode": 200, - "duration": "16ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:53:46.726Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:53:49.213Z] [INFO] ℹ️ 기간별 근태 기록 조회 요청 - Context: { - "startDate": "2026-02-01", - "endDate": "2026-02-28", - "workerId": "1" -} -[2026-02-05T06:53:49.217Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/vacation-balances/worker/1/year/2026", - "statusCode": 200, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:53:49.219Z] [INFO] ℹ️ 기간별 근태 기록 조회 성공 - Context: { - "startDate": "2026-02-01", - "endDate": "2026-02-28", - "count": 2 -} -[2026-02-05T06:53:49.221Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/records?start_date=2026-02-01&end_date=2026-02-28&worker_id=1", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:53:54.546Z] [INFO] ℹ️ 기간별 근태 기록 조회 요청 - Context: { - "startDate": "2026-01-01", - "endDate": "2026-01-31", - "workerId": "1" -} -[2026-02-05T06:53:54.548Z] [INFO] ℹ️ 기간별 근태 기록 조회 성공 - Context: { - "startDate": "2026-01-01", - "endDate": "2026-01-31", - "count": 21 -} -[2026-02-05T06:53:54.550Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/attendance/records?start_date=2026-01-01&end_date=2026-01-31&worker_id=1", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T06:54:13.559Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T06:54:43.644Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T06:55:30.053Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T07:01:53.108Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T07:02:42.899Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T07:03:27.986Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T07:04:05.737Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T07:06:00.108Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T07:06:52.290Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T07:07:51.411Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T07:09:20.250Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T07:10:01.250Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T07:11:17.704Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T07:13:31.716Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T07:14:51.749Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T07:29:46.452Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T07:36:17.442Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T08:11:57.495Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T08:30:42.789Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T09:07:07.572Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T09:18:47.097Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T09:19:17.201Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T09:19:47.297Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T09:20:17.392Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T09:20:47.483Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T09:21:17.576Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T09:21:47.674Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T09:22:17.822Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T09:22:47.930Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T09:23:18.024Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T09:23:48.090Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T09:24:18.171Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T09:24:48.266Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T09:25:18.352Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T09:25:48.442Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T09:26:18.534Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T09:26:48.661Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T09:27:18.753Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T09:27:48.846Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T09:28:18.954Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T09:28:49.030Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T09:29:19.105Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T09:29:49.166Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T09:30:19.217Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T09:30:49.341Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T09:31:19.423Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T09:31:49.502Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T09:32:19.574Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T09:32:49.698Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T09:33:19.816Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T09:33:49.902Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T09:34:19.992Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T09:34:50.094Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T09:35:20.206Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T09:35:50.344Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T09:36:20.442Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T09:36:50.533Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T09:37:20.621Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T09:37:50.729Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T09:38:20.834Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T09:38:50.923Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T09:39:21.031Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T09:39:51.125Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T09:40:21.202Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T09:40:51.301Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T09:41:21.395Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T09:41:51.512Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T09:42:21.611Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T09:42:51.707Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T09:43:21.796Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T09:43:51.887Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T09:44:21.989Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T09:44:52.080Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T09:45:22.171Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T09:45:52.271Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T09:46:22.362Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T09:46:52.451Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T09:47:22.544Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T09:47:52.635Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T09:48:22.721Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T09:48:52.810Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T09:49:22.915Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T09:49:53.038Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T09:50:23.115Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T09:50:53.217Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T09:51:23.304Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T09:51:53.400Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T09:52:23.473Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T09:52:53.562Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T09:53:23.651Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T09:53:53.741Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T09:54:23.835Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T09:54:53.915Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T09:55:24.009Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T09:55:54.083Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T09:56:24.192Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T09:56:54.291Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T09:57:24.393Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T09:57:54.497Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T09:58:24.586Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T09:58:54.672Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T09:59:24.754Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T09:59:54.849Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T10:00:24.935Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T10:00:55.026Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T10:01:25.109Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T10:01:55.198Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T10:02:25.294Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T10:02:55.390Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T10:03:25.476Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T10:03:55.572Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T10:04:25.659Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T10:04:55.778Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T10:05:25.879Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T10:05:55.975Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T10:06:26.059Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T10:06:56.155Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T10:07:26.248Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T10:07:56.335Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T10:08:26.429Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T10:08:56.541Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T10:09:26.631Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T10:09:56.727Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T10:10:26.817Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T10:10:56.905Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T10:11:26.997Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T10:11:57.084Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T10:12:27.197Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T10:12:57.295Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T10:13:27.388Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T10:13:57.482Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T10:14:27.577Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T10:14:57.669Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T10:15:27.759Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T10:15:57.846Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T10:16:27.930Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T10:16:58.021Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T10:17:28.115Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T10:17:58.211Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T10:18:28.299Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T10:18:58.395Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T10:19:28.529Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T10:19:58.627Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T10:20:28.725Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T10:20:58.801Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T10:21:28.883Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T10:21:58.980Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T10:22:29.081Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T10:22:59.182Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T10:23:29.276Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T10:23:59.380Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T10:24:29.475Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T10:24:59.572Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T10:25:29.677Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T10:25:59.772Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T10:26:29.869Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T10:26:59.968Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T10:27:30.065Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T10:28:00.164Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T10:28:30.277Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T10:29:00.364Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T10:29:30.466Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T10:30:00.547Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T10:30:30.640Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T10:31:00.724Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T10:31:30.821Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T10:32:00.922Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T10:32:31.024Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T10:33:01.120Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T10:33:31.213Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T10:34:01.314Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T10:34:31.404Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T10:35:01.506Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T10:35:31.608Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T10:36:01.708Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T10:36:31.804Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T10:37:01.890Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T10:37:31.985Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T10:38:02.070Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T10:38:32.160Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T10:39:02.252Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T10:39:32.360Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T10:40:02.452Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T10:40:32.547Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T10:41:02.650Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T10:41:32.746Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T10:42:02.852Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T10:42:32.938Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T10:43:03.030Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T10:43:33.123Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T10:44:03.212Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T10:44:33.309Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T10:45:03.403Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T10:45:33.497Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T10:46:03.602Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T10:46:33.695Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T10:47:03.783Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T10:47:33.875Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T10:48:03.969Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T10:48:34.057Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T10:49:04.154Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T10:49:34.242Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T10:50:04.337Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T10:50:34.427Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T10:51:04.516Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T10:51:34.616Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T10:52:04.704Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T10:52:34.797Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T10:53:04.887Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T10:53:34.989Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T10:54:05.081Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T10:54:35.176Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T10:55:05.267Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T10:55:35.359Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T10:56:05.444Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T10:56:35.532Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T10:57:05.627Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T10:57:35.721Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T10:58:05.832Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T10:58:35.924Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T10:59:06.010Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T10:59:36.100Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T11:00:06.190Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T11:00:36.287Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T11:01:06.389Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T11:01:36.479Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T11:02:06.577Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T11:02:36.673Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T11:03:06.770Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T11:03:36.872Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T11:04:06.973Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T11:04:37.061Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T11:05:07.155Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T11:05:37.248Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T11:06:07.353Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T11:06:37.438Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T11:07:07.525Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T11:07:37.606Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T11:08:07.696Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T11:08:37.785Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T11:09:07.882Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T11:09:37.950Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T11:10:08.045Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T11:10:38.136Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T11:11:08.236Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T11:11:38.333Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T11:12:08.424Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T11:12:38.522Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T11:13:08.618Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T11:13:38.714Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T11:14:08.797Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T11:14:38.886Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T11:15:08.985Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T11:15:39.084Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T11:16:09.170Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T11:16:39.266Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T11:17:09.362Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T11:17:39.454Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T11:18:09.546Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T11:18:39.627Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T11:19:09.716Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T11:19:39.803Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T11:20:09.902Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T11:20:39.988Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T11:21:10.096Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T11:21:40.186Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T11:22:10.273Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T11:22:40.356Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T11:23:10.449Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T11:23:40.541Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T11:24:10.626Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T11:24:40.710Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T11:25:10.793Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T11:25:40.883Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T11:26:10.965Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T11:26:41.060Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T11:27:11.152Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T11:27:41.256Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T11:28:11.351Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T11:28:41.441Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T11:29:11.530Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T11:29:41.618Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T11:30:11.707Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T11:30:41.802Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T11:31:11.898Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T11:31:41.988Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T11:32:12.080Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T11:32:42.173Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T11:33:12.271Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T11:33:42.351Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T11:34:12.442Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T11:34:42.527Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T11:35:12.621Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T11:35:42.708Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T11:36:12.759Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T11:36:42.850Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T11:37:12.928Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T11:37:43.012Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T11:38:13.110Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T11:38:43.214Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T11:39:13.319Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T11:39:43.405Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T11:40:13.493Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T11:40:43.593Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T11:41:13.692Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T11:41:43.788Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T11:42:13.893Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T11:42:43.980Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T11:43:14.076Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T11:43:44.169Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T11:44:14.260Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T11:44:44.358Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T11:45:14.460Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T11:45:44.563Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T11:46:14.651Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T11:46:44.739Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T11:47:14.830Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T11:47:44.925Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T11:48:15.024Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T11:48:45.110Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T11:49:15.206Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T11:49:45.291Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T11:50:15.378Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T11:50:45.464Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T11:51:15.545Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T11:51:45.638Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T11:52:15.727Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T11:52:45.817Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T11:53:15.925Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T11:53:46.016Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T11:54:16.112Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T11:54:46.206Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T11:55:16.309Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T11:55:46.397Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T11:56:16.490Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T11:56:46.581Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T11:57:16.674Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T11:57:46.765Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T11:58:16.864Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T11:58:46.962Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T11:59:17.061Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T11:59:47.155Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T12:00:17.251Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T12:00:47.339Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T12:01:17.423Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T12:01:47.511Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T12:02:17.613Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T12:02:47.704Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T12:03:17.803Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T12:03:47.903Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T12:04:17.987Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T12:04:48.070Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T12:05:18.153Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T12:05:48.249Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T12:06:18.331Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T12:06:48.424Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T12:07:18.515Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T12:07:48.603Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T12:08:18.701Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T12:08:48.798Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T12:09:18.903Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T12:09:49.005Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T12:10:19.092Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T12:10:49.183Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T12:11:19.273Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T12:11:49.363Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T12:12:19.455Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T12:12:49.545Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T12:13:19.632Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T12:13:49.715Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T12:14:19.806Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T12:14:49.900Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T12:15:19.989Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T12:15:50.075Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T12:16:20.184Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T12:16:50.280Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T12:17:20.375Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T12:17:50.467Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T12:18:20.564Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T12:18:50.663Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T12:19:20.752Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T12:19:50.847Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T12:20:20.948Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T12:20:51.031Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T12:21:21.128Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T12:21:51.215Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T12:22:21.297Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T12:22:51.388Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T12:23:21.479Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T12:23:51.574Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T12:24:21.693Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T12:24:51.790Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T12:25:21.887Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T12:25:51.974Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T12:26:22.057Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T12:26:52.154Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T12:27:22.248Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T12:27:52.347Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T12:28:22.444Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T12:28:52.539Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T12:29:22.638Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T12:29:52.718Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T12:30:22.806Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T12:30:52.902Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T12:31:23.001Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T12:31:53.082Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T12:32:23.161Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T12:32:53.258Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T12:33:23.345Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T12:33:53.428Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T12:34:23.527Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T12:34:53.615Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T12:35:23.710Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T12:35:53.795Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T12:36:23.892Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T12:36:53.990Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T12:37:24.083Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T12:37:54.184Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T12:38:24.275Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T12:38:54.363Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T12:39:24.454Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T12:39:54.547Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T12:40:24.640Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T12:40:54.731Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T12:41:24.839Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T12:41:54.925Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T12:42:25.008Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T12:42:55.098Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T12:43:25.193Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T12:43:55.287Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T12:44:25.389Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T12:44:55.486Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T12:45:25.571Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T12:45:55.651Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T12:46:25.741Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T12:46:55.841Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T12:47:25.939Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T12:47:56.031Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T12:48:26.133Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T12:48:56.214Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T12:49:26.300Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T12:49:56.425Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T12:50:26.530Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T12:50:56.626Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T12:51:26.712Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T12:51:56.799Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T12:52:26.891Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T12:52:56.985Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T12:53:27.065Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T12:53:57.154Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T12:54:27.248Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T12:54:57.384Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T12:55:27.486Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T12:55:57.579Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T12:56:27.672Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T12:56:57.761Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T12:57:27.849Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T12:57:57.943Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T12:58:28.012Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T12:58:58.099Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T12:59:28.179Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T12:59:58.277Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T13:00:28.374Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T13:00:58.462Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T13:01:28.539Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T13:01:58.634Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T13:02:28.690Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T13:02:58.788Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T13:03:28.856Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T13:03:58.954Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T13:04:29.031Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T13:04:59.134Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T13:05:29.221Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T13:05:59.318Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T13:06:29.411Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T13:06:59.498Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T13:07:29.583Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T13:07:59.681Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T13:08:29.775Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T13:08:59.881Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T13:09:29.970Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T13:10:00.052Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T13:10:30.138Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T13:11:00.232Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T13:11:30.325Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T13:12:00.416Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T13:12:30.509Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T13:13:00.599Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T13:13:30.685Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T13:14:00.781Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T13:14:30.876Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T13:15:00.964Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T13:15:31.062Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T13:16:01.149Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T13:16:31.241Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T13:17:01.349Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T13:17:31.455Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T13:18:01.555Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T13:18:31.641Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T13:19:01.735Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T13:19:31.817Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T13:20:01.909Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T13:20:31.990Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T13:21:02.072Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T13:21:32.169Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T13:22:02.266Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T13:22:32.349Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T13:23:02.426Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T13:23:32.527Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T13:24:02.620Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T13:24:32.725Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T13:25:02.820Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T13:25:32.927Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T13:26:03.022Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T13:26:33.118Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T13:27:03.206Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T13:27:33.298Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T13:28:03.396Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T13:28:33.481Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T13:29:03.570Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T13:29:33.668Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T13:30:03.768Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T13:30:33.872Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T13:31:03.960Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T13:31:34.044Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T13:32:04.142Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T13:32:34.235Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T13:33:04.321Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T13:33:34.408Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T13:34:04.495Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T13:34:34.603Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T13:35:04.691Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T13:35:34.794Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T13:36:04.881Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T13:36:34.989Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T13:37:05.088Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T13:37:35.190Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T13:38:05.285Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T13:38:35.360Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T13:39:05.451Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T13:39:35.549Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T13:40:05.645Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T13:40:35.750Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T13:41:05.834Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T13:41:35.931Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T13:42:06.018Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T13:42:36.104Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T13:43:06.194Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T13:43:36.304Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T13:44:06.388Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T13:44:36.491Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T13:45:06.579Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T13:45:36.669Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T13:46:06.780Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T13:46:36.876Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T13:47:06.973Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T13:47:37.075Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T13:48:07.171Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T13:48:37.269Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T13:49:07.352Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T13:49:37.442Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T13:50:07.542Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T13:50:37.632Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T13:51:07.733Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T13:51:37.831Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T13:52:07.926Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T13:52:38.016Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T13:53:08.108Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T13:53:38.204Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T13:54:08.302Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T13:54:38.399Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T13:55:08.490Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T13:55:38.586Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T13:56:08.679Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T13:56:38.774Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T13:57:08.858Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T13:57:38.955Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T13:58:09.044Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T13:58:39.127Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T13:59:09.225Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T13:59:39.318Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T14:00:09.408Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T14:00:39.496Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T14:01:09.578Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T14:01:39.677Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T14:02:09.767Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T14:02:39.864Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T14:03:09.966Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T14:03:40.064Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T14:04:10.159Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T14:04:40.260Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T14:05:10.349Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T14:05:40.429Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T14:06:10.524Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T14:06:40.625Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T14:07:10.718Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T14:07:40.819Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T14:08:10.901Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T14:08:40.988Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T14:09:11.092Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T14:09:41.186Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T14:10:11.291Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T14:10:41.395Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T14:11:11.480Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T14:11:41.575Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T14:12:11.664Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T14:12:41.757Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T14:13:11.850Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T14:13:41.948Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T14:14:12.039Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T14:14:42.128Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T14:15:12.231Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T14:15:42.320Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T14:16:12.420Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T14:16:42.496Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T14:17:12.583Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T14:17:42.674Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T14:18:12.769Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T14:18:42.875Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T14:19:12.974Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T14:19:43.059Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T14:20:13.162Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T14:20:43.263Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T14:21:13.344Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T14:21:43.436Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T14:22:13.529Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T14:22:43.623Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T14:23:13.724Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T14:23:43.822Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T14:24:13.897Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T14:24:43.979Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T14:25:14.045Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T14:25:44.139Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T14:26:14.227Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T14:26:44.330Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T14:27:14.406Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T14:27:44.497Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T14:28:14.581Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T14:28:44.683Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T14:29:14.771Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T14:29:44.865Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T14:30:14.957Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T14:30:45.044Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T14:31:15.140Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T14:31:45.230Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T14:32:15.320Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T14:32:45.408Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T14:33:15.489Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T14:33:45.577Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T14:34:15.671Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T14:34:45.752Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T14:35:15.848Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T14:35:45.940Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T14:36:16.038Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T14:36:46.129Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T14:37:16.223Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T14:37:46.316Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T14:38:16.402Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T14:38:46.493Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T14:39:16.577Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T14:39:46.659Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T14:40:16.744Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T14:40:46.839Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T14:41:16.932Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T14:41:47.022Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T14:42:17.128Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T14:42:47.223Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T14:43:17.305Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T14:43:47.402Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T14:44:17.498Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T14:44:47.589Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T14:45:17.680Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T14:45:47.776Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T14:46:17.874Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T14:46:47.975Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T14:47:18.066Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T14:47:48.156Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T14:48:18.259Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T14:48:48.355Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T14:49:18.446Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T14:49:48.541Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T14:50:18.633Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T14:50:48.721Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T14:51:18.819Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T14:51:48.911Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T14:52:19.002Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T14:52:49.097Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T14:53:19.188Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T14:53:49.279Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T14:54:19.373Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T14:54:49.455Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T14:55:19.544Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T14:55:49.637Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T14:56:19.718Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T14:56:49.808Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T14:57:19.897Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T14:57:49.990Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T14:58:20.085Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T14:58:50.178Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T14:59:20.264Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T14:59:50.349Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T15:00:20.451Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T15:00:50.546Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T15:01:20.643Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T15:01:50.735Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T15:02:20.824Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T15:02:50.914Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T15:03:21.006Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T15:03:51.101Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T15:04:21.194Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T15:04:51.288Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T15:05:21.378Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T15:05:51.463Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T15:06:21.550Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T15:06:51.630Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T15:07:21.718Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T15:07:51.816Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T15:08:21.913Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T15:08:52.002Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T15:09:22.088Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T15:09:52.180Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T15:10:22.269Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T15:10:52.355Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T15:11:22.450Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T15:11:52.544Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T15:12:22.638Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T15:12:52.736Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T15:13:22.837Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T15:13:52.932Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T15:14:23.021Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T15:14:53.121Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T15:15:23.214Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T15:15:53.295Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T15:16:23.395Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T15:16:53.485Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T15:17:23.580Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T15:17:53.674Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T15:18:23.769Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T15:18:53.863Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T15:19:23.962Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T15:19:54.054Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T15:20:24.160Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T15:20:54.255Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T15:21:24.342Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T15:21:54.431Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T15:22:24.522Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T15:22:54.623Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T15:23:24.716Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T15:23:54.806Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T15:24:24.905Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T15:24:54.999Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T15:25:25.090Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T15:25:55.200Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T15:26:25.294Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T15:26:55.389Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T15:27:25.477Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T15:27:55.567Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T15:28:25.659Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T15:28:55.751Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T15:29:25.862Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T15:29:55.960Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T15:30:26.052Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T15:30:56.154Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T15:31:26.249Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T15:31:56.340Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T15:32:26.427Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T15:32:56.523Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T15:33:26.618Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T15:33:56.703Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T15:34:26.798Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T15:34:56.895Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T15:35:27.004Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T15:35:57.096Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T15:36:27.198Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T15:36:57.287Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T15:37:27.372Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T15:37:57.471Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T15:38:27.563Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T15:38:57.659Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T15:39:27.753Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T15:39:57.853Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T15:40:27.960Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T15:40:58.062Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T15:41:28.156Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T15:41:58.248Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T15:42:28.341Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T15:42:58.439Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T15:43:28.540Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T15:43:58.646Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T15:44:28.747Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T15:44:58.846Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T15:45:28.937Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T15:45:59.033Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T15:46:29.114Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T15:46:59.206Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T15:47:29.303Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T15:47:59.401Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T15:48:29.502Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T15:48:59.597Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T15:49:29.694Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T15:49:59.784Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T15:50:29.869Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T15:50:59.974Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T15:51:30.077Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T15:52:00.161Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T15:52:30.258Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T15:53:00.350Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T15:53:30.441Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T15:54:00.526Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T15:54:30.622Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T15:55:00.712Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T15:55:30.806Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T15:56:00.899Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T15:56:30.992Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T15:57:01.087Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T15:57:31.185Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T15:58:01.279Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T15:58:31.372Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T15:59:01.456Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T15:59:31.535Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T16:00:01.635Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T16:00:31.741Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T16:01:01.839Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T16:01:31.922Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T16:02:02.021Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T16:02:32.098Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T16:03:02.181Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T16:03:32.279Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T16:04:02.370Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T16:04:32.466Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T16:05:02.553Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T16:05:32.647Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T16:06:02.746Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T16:06:32.837Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T16:07:02.932Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T16:07:33.032Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T16:08:03.132Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T16:08:33.218Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T16:09:03.304Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T16:09:33.402Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T16:10:03.493Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T16:10:33.576Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T16:11:03.675Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T16:11:33.773Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T16:12:03.867Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T16:12:33.955Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T16:13:04.055Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T16:13:34.137Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T16:14:04.225Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T16:14:34.312Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T16:15:04.397Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T16:15:34.492Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T16:16:04.585Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T16:16:34.685Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T16:17:04.777Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T16:17:34.872Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T16:18:04.964Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T16:18:35.056Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T16:19:05.160Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T16:19:35.262Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T16:20:05.352Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T16:20:35.447Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T16:21:05.551Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T16:21:35.649Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T16:22:05.736Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T16:22:35.838Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T16:23:05.923Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T16:23:36.015Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T16:24:06.092Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T16:24:36.174Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T16:25:06.261Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T16:25:36.362Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T16:26:06.448Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T16:26:36.535Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T16:27:06.628Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T16:27:36.724Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T16:28:06.822Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T16:28:36.903Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T16:29:06.994Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T16:29:37.087Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T16:30:07.178Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T16:30:37.260Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T16:31:07.352Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T16:31:37.447Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T16:32:07.540Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T16:32:37.652Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T16:33:07.752Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T16:33:37.834Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T16:34:07.928Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T16:34:38.027Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T16:35:08.121Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T16:35:38.225Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T16:36:08.310Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T16:36:38.406Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T16:37:08.499Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T16:37:38.601Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T16:38:08.704Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T16:38:38.796Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T16:39:08.893Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T16:39:38.976Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T16:40:09.065Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T16:40:39.157Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T16:41:09.245Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T16:41:39.341Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T16:42:09.433Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T16:42:39.525Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T16:43:09.617Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T16:43:39.695Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T16:44:09.780Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T16:44:39.876Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T16:45:09.977Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T16:45:40.057Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T16:46:10.158Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T16:46:40.251Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T16:47:10.347Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T16:47:40.437Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T16:48:10.537Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T16:48:40.643Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T16:49:10.741Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T16:49:40.827Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T16:50:10.921Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T16:50:41.014Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T16:51:11.119Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T16:51:41.215Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T16:52:11.300Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T16:52:41.402Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T16:53:11.490Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T16:53:41.584Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T16:54:11.680Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T16:54:41.760Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T16:55:11.862Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T16:55:41.950Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T16:56:12.040Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T16:56:42.140Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T16:57:12.249Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T16:57:42.349Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T16:58:12.441Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T16:58:42.533Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T16:59:12.631Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T16:59:42.723Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T17:00:12.821Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T17:00:42.920Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T17:01:13.014Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T17:01:43.106Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T17:02:13.199Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T17:02:43.292Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T17:03:13.388Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T17:03:43.487Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T17:04:13.578Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T17:04:43.666Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T17:05:13.749Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T17:05:43.856Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T17:06:13.948Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T17:06:44.036Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T17:07:14.129Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T17:07:44.226Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T17:08:14.307Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T17:08:44.408Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T17:09:14.498Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T17:09:44.596Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T17:10:14.687Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T17:10:44.778Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T17:11:14.891Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T17:11:44.985Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T17:12:15.069Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T17:12:45.160Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T17:13:15.219Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T17:13:45.322Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T17:14:15.421Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T17:14:45.512Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T17:15:15.605Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T17:15:45.702Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T17:16:15.798Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T17:16:45.874Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T17:17:15.966Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T17:17:46.061Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T17:18:16.145Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T17:18:46.247Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T17:19:16.341Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T17:19:46.429Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T17:20:16.526Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T17:20:46.615Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T17:21:16.701Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T17:21:46.794Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T17:22:16.892Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T17:22:46.990Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T17:23:17.103Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T17:23:47.206Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T17:24:17.315Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T17:24:47.398Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T17:25:17.482Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T17:25:47.577Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T17:26:17.668Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T17:26:47.764Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T17:27:17.863Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T17:27:47.953Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T17:28:18.048Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T17:28:48.147Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T17:29:18.247Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T17:29:48.339Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T17:30:18.429Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T17:30:48.524Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T17:31:18.611Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T17:31:48.697Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T17:32:18.795Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T17:32:48.873Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T17:33:18.965Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T17:33:49.055Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T17:34:19.166Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T17:34:49.273Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T17:35:19.372Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T17:35:49.462Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T17:36:19.552Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T17:36:49.641Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T17:37:19.744Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T17:37:49.844Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T17:38:19.932Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T17:38:50.022Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T17:39:20.113Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T17:39:50.204Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T17:40:20.288Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T17:40:50.387Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T17:41:20.490Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T17:41:50.584Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T17:42:20.677Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T17:42:50.771Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T17:43:20.865Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T17:43:50.965Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T17:44:21.060Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T17:44:51.145Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T17:45:21.242Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T17:45:51.335Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T17:46:21.422Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T17:46:51.517Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T17:47:21.608Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T17:47:51.699Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T17:48:21.799Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T17:48:51.897Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T17:49:21.980Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T17:49:52.065Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T17:50:22.148Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T17:50:52.238Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T17:51:22.339Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T17:51:52.432Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T17:52:22.526Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T17:52:52.612Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T17:53:22.707Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T17:53:52.803Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T17:54:22.900Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T17:54:52.996Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T17:55:23.088Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T17:55:53.184Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T17:56:23.282Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T17:56:53.365Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T17:57:23.455Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T17:57:53.537Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T17:58:23.645Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T17:58:53.741Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T17:59:23.836Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T17:59:53.933Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T18:00:24.021Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T18:00:54.125Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T18:01:24.223Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T18:01:54.318Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T18:02:24.413Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T18:02:54.514Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T18:03:24.608Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T18:03:54.707Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T18:04:24.793Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T18:04:54.886Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T18:05:24.980Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T18:05:55.070Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T18:06:25.154Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T18:06:55.242Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T18:07:25.332Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T18:07:55.424Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T18:08:25.521Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T18:08:55.601Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T18:09:25.696Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T18:09:55.787Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T18:10:25.877Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T18:10:55.970Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T18:11:26.070Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T18:11:56.178Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T18:12:26.267Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T18:12:56.361Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T18:13:26.442Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T18:13:56.535Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T18:14:26.635Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T18:14:56.732Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T18:15:26.831Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T18:15:56.891Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T18:16:26.942Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T18:16:56.998Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T18:17:27.053Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T18:17:57.110Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T18:18:27.164Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T18:18:57.220Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T18:19:27.271Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T18:19:57.335Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T18:20:27.386Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T18:20:57.449Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T18:21:27.506Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T18:21:57.561Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T18:22:27.617Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T18:22:57.669Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T18:23:27.734Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T18:23:57.788Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T18:24:27.845Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T18:24:57.903Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T18:25:27.968Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T18:25:58.023Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T18:26:28.075Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T18:26:58.137Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T18:27:28.193Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T18:27:58.245Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T18:28:28.298Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T18:28:58.351Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T18:29:28.408Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T18:29:58.485Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T18:30:28.549Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T18:30:58.612Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T18:31:28.665Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T18:31:58.730Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T18:32:28.780Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T18:32:58.834Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T18:33:28.890Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T18:33:58.946Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T18:34:29.007Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T18:34:59.064Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T18:35:29.112Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T18:35:59.160Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T18:36:29.210Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T18:36:59.269Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T18:37:29.321Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T18:37:59.372Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T18:38:29.421Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T18:38:59.472Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T18:39:29.526Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T18:39:59.588Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T18:40:29.640Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T18:40:59.694Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T18:41:29.758Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T18:41:59.823Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T18:42:29.884Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T18:42:59.937Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T18:43:29.988Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T18:44:00.050Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T18:44:30.108Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T18:45:00.176Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T18:45:30.251Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T18:46:00.305Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T18:46:30.356Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T18:47:00.415Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T18:47:30.467Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T18:48:00.520Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T18:48:30.582Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T18:49:00.637Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T18:49:30.688Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T18:50:00.739Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T18:50:30.794Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T18:51:00.851Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T18:51:30.903Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T18:52:00.956Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T18:52:31.008Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T18:53:01.071Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T18:53:31.135Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T18:54:01.199Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T18:54:31.276Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T18:55:01.328Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T18:55:31.388Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T18:56:01.441Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T18:56:31.486Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T18:57:01.540Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T18:57:31.606Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T18:58:01.669Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T18:58:31.721Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T18:59:01.774Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T18:59:31.829Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T19:00:01.891Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T19:00:31.941Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T19:01:01.993Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T19:01:32.056Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T19:02:02.110Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T19:02:32.172Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T19:03:02.229Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T19:03:32.286Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T19:04:02.340Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T19:04:32.400Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T19:05:02.447Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T19:05:32.497Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T19:06:02.560Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T19:06:32.623Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T19:07:02.694Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T19:07:32.747Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T19:08:02.801Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T19:08:32.849Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T19:09:02.905Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T19:09:32.964Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T19:10:03.020Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T19:10:33.090Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T19:11:03.148Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T19:11:33.199Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T19:12:03.253Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T19:12:33.308Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T19:13:03.366Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T19:13:33.425Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T19:14:03.483Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T19:14:33.538Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T19:15:03.590Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T19:15:33.644Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T19:16:03.707Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T19:16:33.770Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T19:17:03.829Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T19:17:33.881Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T19:18:03.932Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T19:18:33.998Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T19:19:04.045Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T19:19:34.106Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T19:20:04.167Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T19:20:34.224Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T19:21:04.276Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T19:21:34.329Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T19:22:04.397Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T19:22:34.452Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T19:23:04.529Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T19:23:34.605Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T19:24:04.680Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T19:24:34.749Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T19:25:04.815Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T19:25:34.892Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T19:26:04.961Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T19:26:35.047Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T19:27:05.147Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T19:27:35.235Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T19:28:05.325Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T19:28:35.421Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T19:29:05.530Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T19:29:35.626Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T19:30:05.714Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T19:30:35.807Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T19:31:05.892Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T19:31:35.987Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T19:32:06.078Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T19:32:36.159Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T19:33:06.249Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T19:33:36.352Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T19:34:06.442Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T19:34:36.544Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T19:35:06.644Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T19:35:36.738Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T19:36:06.827Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T19:36:36.930Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T19:37:07.031Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T19:37:37.098Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T19:38:07.187Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T19:38:37.279Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T19:39:07.383Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T19:39:37.477Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T19:40:07.574Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T19:40:37.681Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T19:41:07.776Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T19:41:37.857Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T19:42:07.944Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T19:42:38.028Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T19:43:08.129Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T19:43:38.212Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T19:44:08.304Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T19:44:38.404Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T19:45:08.493Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T19:45:38.589Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T19:46:08.677Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T19:46:38.777Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T19:47:08.826Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T19:47:38.920Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T19:48:08.981Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T19:48:39.073Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T19:49:09.135Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T19:49:39.225Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T19:50:09.287Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T19:50:39.395Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T19:51:09.493Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T19:51:39.584Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T19:52:09.687Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T19:52:39.769Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T19:53:09.866Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T19:53:39.956Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T19:54:10.039Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T19:54:40.123Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T19:55:10.213Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T19:55:40.303Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T19:56:10.393Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T19:56:40.489Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T19:57:10.576Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T19:57:40.669Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T19:58:10.751Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T19:58:40.837Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T19:59:10.932Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T19:59:41.025Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T20:00:11.117Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T20:00:41.215Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T20:01:11.303Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T20:01:41.386Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T20:02:11.470Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T20:02:41.553Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T20:03:11.648Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T20:03:41.745Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T20:04:11.836Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T20:04:41.939Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T20:05:12.023Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T20:05:42.129Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T20:06:12.224Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T20:06:42.311Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T20:07:12.415Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T20:07:42.512Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T20:08:12.593Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T20:08:42.692Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T20:09:12.782Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T20:09:42.880Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T20:10:12.979Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T20:10:43.071Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T20:11:13.158Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T20:11:43.254Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T20:12:13.335Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T20:12:43.435Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T20:13:13.535Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T20:13:43.622Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T20:14:13.721Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T20:14:43.811Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T20:15:13.912Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T20:15:44.009Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T20:16:14.101Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T20:16:44.187Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T20:17:14.284Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T20:17:44.378Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T20:18:14.484Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T20:18:44.583Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T20:19:14.668Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T20:19:44.757Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T20:20:14.855Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T20:20:44.961Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T20:21:15.050Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T20:21:45.142Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T20:22:15.228Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T20:22:45.320Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T20:23:15.421Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T20:23:45.523Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T20:24:15.610Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T20:24:45.705Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T20:25:15.802Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T20:25:45.898Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T20:26:15.984Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T20:26:46.082Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T20:27:16.166Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T20:27:46.262Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T20:28:16.355Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T20:28:46.452Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T20:29:16.510Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T20:29:46.603Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T20:30:16.679Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T20:30:46.771Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T20:31:16.867Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T20:31:46.960Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T20:32:17.040Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T20:32:47.131Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T20:33:17.231Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T20:33:47.326Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T20:34:17.423Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T20:34:47.524Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T20:35:17.621Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T20:35:47.713Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T20:36:17.807Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T20:36:47.909Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T20:37:17.996Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T20:37:48.097Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T20:38:18.188Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T20:38:48.281Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T20:39:18.390Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T20:39:48.473Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T20:40:18.566Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T20:40:48.649Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T20:41:18.743Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T20:41:48.839Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T20:42:18.940Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T20:42:49.030Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T20:43:19.120Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T20:43:49.212Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T20:44:19.311Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T20:44:49.406Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T20:45:19.502Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T20:45:49.596Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T20:46:19.697Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T20:46:49.791Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T20:47:19.895Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T20:47:50.006Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T20:48:20.098Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T20:48:50.198Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T20:49:20.282Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T20:49:50.376Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T20:50:20.479Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T20:50:50.572Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T20:51:20.661Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T20:51:50.748Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T20:52:20.838Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T20:52:50.926Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T20:53:21.014Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T20:53:51.114Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T20:54:21.223Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T20:54:51.316Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T20:55:21.404Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T20:55:51.501Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T20:56:21.606Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T20:56:51.692Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T20:57:21.802Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T20:57:51.894Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T20:58:21.982Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T20:58:52.066Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T20:59:22.155Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T20:59:52.252Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T21:00:22.354Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T21:00:52.444Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T21:01:22.525Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T21:01:52.624Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T21:02:22.723Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T21:02:52.808Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T21:03:22.894Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T21:03:52.977Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T21:04:23.054Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T21:04:53.145Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T21:05:23.241Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T21:05:53.331Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T21:06:23.424Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T21:06:53.507Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T21:07:23.658Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T21:07:59.207Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T21:12:28.558Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T21:13:12.753Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T21:13:46.774Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T21:14:24.157Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T21:15:21.566Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T21:16:03.671Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T21:16:34.773Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T21:17:08.685Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T21:17:42.524Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T21:18:58.784Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T21:20:24.016Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T21:21:39.750Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T21:23:37.499Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T21:25:25.679Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T21:25:55.790Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T21:26:25.888Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T21:26:55.992Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T21:27:26.080Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T21:27:56.167Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T21:28:26.252Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T21:28:56.346Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T21:29:26.440Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T21:29:56.567Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "6ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T21:30:26.659Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T21:30:56.762Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T21:31:26.851Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T21:31:56.968Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T21:32:27.047Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T21:32:57.143Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T21:33:27.276Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T21:33:57.366Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T21:34:27.459Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T21:34:57.545Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T21:35:27.655Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T21:35:57.742Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T21:36:27.824Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T21:36:56.713Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T21:36:57.919Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T21:37:09.730Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 200, - "duration": "158ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T21:37:10.122Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T21:37:10.190Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T21:37:10.196Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T21:37:10.213Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-06", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T21:37:10.223Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 200, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T21:37:10.229Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/equipments/moved/list", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T21:37:10.255Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260206", - "baseTime": "0600", - "nx": 57, - "ny": 119 -} -[2026-02-05T21:37:10.356Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T21:37:10.388Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -6.6, - "humidity": 45, - "windSpeed": 2.5, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-05T21:37:10.390Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -6.6, - "humidity": 45, - "windSpeed": 2.5, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-05T21:37:10.391Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "138ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T21:37:11.102Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T21:37:16.774Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T21:37:16.913Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T21:37:17.765Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T21:37:28.012Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T21:37:46.718Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T21:37:52.530Z] [INFO] ℹ️ 프로젝트별-작업별 시간 분석 요청 - Context: { - "start": "2026-01-01", - "end": "2026-01-31" -} -[2026-02-05T21:37:52.535Z] [INFO] ℹ️ 작업자별 통계 조회 요청 - Context: { - "start": "2026-01-01", - "end": "2026-01-31" -} -[2026-02-05T21:37:52.542Z] [INFO] ℹ️ 프로젝트별-작업별 시간 분석 성공 - Context: { - "start": "2026-01-01", - "end": "2026-01-31", - "projectCount": 5, - "workTypeCount": 5, - "totalHours": 1680 -} -[2026-02-05T21:37:52.544Z] [INFO] ℹ️ 작업자별 통계 조회 성공 - Context: { - "start": "2026-01-01", - "end": "2026-01-31", - "workerCount": 10 -} -[2026-02-05T21:37:52.546Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-analysis/project-worktype-analysis?start=2026-01-01&end=2026-01-31", - "statusCode": 200, - "duration": "19ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T21:37:52.547Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-analysis/worker-stats?start=2026-01-01&end=2026-01-31", - "statusCode": 200, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T21:37:52.552Z] [INFO] ℹ️ 최근 작업 현황 조회 요청 - Context: { - "start": "2026-01-01", - "end": "2026-01-31", - "limit": 2000 -} -[2026-02-05T21:37:52.558Z] [INFO] ℹ️ 최근 작업 현황 조회 성공 - Context: { - "start": "2026-01-01", - "end": "2026-01-31", - "limit": 2000, - "resultCount": 216 -} -[2026-02-05T21:37:52.562Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-analysis/recent-work?start=2026-01-01&end=2026-01-31&limit=2000", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T21:37:58.113Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T21:38:16.717Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T21:38:28.202Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T21:38:46.717Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T21:38:58.268Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T21:39:16.738Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T21:39:28.409Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T21:39:46.740Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "20ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T21:39:58.475Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T21:40:16.722Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T21:40:28.579Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T21:40:46.728Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T21:40:58.664Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T21:41:16.718Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T21:41:28.754Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T21:41:46.720Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T21:41:58.848Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T21:42:16.722Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T21:42:28.930Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T21:42:46.726Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T21:42:59.023Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T21:43:16.720Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T21:43:29.106Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T21:43:46.719Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T21:43:59.188Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T21:44:16.726Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T21:44:29.272Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T21:44:46.719Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T21:44:59.371Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T21:45:16.723Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T21:45:29.454Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T21:45:46.721Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T21:45:59.548Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T21:46:16.720Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T21:46:29.635Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T21:46:46.723Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T21:46:59.724Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T21:47:16.718Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T21:47:29.809Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T21:47:46.720Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T21:47:59.889Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T21:48:16.716Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T21:48:29.976Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T21:48:46.718Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T21:49:00.067Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T21:49:16.717Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T21:49:30.160Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T21:49:46.721Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T21:50:00.260Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T21:50:16.721Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T21:50:30.353Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T21:50:46.720Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T21:51:00.438Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T21:51:16.723Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T21:51:30.531Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T21:51:46.721Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T21:52:00.605Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T21:52:16.716Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T21:52:30.682Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T21:52:46.722Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T21:52:56.222Z] [INFO] ℹ️ 최근 작업 현황 조회 요청 - Context: { - "start": "2026-01-01", - "end": "2026-01-31", - "limit": 2000 -} -[2026-02-05T21:52:56.225Z] [INFO] ℹ️ 작업자별 통계 조회 요청 - Context: { - "start": "2026-01-01", - "end": "2026-01-31" -} -[2026-02-05T21:52:56.229Z] [INFO] ℹ️ 프로젝트별-작업별 시간 분석 요청 - Context: { - "start": "2026-01-01", - "end": "2026-01-31" -} -[2026-02-05T21:52:56.249Z] [INFO] ℹ️ 최근 작업 현황 조회 성공 - Context: { - "start": "2026-01-01", - "end": "2026-01-31", - "limit": 2000, - "resultCount": 216 -} -[2026-02-05T21:52:56.253Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/work-analysis/recent-work?start=2026-01-01&end=2026-01-31&limit=2000", - "statusCode": 304, - "duration": "32ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T21:52:56.260Z] [INFO] ℹ️ 작업자별 통계 조회 성공 - Context: { - "start": "2026-01-01", - "end": "2026-01-31", - "workerCount": 10 -} -[2026-02-05T21:52:56.263Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-analysis/worker-stats?start=2026-01-01&end=2026-01-31&limit=2000", - "statusCode": 200, - "duration": "39ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T21:52:56.266Z] [INFO] ℹ️ 프로젝트별-작업별 시간 분석 성공 - Context: { - "start": "2026-01-01", - "end": "2026-01-31", - "projectCount": 5, - "workTypeCount": 5, - "totalHours": 1680 -} -[2026-02-05T21:52:56.268Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-analysis/project-worktype-analysis?start=2026-01-01&end=2026-01-31&limit=2000", - "statusCode": 200, - "duration": "41ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T21:53:00.779Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T21:53:16.720Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T21:53:30.866Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T21:53:46.721Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T21:54:00.946Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T21:54:16.723Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T21:54:31.026Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T21:54:46.722Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T21:55:01.118Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T21:55:16.725Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T21:55:31.212Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T21:55:46.721Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T21:56:01.298Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T21:56:16.718Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T21:56:31.386Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T21:56:46.715Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T21:57:01.463Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T21:57:16.717Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T21:57:31.558Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T21:57:46.715Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T21:58:01.669Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T21:58:16.721Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T21:58:31.765Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T21:58:46.723Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T21:59:01.857Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T21:59:16.720Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T21:59:31.956Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T21:59:46.717Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:00:02.048Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T22:00:16.717Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:00:32.153Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T22:00:46.718Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:01:02.254Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T22:01:09.272Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000&department_id=1", - "statusCode": 200, - "duration": "31ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:01:09.306Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:01:09.312Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:01:09.318Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:01:09.323Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260206", - "baseTime": "0600", - "nx": 57, - "ny": 119 -} -[2026-02-05T22:01:09.330Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:01:09.336Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues/categories/type/nonconformity", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:01:09.342Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues/items", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:01:09.350Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:01:09.423Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:01:09.425Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:01:09.433Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -6.7, - "humidity": 43, - "windSpeed": 1.9, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-05T22:01:09.434Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -6.7, - "humidity": 43, - "windSpeed": 1.9, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-05T22:01:09.435Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "113ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:01:09.437Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260206", - "baseTime": "0600", - "nx": 57, - "ny": 119 -} -[2026-02-05T22:01:09.496Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -6.7, - "humidity": 43, - "windSpeed": 1.9, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-05T22:01:09.498Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -6.7, - "humidity": 43, - "windSpeed": 1.9, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-05T22:01:09.499Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 304, - "duration": "62ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:01:10.641Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-02-06", - "created_by_user_id": 1, - "requester": 1, - "isAdmin": false -} -[2026-02-05T22:01:10.645Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 0 -} -[2026-02-05T22:01:10.648Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-02-06", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:01:17.023Z] [INFO] ℹ️ 작업보고서 조회 요청 - Context: { - "date": "2026-01-06", - "created_by_user_id": 1, - "requester": 1, - "isAdmin": false -} -[2026-02-05T22:01:17.031Z] [INFO] ℹ️ 작업보고서 조회 성공 - Context: { - "count": 10 -} -[2026-02-05T22:01:17.035Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports?date=2026-01-06", - "statusCode": 200, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:01:32.341Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T22:01:39.234Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:01:39.242Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:02:02.431Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T22:02:09.236Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:02:09.243Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:02:32.509Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T22:02:32.620Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000&department_id=1", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:02:32.652Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:02:32.659Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:02:32.663Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 304, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:02:32.668Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 304, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:02:32.673Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/work-issues/categories/type/nonconformity", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:02:32.677Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/work-issues/items", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:02:32.682Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:02:32.819Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:02:32.824Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:02:36.075Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:02:36.250Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:02:37.048Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:02:47.550Z] [INFO] ℹ️ 최근 작업 현황 조회 요청 - Context: { - "start": "2026-01-01", - "end": "2026-01-31", - "limit": 2000 -} -[2026-02-05T22:02:47.552Z] [INFO] ℹ️ 에러 분석 요청 - Context: { - "start": "2026-01-01", - "end": "2026-01-31" -} -[2026-02-05T22:02:47.563Z] [INFO] ℹ️ 최근 작업 현황 조회 성공 - Context: { - "start": "2026-01-01", - "end": "2026-01-31", - "limit": 2000, - "resultCount": 216 -} -[2026-02-05T22:02:47.566Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/work-analysis/recent-work?start=2026-01-01&end=2026-01-31&limit=2000", - "statusCode": 304, - "duration": "18ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:02:47.567Z] [INFO] ℹ️ 에러 분석 성공 - Context: { - "start": "2026-01-01", - "end": "2026-01-31" -} -[2026-02-05T22:02:47.568Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-analysis/error-analysis?start=2026-01-01&end=2026-01-31", - "statusCode": 200, - "duration": "17ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:03:02.601Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T22:03:06.060Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:03:32.720Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "6ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T22:03:36.061Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:04:02.813Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T22:04:06.055Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:04:32.889Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T22:04:36.053Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:05:02.968Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T22:05:06.057Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:05:33.047Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T22:05:36.054Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:06:03.125Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T22:06:06.050Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:06:33.208Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T22:06:36.051Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:07:03.287Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T22:07:06.049Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:07:33.361Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T22:07:36.052Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:08:03.429Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T22:08:06.049Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:08:26.349Z] [INFO] ℹ️ 최근 작업 현황 조회 요청 - Context: { - "start": "2026-01-01", - "end": "2026-01-31", - "limit": 2000 -} -[2026-02-05T22:08:26.352Z] [INFO] ℹ️ 에러 분석 요청 - Context: { - "start": "2026-01-01", - "end": "2026-01-31" -} -[2026-02-05T22:08:26.360Z] [INFO] ℹ️ 최근 작업 현황 조회 성공 - Context: { - "start": "2026-01-01", - "end": "2026-01-31", - "limit": 2000, - "resultCount": 216 -} -[2026-02-05T22:08:26.363Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/work-analysis/recent-work?start=2026-01-01&end=2026-01-31&limit=2000", - "statusCode": 304, - "duration": "17ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:08:26.364Z] [INFO] ℹ️ 에러 분석 성공 - Context: { - "start": "2026-01-01", - "end": "2026-01-31" -} -[2026-02-05T22:08:26.364Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/work-analysis/error-analysis?start=2026-01-01&end=2026-01-31", - "statusCode": 304, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:08:33.534Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T22:08:36.065Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:09:03.615Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T22:09:06.085Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "15ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:09:26.252Z] [INFO] ℹ️ 최근 작업 현황 조회 요청 - Context: { - "start": "2026-01-01", - "end": "2026-01-31", - "limit": 2000 -} -[2026-02-05T22:09:26.255Z] [INFO] ℹ️ 작업자별 통계 조회 요청 - Context: { - "start": "2026-01-01", - "end": "2026-01-31" -} -[2026-02-05T22:09:26.257Z] [INFO] ℹ️ 프로젝트별-작업별 시간 분석 요청 - Context: { - "start": "2026-01-01", - "end": "2026-01-31" -} -[2026-02-05T22:09:26.261Z] [INFO] ℹ️ 최근 작업 현황 조회 성공 - Context: { - "start": "2026-01-01", - "end": "2026-01-31", - "limit": 2000, - "resultCount": 216 -} -[2026-02-05T22:09:26.265Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/work-analysis/recent-work?start=2026-01-01&end=2026-01-31&limit=2000", - "statusCode": 304, - "duration": "16ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:09:26.266Z] [INFO] ℹ️ 작업자별 통계 조회 성공 - Context: { - "start": "2026-01-01", - "end": "2026-01-31", - "workerCount": 10 -} -[2026-02-05T22:09:26.269Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-analysis/worker-stats?start=2026-01-01&end=2026-01-31&limit=2000", - "statusCode": 200, - "duration": "15ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:09:26.270Z] [INFO] ℹ️ 프로젝트별-작업별 시간 분석 성공 - Context: { - "start": "2026-01-01", - "end": "2026-01-31", - "projectCount": 5, - "workTypeCount": 5, - "totalHours": 1680 -} -[2026-02-05T22:09:26.270Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/work-analysis/project-worktype-analysis?start=2026-01-01&end=2026-01-31&limit=2000", - "statusCode": 304, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:09:33.755Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T22:09:36.088Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:10:03.834Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T22:10:06.076Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:10:33.927Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T22:10:36.077Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:11:04.022Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T22:11:06.071Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:11:34.111Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T22:11:36.074Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:12:04.186Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T22:12:06.075Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:12:34.275Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T22:12:36.074Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:13:04.361Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T22:13:06.080Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:13:30.013Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 200, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:13:30.056Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260206", - "baseTime": "0700", - "nx": 57, - "ny": 119 -} -[2026-02-05T22:13:30.158Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:13:30.896Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -6.8, - "humidity": 42, - "windSpeed": 1.9, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-05T22:13:30.902Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -6.8, - "humidity": 42, - "windSpeed": 1.9, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-05T22:13:30.906Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "852ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:13:30.984Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:13:34.513Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T22:13:39.184Z] [INFO] ℹ️ 최근 작업 현황 조회 요청 - Context: { - "start": "2026-01-01", - "end": "2026-01-31", - "limit": 2000 -} -[2026-02-05T22:13:39.188Z] [INFO] ℹ️ 에러 분석 요청 - Context: { - "start": "2026-01-01", - "end": "2026-01-31" -} -[2026-02-05T22:13:39.195Z] [INFO] ℹ️ 최근 작업 현황 조회 성공 - Context: { - "start": "2026-01-01", - "end": "2026-01-31", - "limit": 2000, - "resultCount": 216 -} -[2026-02-05T22:13:39.199Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/work-analysis/recent-work?start=2026-01-01&end=2026-01-31&limit=2000", - "statusCode": 304, - "duration": "18ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:13:39.200Z] [INFO] ℹ️ 에러 분석 성공 - Context: { - "start": "2026-01-01", - "end": "2026-01-31" -} -[2026-02-05T22:13:39.202Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/work-analysis/error-analysis?start=2026-01-01&end=2026-01-31", - "statusCode": 304, - "duration": "15ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:13:59.961Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:14:04.602Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T22:14:29.969Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:14:34.686Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T22:14:59.967Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:15:04.790Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T22:15:29.969Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:15:34.874Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T22:15:59.991Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:16:04.996Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T22:16:29.966Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:16:35.086Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T22:16:36.180Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:16:36.353Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:16:37.166Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:16:46.463Z] [INFO] ℹ️ 최근 작업 현황 조회 요청 - Context: { - "start": "2026-01-01", - "end": "2026-01-31", - "limit": 2000 -} -[2026-02-05T22:16:46.468Z] [INFO] ℹ️ 에러 분석 요청 - Context: { - "start": "2026-01-01", - "end": "2026-01-31" -} -[2026-02-05T22:16:46.475Z] [INFO] ℹ️ 최근 작업 현황 조회 성공 - Context: { - "start": "2026-01-01", - "end": "2026-01-31", - "limit": 2000, - "resultCount": 216 -} -[2026-02-05T22:16:46.479Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/work-analysis/recent-work?start=2026-01-01&end=2026-01-31&limit=2000", - "statusCode": 304, - "duration": "20ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:16:46.483Z] [INFO] ℹ️ 에러 분석 성공 - Context: { - "start": "2026-01-01", - "end": "2026-01-31" -} -[2026-02-05T22:16:46.486Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/work-analysis/error-analysis?start=2026-01-01&end=2026-01-31", - "statusCode": 304, - "duration": "19ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:17:05.177Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T22:17:06.165Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:17:11.290Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/work-issues/categories/type/nonconformity", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:17:11.303Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/work-issues/items", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:17:11.472Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:17:12.291Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:17:35.253Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T22:17:41.279Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:18:05.358Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T22:18:11.318Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "20ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:18:35.469Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T22:18:41.280Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:19:05.566Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T22:19:11.286Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:19:35.702Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T22:19:41.286Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:20:05.814Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T22:20:11.291Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:20:35.915Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T22:20:41.285Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:21:06.064Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T22:21:11.291Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:21:36.162Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T22:21:41.286Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:22:06.264Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T22:22:11.281Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:22:36.347Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T22:22:41.281Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:23:06.437Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T22:23:11.388Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:23:36.645Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T22:23:41.388Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:24:06.745Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T22:24:36.832Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T22:24:49.379Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:25:06.927Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T22:25:37.019Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T22:25:49.381Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:26:07.137Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T22:26:37.228Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T22:26:49.390Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:27:07.329Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T22:27:37.405Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T22:27:49.257Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:27:50.578Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues/categories/type/nonconformity", - "statusCode": 200, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:27:50.618Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/work-issues/items", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:27:50.663Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260206", - "baseTime": "0700", - "nx": 57, - "ny": 119 -} -[2026-02-05T22:27:50.767Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:27:50.802Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -7.2, - "humidity": 39, - "windSpeed": 2.1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-05T22:27:50.805Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -7.2, - "humidity": 39, - "windSpeed": 2.1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-05T22:27:50.807Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "148ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:27:51.573Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:27:52.303Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:27:52.475Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:27:53.302Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:28:00.062Z] [INFO] ℹ️ 최근 작업 현황 조회 요청 - Context: { - "start": "2026-01-01", - "end": "2026-01-31", - "limit": 2000 -} -[2026-02-05T22:28:00.067Z] [INFO] ℹ️ 에러 분석 요청 - Context: { - "start": "2026-01-01", - "end": "2026-01-31" -} -[2026-02-05T22:28:00.070Z] [ERROR] ❌ 최근 작업 현황 조회 실패 - Context: { - "start": "2026-01-01", - "end": "2026-01-31", - "limit": 2000, - "error": "최근 작업 현황 조회 실패: Table 'hyungi.error_types' doesn't exist" -} -[2026-02-05T22:28:00.073Z] [ERROR] ❌ 최근 작업 현황 조회 중 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 최근 작업 현황 조회 중 오류가 발생했습니다\n at /usr/src/app/controllers/workAnalysisController.js:247:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "url": "/api/work-analysis/recent-work?start=2026-01-01&end=2026-01-31&limit=2000", - "method": "GET", - "user": "hyungi" -} -[2026-02-05T22:28:00.075Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/work-analysis/recent-work?start=2026-01-01&end=2026-01-31&limit=2000", - "statusCode": 500, - "duration": "15ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:28:00.077Z] [ERROR] ❌ 에러 분석 실패 - Context: { - "start": "2026-01-01", - "end": "2026-01-31", - "error": "에러 분석 실패: Table 'hyungi.error_types' doesn't exist" -} -[2026-02-05T22:28:00.077Z] [ERROR] ❌ 에러 분석 중 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 에러 분석 중 오류가 발생했습니다\n at /usr/src/app/controllers/workAnalysisController.js:301:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "url": "/api/work-analysis/error-analysis?start=2026-01-01&end=2026-01-31", - "method": "GET", - "user": "hyungi" -} -[2026-02-05T22:28:00.078Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/work-analysis/error-analysis?start=2026-01-01&end=2026-01-31", - "statusCode": 500, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:28:05.913Z] [INFO] ℹ️ 최근 작업 현황 조회 요청 - Context: { - "start": "2026-01-01", - "end": "2026-01-31", - "limit": 2000 -} -[2026-02-05T22:28:05.916Z] [INFO] ℹ️ 에러 분석 요청 - Context: { - "start": "2026-01-01", - "end": "2026-01-31" -} -[2026-02-05T22:28:05.917Z] [ERROR] ❌ 최근 작업 현황 조회 실패 - Context: { - "start": "2026-01-01", - "end": "2026-01-31", - "limit": 2000, - "error": "최근 작업 현황 조회 실패: Table 'hyungi.error_types' doesn't exist" -} -[2026-02-05T22:28:05.918Z] [ERROR] ❌ 최근 작업 현황 조회 중 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 최근 작업 현황 조회 중 오류가 발생했습니다\n at /usr/src/app/controllers/workAnalysisController.js:247:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "url": "/api/work-analysis/recent-work?start=2026-01-01&end=2026-01-31&limit=2000", - "method": "GET", - "user": "hyungi" -} -[2026-02-05T22:28:05.919Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/work-analysis/recent-work?start=2026-01-01&end=2026-01-31&limit=2000", - "statusCode": 500, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:28:05.919Z] [ERROR] ❌ 에러 분석 실패 - Context: { - "start": "2026-01-01", - "end": "2026-01-31", - "error": "에러 분석 실패: Table 'hyungi.error_types' doesn't exist" -} -[2026-02-05T22:28:05.920Z] [ERROR] ❌ 에러 분석 중 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 에러 분석 중 오류가 발생했습니다\n at /usr/src/app/controllers/workAnalysisController.js:301:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "url": "/api/work-analysis/error-analysis?start=2026-01-01&end=2026-01-31", - "method": "GET", - "user": "hyungi" -} -[2026-02-05T22:28:05.921Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/work-analysis/error-analysis?start=2026-01-01&end=2026-01-31", - "statusCode": 500, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:28:07.490Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T22:28:20.766Z] [INFO] ℹ️ 프로젝트별-작업별 시간 분석 요청 - Context: { - "start": "2026-01-01", - "end": "2026-01-31" -} -[2026-02-05T22:28:20.770Z] [INFO] ℹ️ 작업자별 통계 조회 요청 - Context: { - "start": "2026-01-01", - "end": "2026-01-31" -} -[2026-02-05T22:28:20.775Z] [INFO] ℹ️ 프로젝트별-작업별 시간 분석 성공 - Context: { - "start": "2026-01-01", - "end": "2026-01-31", - "projectCount": 5, - "workTypeCount": 5, - "totalHours": 1680 -} -[2026-02-05T22:28:20.777Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/work-analysis/project-worktype-analysis?start=2026-01-01&end=2026-01-31", - "statusCode": 304, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:28:20.778Z] [INFO] ℹ️ 작업자별 통계 조회 성공 - Context: { - "start": "2026-01-01", - "end": "2026-01-31", - "workerCount": 10 -} -[2026-02-05T22:28:20.781Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-analysis/worker-stats?start=2026-01-01&end=2026-01-31", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:28:20.785Z] [INFO] ℹ️ 최근 작업 현황 조회 요청 - Context: { - "start": "2026-01-01", - "end": "2026-01-31", - "limit": 2000 -} -[2026-02-05T22:28:20.786Z] [ERROR] ❌ 최근 작업 현황 조회 실패 - Context: { - "start": "2026-01-01", - "end": "2026-01-31", - "limit": 2000, - "error": "최근 작업 현황 조회 실패: Table 'hyungi.error_types' doesn't exist" -} -[2026-02-05T22:28:20.787Z] [ERROR] ❌ 최근 작업 현황 조회 중 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 최근 작업 현황 조회 중 오류가 발생했습니다\n at /usr/src/app/controllers/workAnalysisController.js:247:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "url": "/api/work-analysis/recent-work?start=2026-01-01&end=2026-01-31&limit=2000", - "method": "GET", - "user": "hyungi" -} -[2026-02-05T22:28:20.787Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/work-analysis/recent-work?start=2026-01-01&end=2026-01-31&limit=2000", - "statusCode": 500, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:28:20.792Z] [INFO] ℹ️ 최근 작업 현황 조회 요청 - Context: { - "start": "2026-01-01", - "end": "2026-01-31", - "limit": 100 -} -[2026-02-05T22:28:20.792Z] [ERROR] ❌ 최근 작업 현황 조회 실패 - Context: { - "start": "2026-01-01", - "end": "2026-01-31", - "limit": 100, - "error": "최근 작업 현황 조회 실패: Table 'hyungi.error_types' doesn't exist" -} -[2026-02-05T22:28:20.793Z] [ERROR] ❌ 최근 작업 현황 조회 중 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 최근 작업 현황 조회 중 오류가 발생했습니다\n at /usr/src/app/controllers/workAnalysisController.js:247:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "url": "/api/work-analysis/recent-work?start=2026-01-01&end=2026-01-31&limit=100", - "method": "GET", - "user": "hyungi" -} -[2026-02-05T22:28:20.794Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/work-analysis/recent-work?start=2026-01-01&end=2026-01-31&limit=100", - "statusCode": 500, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:28:22.268Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:28:37.583Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T22:28:52.277Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:28:59.874Z] [WARN] ⚠️ 404 Not Found - Context: { - "url": "/work-analysis/stats?start=2026-01-01&end=2026-02-06", - "method": "GET" -} -[2026-02-05T22:29:07.676Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T22:29:22.272Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:29:22.750Z] [WARN] ⚠️ 인증 실패: Authorization 헤더 없음 - Context: { - "path": "/", - "method": "GET", - "ip": "::ffff:127.0.0.1" -} -[2026-02-05T22:29:22.751Z] [WARN] ⚠️ Authorization 헤더가 필요합니다 - Context: { - "code": "AUTHENTICATION_ERROR", - "url": "/api/work-analysis/recent-work?start=2026-01-01&end=2026-02-06&limit=5", - "method": "GET", - "user": "anonymous" -} -[2026-02-05T22:29:22.751Z] [WARN] ⚠️ HTTP Request - Client Error - Context: { - "method": "GET", - "url": "/api/work-analysis/recent-work?start=2026-01-01&end=2026-02-06&limit=5", - "statusCode": 401, - "duration": "1ms", - "ip": "::ffff:127.0.0.1", - "user": "anonymous" -} -[2026-02-05T22:29:28.346Z] [INFO] ℹ️ SIGTERM 신호 수신 - 서버 종료 시작 -[2026-02-05T22:29:28.348Z] [INFO] ℹ️ HTTP 서버 종료 완료 -[2026-02-05T22:29:28.797Z] [INFO] ℹ️ Rate Limiting 설정 완료 -[2026-02-05T22:29:28.797Z] [INFO] ℹ️ 미들웨어 설정 완료 -[2026-02-05T22:29:28.875Z] [INFO] ℹ️ 라우트 설정 완료 -[2026-02-05T22:29:28.946Z] [INFO] ℹ️ 서버 시작 완료 - Context: { - "port": "3005", - "env": "production", - "nodeVersion": "v18.20.8" -} -[2026-02-05T22:29:28.955Z] [INFO] ℹ️ 캐시 시스템 초기화 완료 -[2026-02-05T22:29:33.640Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T22:29:52.285Z] [INFO] ℹ️ MariaDB 연결 성공 - Context: { - "connection": "db:3306", - "database": "hyungi", - "connectionLimit": 10 -} -[2026-02-05T22:29:52.289Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "18ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:30:03.730Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T22:30:22.275Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:30:33.514Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 200, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:30:33.685Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:30:33.816Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T22:30:34.506Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:30:39.913Z] [INFO] ℹ️ 프로젝트별-작업별 시간 분석 요청 - Context: { - "start": "2026-01-01", - "end": "2026-01-31" -} -[2026-02-05T22:30:39.917Z] [INFO] ℹ️ 작업자별 통계 조회 요청 - Context: { - "start": "2026-01-01", - "end": "2026-01-31" -} -[2026-02-05T22:30:39.924Z] [INFO] ℹ️ 프로젝트별-작업별 시간 분석 성공 - Context: { - "start": "2026-01-01", - "end": "2026-01-31", - "projectCount": 5, - "workTypeCount": 5, - "totalHours": 1680 -} -[2026-02-05T22:30:39.926Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/work-analysis/project-worktype-analysis?start=2026-01-01&end=2026-01-31", - "statusCode": 304, - "duration": "18ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:30:39.929Z] [INFO] ℹ️ 작업자별 통계 조회 성공 - Context: { - "start": "2026-01-01", - "end": "2026-01-31", - "workerCount": 10 -} -[2026-02-05T22:30:39.932Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-analysis/worker-stats?start=2026-01-01&end=2026-01-31", - "statusCode": 200, - "duration": "16ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:30:39.937Z] [INFO] ℹ️ 최근 작업 현황 조회 요청 - Context: { - "start": "2026-01-01", - "end": "2026-01-31", - "limit": 2000 -} -[2026-02-05T22:30:39.946Z] [INFO] ℹ️ 최근 작업 현황 조회 성공 - Context: { - "start": "2026-01-01", - "end": "2026-01-31", - "limit": 2000, - "resultCount": 216 -} -[2026-02-05T22:30:39.949Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-analysis/recent-work?start=2026-01-01&end=2026-01-31&limit=2000", - "statusCode": 200, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:30:42.846Z] [INFO] ℹ️ 에러 분석 요청 - Context: { - "start": "2026-01-01", - "end": "2026-01-31" -} -[2026-02-05T22:30:42.849Z] [INFO] ℹ️ 최근 작업 현황 조회 요청 - Context: { - "start": "2026-01-01", - "end": "2026-01-31", - "limit": 2000 -} -[2026-02-05T22:30:42.854Z] [INFO] ℹ️ 에러 분석 성공 - Context: { - "start": "2026-01-01", - "end": "2026-01-31" -} -[2026-02-05T22:30:42.855Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-analysis/error-analysis?start=2026-01-01&end=2026-01-31", - "statusCode": 200, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:30:42.862Z] [INFO] ℹ️ 최근 작업 현황 조회 성공 - Context: { - "start": "2026-01-01", - "end": "2026-01-31", - "limit": 2000, - "resultCount": 216 -} -[2026-02-05T22:30:42.864Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/work-analysis/recent-work?start=2026-01-01&end=2026-01-31&limit=2000", - "statusCode": 304, - "duration": "16ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:31:03.505Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:31:03.917Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T22:31:33.489Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:31:33.697Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 200, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:31:33.882Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:31:34.000Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T22:31:34.688Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:31:40.462Z] [INFO] ℹ️ 최근 작업 현황 조회 요청 - Context: { - "start": "2026-01-01", - "end": "2026-01-31", - "limit": 2000 -} -[2026-02-05T22:31:40.466Z] [INFO] ℹ️ 에러 분석 요청 - Context: { - "start": "2026-01-01", - "end": "2026-01-31" -} -[2026-02-05T22:31:40.473Z] [INFO] ℹ️ 최근 작업 현황 조회 성공 - Context: { - "start": "2026-01-01", - "end": "2026-01-31", - "limit": 2000, - "resultCount": 216 -} -[2026-02-05T22:31:40.476Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/work-analysis/recent-work?start=2026-01-01&end=2026-01-31&limit=2000", - "statusCode": 304, - "duration": "15ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:31:40.477Z] [INFO] ℹ️ 에러 분석 성공 - Context: { - "start": "2026-01-01", - "end": "2026-01-31" -} -[2026-02-05T22:31:40.478Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/work-analysis/error-analysis?start=2026-01-01&end=2026-01-31", - "statusCode": 304, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:32:03.688Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:32:04.090Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T22:32:33.694Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:32:34.188Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T22:32:50.460Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/workers?limit=1000&department_id=1", - "statusCode": 200, - "duration": "19ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:32:50.472Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:32:50.478Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:32:50.484Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:32:50.492Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 200, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:32:50.497Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/work-issues/categories/type/nonconformity", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:32:50.504Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/work-issues/items", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:32:50.510Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:32:50.623Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:32:50.625Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:33:01.115Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tasks?work_type_id=1", - "statusCode": 200, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:33:04.279Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T22:33:20.435Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:33:20.443Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:33:24.694Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues?category_type=nonconformity", - "statusCode": 200, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:33:24.696Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-issues/stats/summary?category_type=nonconformity", - "statusCode": 200, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:33:24.812Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260206", - "baseTime": "0700", - "nx": 57, - "ny": 119 -} -[2026-02-05T22:33:24.880Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:33:25.319Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -7.2, - "humidity": 39, - "windSpeed": 2.1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-05T22:33:25.326Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -7.2, - "humidity": 39, - "windSpeed": 2.1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-05T22:33:25.330Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 304, - "duration": "551ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:33:26.263Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/work-issues/categories/type/nonconformity", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:33:26.291Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/work-issues/items", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:33:26.466Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:33:27.262Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:33:34.368Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T22:33:56.282Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:34:04.464Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T22:34:26.273Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:34:34.548Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T22:34:56.279Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:35:04.638Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T22:35:26.285Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:35:34.723Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T22:35:56.390Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:36:04.805Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T22:36:26.384Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:36:34.888Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T22:37:04.975Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T22:37:35.048Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T22:37:49.395Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:38:05.136Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T22:38:35.227Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T22:38:49.377Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:39:05.313Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T22:39:35.410Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T22:39:49.380Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:40:05.506Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T22:40:35.597Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T22:40:38.409Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:40:53.389Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 200, - "duration": "86ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:40:53.768Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:40:53.832Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces?category_id=1", - "statusCode": 304, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:40:53.845Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplaces/categories/1/map-regions", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:40:53.857Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-02-06", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:40:53.867Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workplace-visits/requests", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:40:53.869Z] [INFO] ℹ️ 날씨 API 호출 - Context: { - "baseDate": "20260206", - "baseTime": "0700", - "nx": 57, - "ny": 119 -} -[2026-02-05T22:40:53.880Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/equipments/moved/list", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:40:53.967Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:40:54.767Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:40:55.123Z] [INFO] ℹ️ 날씨 데이터 파싱 완료 - Context: { - "temperature": -7.3, - "humidity": 37, - "windSpeed": 2.1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null -} -[2026-02-05T22:40:55.124Z] [INFO] ℹ️ 날씨 조건 판단 완료 - Context: { - "weatherData": { - "temperature": -7.3, - "humidity": 37, - "windSpeed": 2.1, - "precipitation": 0, - "precipitationType": 0, - "skyCondition": null - }, - "conditions": [ - "clear" - ] -} -[2026-02-05T22:40:55.126Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 200, - "duration": "1258ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:41:05.694Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T22:41:20.000Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/workers?limit=1000&department_id=1", - "statusCode": 304, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:41:20.029Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:41:20.034Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-types", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:41:20.040Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/work-status-types", - "statusCode": 304, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:41:20.047Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/daily-work-reports/error-types", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:41:20.052Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/work-issues/categories/type/nonconformity", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:41:20.058Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/work-issues/items", - "statusCode": 304, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:41:20.066Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 304, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:41:20.188Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:41:20.195Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:41:20.505Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:41:20.654Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:41:21.449Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:41:35.782Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T22:41:36.516Z] [INFO] ℹ️ 에러 분석 요청 - Context: { - "start": "2026-01-01", - "end": "2026-01-31" -} -[2026-02-05T22:41:36.520Z] [INFO] ℹ️ 최근 작업 현황 조회 요청 - Context: { - "start": "2026-01-01", - "end": "2026-01-31", - "limit": 2000 -} -[2026-02-05T22:41:36.530Z] [INFO] ℹ️ 최근 작업 현황 조회 성공 - Context: { - "start": "2026-01-01", - "end": "2026-01-31", - "limit": 2000, - "resultCount": 216 -} -[2026-02-05T22:41:36.534Z] [INFO] ℹ️ 에러 분석 성공 - Context: { - "start": "2026-01-01", - "end": "2026-01-31" -} -[2026-02-05T22:41:36.535Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-analysis/error-analysis?start=2026-01-01&end=2026-01-31", - "statusCode": 200, - "duration": "21ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:41:36.537Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/work-analysis/recent-work?start=2026-01-01&end=2026-01-31&limit=2000", - "statusCode": 200, - "duration": "19ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:41:50.455Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:42:05.860Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T22:42:20.466Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:42:35.941Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T22:42:50.468Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:43:06.033Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T22:43:20.459Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:43:36.129Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T22:43:50.461Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:44:06.214Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T22:44:20.461Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:44:36.287Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T22:44:50.461Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:45:06.379Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T22:45:20.458Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:45:36.463Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T22:45:50.460Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:46:06.558Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T22:46:20.451Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:46:36.632Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T22:46:50.453Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:47:06.725Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T22:47:20.459Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:47:36.812Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T22:47:50.450Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:48:06.909Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T22:48:20.451Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:48:37.004Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T22:48:50.456Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:49:07.091Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T22:49:20.451Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:49:37.172Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T22:49:50.453Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:50:07.271Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T22:50:20.454Z] [INFO] ℹ️ HTTP Request - Redirect - Context: { - "method": "GET", - "url": "/api/notifications/unread", - "statusCode": 304, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:50:37.378Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T22:51:07.463Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T22:51:37.552Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T22:52:07.636Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T22:52:37.723Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T22:53:07.805Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T22:53:37.889Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T22:54:07.983Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T22:54:38.073Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T22:55:08.151Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T22:55:38.233Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T22:56:08.316Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T22:56:38.403Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T22:57:08.506Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T22:57:38.595Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T22:58:08.668Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T22:58:38.757Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T22:59:08.860Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T22:59:38.949Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T23:00:09.052Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T23:00:39.154Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T23:01:09.242Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T23:01:39.336Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T23:02:09.423Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T23:02:39.520Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T23:03:09.596Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T23:03:39.685Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T23:04:09.780Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T23:04:39.855Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T23:05:09.939Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T23:05:40.043Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T23:06:10.146Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T23:06:40.240Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T23:07:10.329Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T23:07:40.422Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T23:08:10.517Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T23:08:40.607Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T23:09:10.701Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T23:09:40.785Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T23:10:10.876Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T23:10:40.974Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T23:11:11.049Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T23:11:41.126Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T23:12:11.212Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T23:12:41.299Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T23:13:11.383Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T23:13:41.471Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T23:14:11.544Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T23:14:41.621Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T23:15:11.680Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T23:15:41.782Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T23:16:11.877Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T23:16:41.980Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T23:17:12.074Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T23:17:42.169Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T23:18:12.245Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T23:18:42.328Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T23:19:12.427Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T23:19:42.513Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T23:20:12.608Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T23:20:42.696Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T23:21:12.789Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T23:21:42.884Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T23:22:12.976Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T23:22:43.075Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T23:23:13.173Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T23:23:43.268Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T23:24:13.363Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T23:24:43.425Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T23:25:13.609Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T23:25:43.677Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T23:26:13.743Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T23:26:43.815Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T23:27:13.893Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T23:27:43.983Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T23:28:14.071Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T23:28:44.164Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T23:29:14.252Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T23:29:44.345Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T23:30:14.434Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T23:30:44.534Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T23:31:14.617Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T23:31:44.680Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T23:32:14.749Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T23:32:44.834Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T23:33:14.905Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T23:33:44.988Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T23:34:15.063Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T23:34:45.147Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T23:35:15.220Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T23:35:45.310Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T23:36:15.407Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T23:36:45.513Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T23:37:15.603Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T23:37:45.709Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T23:38:15.805Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T23:38:45.907Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T23:39:16.004Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T23:39:46.084Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T23:40:16.167Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T23:40:46.261Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T23:41:16.342Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T23:41:46.436Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T23:42:16.527Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T23:42:46.617Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T23:43:16.697Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T23:43:46.798Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T23:44:16.873Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T23:44:46.961Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T23:45:17.033Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T23:45:47.108Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T23:46:17.191Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T23:46:47.278Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T23:47:17.365Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T23:47:47.465Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T23:48:17.554Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T23:48:47.628Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T23:49:17.739Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T23:49:47.831Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T23:50:17.927Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T23:50:48.008Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T23:51:18.099Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T23:51:48.205Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T23:52:18.290Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T23:52:48.370Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T23:53:18.467Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T23:53:48.551Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T23:54:18.625Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T23:54:48.714Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T23:55:18.808Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T23:55:48.897Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T23:56:18.987Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T23:56:49.083Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T23:57:19.175Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T23:57:49.277Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T23:58:19.361Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T23:58:49.435Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T23:59:19.559Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-05T23:59:49.679Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T00:00:19.780Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T00:00:49.872Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T00:01:20.022Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T00:01:50.115Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T00:02:20.209Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T00:02:50.324Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T00:03:20.414Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T00:03:50.501Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T00:04:20.599Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T00:04:50.726Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T00:05:20.825Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T00:05:50.922Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T00:06:21.013Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T00:06:51.170Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T00:07:21.285Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T00:07:51.377Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T00:08:21.472Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T00:08:51.569Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T00:09:21.687Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T00:09:51.823Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T00:10:21.937Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T00:10:52.086Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T00:11:22.198Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T00:11:52.312Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T00:12:22.439Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T00:12:52.538Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T00:13:22.643Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T00:13:52.742Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T00:14:22.827Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T00:14:52.989Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T00:15:23.082Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T00:15:53.165Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T00:16:23.289Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T00:16:53.382Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T00:17:23.470Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T00:17:53.560Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T00:18:23.663Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T00:18:53.766Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T00:19:23.865Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T00:19:53.956Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T00:20:24.052Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T00:20:54.159Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T00:21:24.242Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T00:21:54.337Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T00:22:24.413Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T00:22:54.487Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T00:23:24.569Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T00:23:54.653Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T00:24:24.746Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T00:24:54.897Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T00:25:25.031Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "6ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T00:25:55.133Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T00:26:25.233Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T00:26:55.334Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T00:27:25.429Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T00:27:55.519Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T00:28:25.637Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T00:28:55.728Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T00:29:25.826Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T00:29:55.930Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T00:30:26.025Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T00:30:56.123Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T00:31:26.236Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T00:31:56.346Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T00:32:26.430Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T00:32:56.521Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T00:33:26.610Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T00:33:56.694Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T00:34:26.772Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T00:34:56.845Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T00:35:26.941Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T00:35:57.026Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T00:36:27.124Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T00:36:57.240Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T00:37:27.327Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T00:37:57.406Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T00:38:27.474Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T00:38:57.580Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T00:39:27.667Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T00:39:57.755Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T00:40:27.832Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T00:40:57.912Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T00:41:27.989Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T00:41:58.105Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T00:42:28.208Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T00:42:58.291Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T00:43:28.378Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T00:43:58.475Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T00:44:28.564Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T00:44:58.676Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T00:45:28.772Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T00:45:58.888Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T00:46:28.980Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T00:46:59.069Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T00:47:29.164Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T00:47:59.228Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T00:48:29.302Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T00:48:59.398Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T00:49:29.496Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T00:49:59.585Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T00:50:29.680Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T00:50:59.786Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T00:51:29.867Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T00:51:59.956Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T00:52:30.052Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T00:53:00.137Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T00:53:30.224Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T00:54:00.323Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T00:54:30.417Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T00:55:00.505Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T00:55:30.604Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T00:56:00.697Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T00:56:30.799Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T00:57:00.903Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T00:57:30.991Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T00:58:01.088Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T00:58:31.186Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T00:59:01.284Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T00:59:31.383Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T01:00:01.481Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T01:00:31.578Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T01:01:01.693Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T01:01:31.781Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T01:02:01.876Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T01:02:31.973Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T01:03:02.056Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T01:03:32.154Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T01:04:02.250Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T01:04:32.347Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T01:05:02.431Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T01:05:32.523Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T01:06:02.615Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T01:06:32.704Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T01:07:02.798Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T01:07:32.896Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T01:08:02.987Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T01:08:33.078Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T01:09:03.173Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T01:09:33.275Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T01:10:03.366Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T01:10:33.452Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T01:11:03.544Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T01:11:33.637Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T01:12:03.734Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T01:12:33.822Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T01:13:03.923Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T01:13:34.006Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T01:14:04.095Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T01:14:34.184Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T01:15:04.272Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T01:15:34.365Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T01:16:04.456Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T01:16:34.550Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T01:17:04.653Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T01:17:34.744Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T01:18:04.827Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T01:18:34.918Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T01:19:05.009Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T01:19:35.102Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T01:20:05.201Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T01:20:35.295Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T01:21:05.376Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T01:21:35.469Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T01:22:05.558Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T01:22:35.651Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T01:23:05.751Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T01:23:35.844Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T01:24:05.932Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T01:24:36.023Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T01:25:06.116Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T01:25:36.223Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T01:26:06.310Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T01:26:36.399Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T01:27:06.481Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T01:27:36.590Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T01:28:06.697Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T01:28:36.788Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T01:29:06.878Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T01:29:36.964Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T01:30:07.057Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T01:30:37.153Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T01:31:07.249Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T01:31:37.339Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T01:32:07.434Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T01:32:37.533Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T01:33:07.649Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T01:33:37.750Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T01:34:07.844Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T01:34:37.951Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T01:35:08.060Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T01:35:38.164Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T01:36:08.260Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T01:36:38.352Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T01:37:08.445Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T01:37:38.535Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T01:38:08.634Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T01:38:38.725Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T01:39:08.832Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T01:39:38.935Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T01:40:09.049Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T01:40:39.140Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T01:41:09.235Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T01:41:39.333Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T01:42:09.426Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T01:42:39.520Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T01:43:09.607Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T01:43:39.703Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T01:44:09.778Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T01:44:39.893Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T01:45:09.991Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T01:45:40.087Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T01:46:10.185Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T01:46:40.290Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T01:47:10.371Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T01:47:40.456Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T01:48:10.546Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T01:48:40.627Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T01:49:10.718Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T01:49:40.807Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T01:50:10.902Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T01:50:40.998Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T01:51:11.099Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T01:51:41.190Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T01:52:11.282Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T01:52:41.382Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T01:53:11.474Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T01:53:41.571Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T01:54:11.654Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T01:54:41.743Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T01:55:11.837Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T01:55:41.926Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T01:56:12.018Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T01:56:42.111Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T01:57:12.210Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T01:57:42.299Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T01:58:12.381Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T01:58:42.476Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T01:59:12.564Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T01:59:42.657Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T02:00:12.748Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T02:00:42.860Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T02:01:12.957Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T02:01:43.049Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T02:02:13.143Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T02:02:43.244Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T02:03:13.334Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T02:03:43.438Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T02:04:13.534Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T02:04:43.620Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T02:05:13.726Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T02:05:43.812Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T02:06:13.901Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T02:06:44.002Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T02:07:14.090Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T02:07:44.183Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T02:08:14.284Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T02:08:44.368Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T02:09:14.453Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T02:09:44.538Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T02:10:14.622Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T02:10:44.717Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T02:11:14.805Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T02:11:44.890Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T02:12:14.982Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T02:12:45.083Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T02:13:15.182Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T02:13:45.276Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T02:14:15.372Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T02:14:45.457Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T02:15:15.547Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T02:15:45.646Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T02:16:15.731Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T02:16:45.813Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T02:17:15.900Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T02:17:46.000Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T02:18:16.100Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T02:18:46.196Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T02:19:16.269Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T02:19:46.375Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T02:20:16.457Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T02:20:46.542Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T02:21:16.595Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T02:21:46.700Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T02:22:16.760Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T02:22:46.847Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T02:23:16.915Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T02:23:46.996Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T02:24:17.073Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T02:24:47.174Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T02:25:17.269Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T02:25:47.372Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T02:26:17.465Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T02:26:47.559Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T02:27:17.668Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T02:27:47.754Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T02:28:17.853Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T02:28:47.949Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T02:29:18.045Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T02:29:48.147Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T02:30:18.248Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T02:30:48.346Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T02:31:18.440Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T02:31:48.538Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T02:32:18.633Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T02:32:48.730Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T02:33:18.832Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T02:33:48.931Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T02:34:19.034Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T02:34:49.129Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T02:35:19.219Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T02:35:49.306Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T02:36:19.394Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T02:36:49.507Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T02:37:19.598Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T02:37:49.686Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T02:38:19.785Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T02:38:49.881Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T02:39:19.984Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T02:39:50.072Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T02:40:20.169Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T02:40:50.252Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T02:41:20.354Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T02:41:50.449Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T02:42:20.543Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T02:42:50.657Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T02:43:20.755Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T02:43:50.854Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T02:44:20.947Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T02:44:51.043Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T02:45:21.139Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T02:45:51.230Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T02:46:21.323Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T02:46:51.416Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T02:47:21.517Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T02:47:51.604Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T02:48:21.689Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T02:48:51.782Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T02:49:21.881Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T02:49:51.975Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T02:50:22.068Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T02:50:52.161Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T02:51:22.270Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T02:51:52.379Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T02:52:22.483Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T02:52:52.576Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T02:53:22.666Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T02:53:52.764Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T02:54:22.852Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T02:54:52.949Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T02:55:23.054Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T02:55:53.154Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T02:56:23.258Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T02:56:53.362Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T02:57:23.458Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T02:57:53.548Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T02:58:23.636Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T02:58:53.714Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T02:59:23.801Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T02:59:53.898Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T03:00:23.994Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T03:00:54.088Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T03:01:24.187Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T03:01:54.274Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T03:02:24.367Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T03:02:54.465Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T03:03:24.547Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T03:03:54.640Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T03:04:24.734Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T03:04:54.833Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T03:05:24.930Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T03:05:55.027Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T03:06:25.125Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T03:06:55.216Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T03:07:25.314Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T03:07:55.414Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T03:08:25.514Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T03:08:55.598Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T03:09:25.685Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T03:09:55.775Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T03:10:25.868Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T03:10:55.963Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T03:11:26.072Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T03:11:56.144Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T03:12:26.260Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T03:12:56.358Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T03:13:26.443Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T03:13:56.541Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T03:14:26.633Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T03:14:56.743Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T03:15:26.829Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T03:15:56.915Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T03:16:27.026Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T03:16:57.120Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T03:17:27.208Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T03:17:57.294Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T03:18:27.391Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T03:18:57.497Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T03:19:27.585Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T03:19:57.671Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T03:20:27.762Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T03:20:57.845Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T03:21:27.955Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T03:21:58.043Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T03:22:28.128Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T03:22:58.225Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T03:23:28.322Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T03:23:58.410Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T03:24:28.501Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T03:24:58.594Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T03:25:28.683Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T03:25:58.782Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T03:26:28.887Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T03:26:58.973Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T03:27:29.068Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T03:27:59.170Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T03:28:29.253Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T03:28:59.355Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T03:29:29.447Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T03:29:59.544Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T03:30:29.642Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T03:30:59.738Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T03:31:29.832Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T03:31:59.910Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T03:32:30.026Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T03:33:00.123Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T03:33:30.215Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T03:34:00.276Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T03:34:30.380Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T03:35:00.453Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T03:35:30.532Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T03:36:00.627Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T03:36:30.713Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T03:37:00.814Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T03:37:30.903Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T03:38:00.997Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T03:38:31.087Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T03:39:01.179Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T03:39:31.277Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T03:40:01.387Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T03:40:31.487Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T03:41:01.580Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T03:41:31.679Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T03:42:01.781Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T03:42:31.880Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T03:43:01.978Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T03:43:32.072Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T03:44:02.163Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T03:44:32.255Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T03:45:02.330Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T03:45:32.417Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T03:46:02.504Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T03:46:32.606Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T03:47:02.699Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T03:47:32.791Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T03:48:02.868Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T03:48:32.956Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T03:49:03.043Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T03:49:33.148Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T03:50:03.238Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T03:50:33.343Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T03:51:03.438Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T03:51:33.528Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T03:52:03.616Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T03:52:33.715Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T03:53:03.823Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T03:53:33.925Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T03:54:04.022Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T03:54:34.111Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T03:55:04.197Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T03:55:34.286Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T03:56:04.385Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T03:56:34.476Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T03:57:04.573Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T03:57:34.662Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T03:58:04.757Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T03:58:34.840Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T03:59:04.935Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T03:59:35.026Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T04:00:05.127Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T04:00:35.253Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T04:01:05.344Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T04:01:35.446Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T04:02:05.540Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T04:02:35.636Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T04:03:05.729Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T04:03:35.827Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T04:04:05.927Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T04:04:36.003Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T04:05:06.094Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T04:05:36.184Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T04:06:06.272Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T04:06:36.363Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T04:07:06.463Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T04:07:36.558Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T04:08:06.647Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T04:08:36.744Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T04:09:06.848Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T04:09:36.939Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T04:10:07.040Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T04:10:37.136Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T04:11:07.232Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T04:11:37.329Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T04:12:07.426Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T04:12:37.532Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T04:13:07.611Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T04:13:37.697Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T04:14:07.784Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T04:14:37.884Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T04:15:07.977Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T04:15:38.061Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T04:16:08.157Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T04:16:38.248Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T04:17:08.362Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T04:17:38.454Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T04:18:08.556Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T04:18:38.644Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T04:19:08.744Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T04:19:38.846Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T04:20:08.935Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T04:20:39.086Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T04:21:09.200Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T04:21:39.295Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T04:22:09.398Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T04:22:39.516Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T04:23:09.612Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T04:23:39.724Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T04:24:09.838Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T04:24:39.932Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T04:25:10.040Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T04:25:40.230Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T04:26:10.327Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T04:26:40.434Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T04:27:10.518Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T04:27:40.647Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T04:28:10.737Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T04:28:40.828Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T04:29:10.929Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T04:29:41.030Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T04:30:11.150Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T04:30:41.245Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T04:31:11.343Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T04:31:41.441Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T04:32:11.531Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T04:32:41.662Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T04:33:11.773Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T04:33:41.897Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T04:34:11.990Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T04:34:42.110Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T04:35:12.213Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T04:35:42.336Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "10ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T04:36:12.435Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T04:36:42.579Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T04:37:12.706Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T04:37:42.828Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T04:38:12.924Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T04:38:43.007Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T04:39:13.085Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T04:39:43.168Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T04:40:13.251Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T04:40:43.338Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T04:41:13.419Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T04:41:43.542Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T04:42:13.639Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T04:42:43.752Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T04:43:13.848Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T04:43:43.998Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T04:44:14.094Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T04:44:44.143Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T04:45:14.245Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T04:45:44.400Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T04:46:14.479Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T04:46:44.607Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T04:47:14.692Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T04:47:44.773Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T04:48:14.867Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "5ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T04:48:44.953Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T04:49:15.052Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T04:49:45.172Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T04:50:15.252Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T04:50:45.374Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "6ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T04:51:15.493Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T04:51:45.616Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T04:52:15.779Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T04:52:45.939Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T04:53:16.031Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T04:53:46.195Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T04:54:16.287Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T04:54:46.441Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "10ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T04:55:16.657Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T04:55:46.760Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T04:56:16.864Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T04:56:46.957Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T04:57:17.068Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T04:57:47.157Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T04:58:17.253Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T04:58:47.368Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T04:59:17.456Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T04:59:47.547Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T05:00:17.668Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "8ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T05:00:47.838Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T05:01:17.936Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T05:01:48.223Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "26ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T05:02:18.347Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T05:02:48.468Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T05:03:18.571Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T05:03:48.655Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T05:04:18.735Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T05:04:48.835Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T05:05:18.926Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T05:05:49.016Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T05:06:19.116Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T05:06:49.249Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T05:07:19.343Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T05:07:49.446Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T05:08:19.542Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T05:08:49.629Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T05:09:19.719Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T05:09:49.816Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T05:10:19.938Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T05:10:50.044Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T05:11:20.162Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T05:11:50.261Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T05:12:20.344Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T05:12:50.436Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T05:13:20.533Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T05:13:50.634Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T05:14:20.725Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T05:14:50.836Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T05:15:20.944Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T05:15:51.021Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T05:16:21.118Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T05:16:51.192Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T05:17:21.315Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T05:17:51.415Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T05:18:21.511Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T05:18:51.601Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T05:19:21.703Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T05:19:51.787Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T05:20:21.876Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T05:20:51.982Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T05:21:22.064Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T05:21:52.151Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T05:22:22.238Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T05:22:52.333Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T05:23:22.424Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T05:23:52.506Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T05:24:22.605Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T05:24:52.688Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T05:25:22.771Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T05:25:52.881Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T05:26:22.968Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T05:26:53.056Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T05:27:23.201Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T05:27:53.297Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T05:28:23.413Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T05:28:53.509Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T05:29:23.609Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T05:29:53.711Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T05:30:23.813Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T05:30:53.900Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T05:31:23.999Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T05:31:54.092Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T05:32:24.198Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T05:32:54.287Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T05:33:24.380Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T05:33:54.448Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T05:34:24.554Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T05:34:54.665Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T05:35:24.759Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T05:35:54.844Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T05:36:24.934Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T05:36:55.033Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T05:37:25.147Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T05:37:55.252Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T05:38:25.393Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T05:38:55.489Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T05:39:25.589Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T05:39:55.684Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T05:40:25.786Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T05:40:55.882Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T05:41:25.980Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T05:41:56.078Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T05:42:26.184Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T05:42:56.277Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T05:43:26.406Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T05:43:56.661Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T05:44:26.772Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T05:44:56.868Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T05:45:26.985Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T05:45:57.118Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T05:46:27.229Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T05:46:57.317Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T05:47:27.411Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T05:47:57.494Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T05:48:27.610Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T05:48:57.703Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T05:49:27.805Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T05:49:57.897Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T05:50:27.991Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T05:50:58.089Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T05:51:28.221Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "3ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T05:51:58.320Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T05:52:28.431Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T05:52:58.531Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T05:53:28.652Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T05:53:58.747Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T05:54:28.834Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T05:54:58.936Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T05:55:29.020Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T05:55:59.105Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T05:56:29.228Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "2ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T05:56:59.324Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "0ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T05:57:29.417Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} -[2026-02-06T05:57:59.526Z] [INFO] ℹ️ HTTP Request - Success - Context: { - "method": "GET", - "url": "/api/health", - "statusCode": 200, - "duration": "1ms", - "ip": "::1", - "user": "anonymous" -} diff --git a/system1-factory/api/logs/error.log b/system1-factory/api/logs/error.log deleted file mode 100644 index b3ebc65..0000000 --- a/system1-factory/api/logs/error.log +++ /dev/null @@ -1,4752 +0,0 @@ -[2025-12-19T01:28:03.160Z] [ERROR] ❌ 서버 오류가 발생했습니다. - Context: { - "code": "INTERNAL_ERROR", - "stack": "AppError: 서버 오류가 발생했습니다.\n at errorHandler (/usr/src/app/middlewares/errorHandler.js:51:13)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:71:5)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/src/app/node_modules/express/lib/router/index.js:280:10)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:67:12)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)", - "url": "/api/auth/login", - "method": "POST", - "user": "anonymous" -} -[2025-12-19T01:28:03.162Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 500, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36" -} -[2025-12-19T03:49:44.167Z] [ERROR] ❌ 서버 오류가 발생했습니다. - Context: { - "code": "INTERNAL_ERROR", - "stack": "AppError: 서버 오류가 발생했습니다.\n at errorHandler (/usr/src/app/middlewares/errorHandler.js:51:13)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:71:5)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/src/app/node_modules/express/lib/router/index.js:280:10)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:67:12)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)", - "url": "/api/auth/login", - "method": "POST", - "user": "anonymous" -} -[2025-12-19T03:49:44.170Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 500, - "duration": "9ms", - "ip": "::ffff:185.199.111.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36" -} -[2025-12-19T04:45:53.564Z] [ERROR] ❌ 서버 오류가 발생했습니다. - Context: { - "code": "INTERNAL_ERROR", - "stack": "AppError: 서버 오류가 발생했습니다.\n at errorHandler (/usr/src/app/middlewares/errorHandler.js:51:13)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:71:5)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/src/app/node_modules/express/lib/router/index.js:280:10)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:67:12)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)", - "url": "/api/auth/login", - "method": "POST", - "user": "anonymous" -} -[2025-12-19T04:45:53.567Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 500, - "duration": "8ms", - "ip": "::ffff:185.199.111.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15" -} -[2025-12-19T04:50:25.816Z] [ERROR] ❌ 서버 오류가 발생했습니다. - Context: { - "code": "INTERNAL_ERROR", - "stack": "AppError: 서버 오류가 발생했습니다.\n at errorHandler (/usr/src/app/middlewares/errorHandler.js:51:13)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:71:5)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/src/app/node_modules/express/lib/router/index.js:280:10)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:67:12)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)", - "url": "/api/auth/login", - "method": "POST", - "user": "anonymous" -} -[2025-12-19T04:50:25.818Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 500, - "duration": "46005ms", - "ip": "::ffff:185.199.111.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15" -} -[2025-12-19T05:00:41.127Z] [ERROR] ❌ 서버 오류가 발생했습니다. - Context: { - "code": "INTERNAL_ERROR", - "stack": "AppError: 서버 오류가 발생했습니다.\n at errorHandler (/usr/src/app/middlewares/errorHandler.js:51:13)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:71:5)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/src/app/node_modules/express/lib/router/index.js:280:10)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:67:12)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)", - "url": "/api/auth/login", - "method": "POST", - "user": "anonymous" -} -[2025-12-19T05:00:41.130Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 500, - "duration": "47941ms", - "ip": "::ffff:185.199.111.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15" -} -[2025-12-19T05:02:24.251Z] [ERROR] ❌ 서버 오류가 발생했습니다. - Context: { - "code": "INTERNAL_ERROR", - "stack": "AppError: 서버 오류가 발생했습니다.\n at errorHandler (/usr/src/app/middlewares/errorHandler.js:51:13)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:71:5)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/src/app/node_modules/express/lib/router/index.js:280:10)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:67:12)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)", - "url": "/api/auth/login", - "method": "POST", - "user": "anonymous" -} -[2025-12-19T05:02:24.254Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 500, - "duration": "41423ms", - "ip": "::ffff:185.199.111.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15" -} -[2025-12-19T05:24:07.104Z] [ERROR] ❌ 서버 오류가 발생했습니다. - Context: { - "code": "INTERNAL_ERROR", - "stack": "AppError: 서버 오류가 발생했습니다.\n at errorHandler (/usr/src/app/middlewares/errorHandler.js:51:13)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:71:5)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/src/app/node_modules/express/lib/router/index.js:280:10)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:67:12)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)", - "url": "/api/auth/login", - "method": "POST", - "user": "anonymous" -} -[2025-12-19T05:24:07.105Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 500, - "duration": "21ms", - "ip": "::ffff:185.199.111.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15" -} -[2025-12-19T05:24:32.095Z] [ERROR] ❌ 서버 오류가 발생했습니다. - Context: { - "code": "INTERNAL_ERROR", - "stack": "AppError: 서버 오류가 발생했습니다.\n at errorHandler (/usr/src/app/middlewares/errorHandler.js:51:13)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:71:5)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/src/app/node_modules/express/lib/router/index.js:280:10)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:67:12)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)", - "url": "/api/auth/login", - "method": "POST", - "user": "anonymous" -} -[2025-12-19T05:24:32.099Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 500, - "duration": "15ms", - "ip": "::ffff:185.199.111.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15" -} -[2025-12-19T05:28:04.711Z] [ERROR] ❌ 서버 오류가 발생했습니다. - Context: { - "code": "INTERNAL_ERROR", - "stack": "AppError: 서버 오류가 발생했습니다.\n at errorHandler (/usr/src/app/middlewares/errorHandler.js:51:13)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:71:5)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/src/app/node_modules/express/lib/router/index.js:280:10)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:67:12)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)", - "url": "/api/auth/login", - "method": "POST", - "user": "anonymous" -} -[2025-12-19T05:28:04.715Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 500, - "duration": "7ms", - "ip": "::ffff:185.199.111.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15" -} -[2025-12-19T05:29:35.308Z] [ERROR] ❌ 서버 오류가 발생했습니다. - Context: { - "code": "INTERNAL_ERROR", - "stack": "AppError: 서버 오류가 발생했습니다.\n at errorHandler (/usr/src/app/middlewares/errorHandler.js:51:13)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:71:5)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/src/app/node_modules/express/lib/router/index.js:280:10)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:67:12)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)", - "url": "/api/auth/login", - "method": "POST", - "user": "anonymous" -} -[2025-12-19T05:29:35.309Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 500, - "duration": "27ms", - "ip": "::ffff:185.199.111.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15" -} -[2025-12-19T05:50:32.535Z] [ERROR] ❌ 활성 프로젝트 목록 조회 중 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 활성 프로젝트 목록 조회 중 오류가 발생했습니다\n at /usr/src/app/controllers/projectController.js:63:23\n at Object.getActiveProjects (/usr/src/app/models/projectModel.js:51:5)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "url": "/api/projects/active/list", - "method": "GET", - "user": "tester" -} -[2025-12-19T05:50:32.539Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/projects/active/list", - "statusCode": 500, - "duration": "9ms", - "ip": "::ffff:185.199.111.133", - "user": "tester", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15" -} -[2026-01-06T06:41:55.859Z] [ERROR] ❌ 작업자 수정 중 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 작업자 수정 중 오류가 발생했습니다\n at /usr/src/app/controllers/workerController.js:121:23\n at Object.update (/usr/src/app/models/workerModel.js:119:4)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "url": "/api/workers/7", - "method": "PUT", - "user": "김두수" -} -[2026-01-06T06:41:55.863Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "PUT", - "url": "/api/workers/7", - "statusCode": 500, - "duration": "8ms", - "ip": "::ffff:172.20.0.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36" -} -[2026-01-06T06:42:08.280Z] [ERROR] ❌ 작업자 수정 중 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 작업자 수정 중 오류가 발생했습니다\n at /usr/src/app/controllers/workerController.js:121:23\n at Object.update (/usr/src/app/models/workerModel.js:119:4)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "url": "/api/workers/7", - "method": "PUT", - "user": "김두수" -} -[2026-01-06T06:42:08.282Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "PUT", - "url": "/api/workers/7", - "statusCode": 500, - "duration": "5ms", - "ip": "::ffff:172.20.0.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36" -} -[2026-01-06T06:46:36.983Z] [ERROR] ❌ 작업자 수정 중 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 작업자 수정 중 오류가 발생했습니다\n at /usr/src/app/controllers/workerController.js:121:23\n at Object.update (/usr/src/app/models/workerModel.js:119:4)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "url": "/api/workers/7", - "method": "PUT", - "user": "김두수" -} -[2026-01-06T06:46:36.985Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "PUT", - "url": "/api/workers/7", - "statusCode": 500, - "duration": "7ms", - "ip": "::ffff:172.20.0.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36" -} -[2026-01-07T06:38:19.704Z] [ERROR] ❌ 작업자 수정 중 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 작업자 수정 중 오류가 발생했습니다\n at /usr/src/app/controllers/workerController.js:121:23\n at Object.update (/usr/src/app/models/workerModel.js:119:4)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "url": "/api/workers/7", - "method": "PUT", - "user": "김두수" -} -[2026-01-07T06:38:19.707Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "PUT", - "url": "/api/workers/7", - "statusCode": 500, - "duration": "7ms", - "ip": "::ffff:172.20.0.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36" -} -[2026-01-07T21:04:59.918Z] [ERROR] ❌ 작업자 수정 중 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 작업자 수정 중 오류가 발생했습니다\n at /usr/src/app/controllers/workerController.js:121:23\n at Object.update (/usr/src/app/models/workerModel.js:119:4)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "url": "/api/workers/7", - "method": "PUT", - "user": "김두수" -} -[2026-01-07T21:04:59.922Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "PUT", - "url": "/api/workers/7", - "statusCode": 500, - "duration": "13ms", - "ip": "::ffff:172.20.0.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36" -} -[2026-01-18T23:10:57.364Z] [ERROR] ❌ 작업자 수정 중 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 작업자 수정 중 오류가 발생했습니다\n at /usr/src/app/controllers/workerController.js:121:23\n at Object.update (/usr/src/app/models/workerModel.js:119:4)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "url": "/api/workers/7", - "method": "PUT", - "user": "김두수" -} -[2026-01-18T23:10:57.366Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "PUT", - "url": "/api/workers/7", - "statusCode": 500, - "duration": "7ms", - "ip": "::ffff:172.20.0.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:14:14.769Z] [ERROR] ❌ 작업자 수정 중 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 작업자 수정 중 오류가 발생했습니다\n at /usr/src/app/controllers/workerController.js:121:23\n at Object.update (/usr/src/app/models/workerModel.js:119:4)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "url": "/api/workers/7", - "method": "PUT", - "user": "김두수" -} -[2026-01-18T23:14:14.772Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "PUT", - "url": "/api/workers/7", - "statusCode": 500, - "duration": "7ms", - "ip": "::ffff:172.20.0.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:16:46.906Z] [ERROR] ❌ 작업자 수정 중 오류가 발생했습니다: Unknown column 'phone_number' in 'field list' - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 작업자 수정 중 오류가 발생했습니다: Unknown column 'phone_number' in 'field list'\n at /usr/src/app/controllers/workerController.js:129:16\n at Object.update (/usr/src/app/models/workerModel.js:116:5)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "url": "/api/workers/7", - "method": "PUT", - "user": "김두수" -} -[2026-01-18T23:16:46.908Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "PUT", - "url": "/api/workers/7", - "statusCode": 500, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:53.901Z] [ERROR] ❌ 월별 캘린더 데이터 조회 실패 - Context: { - "year": 2026, - "month": 1, - "error": "Table 'hyungi.monthly_summary' doesn't exist" -} -[2026-01-18T23:44:53.905Z] [ERROR] ❌ 월별 캘린더 데이터 조회 중 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 월별 캘린더 데이터 조회 중 오류가 발생했습니다\n at /usr/src/app/controllers/monthlyStatusController.js:80:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "url": "/api/monthly-status/calendar?year=2026&month=1", - "method": "GET", - "user": "anonymous" -} -[2026-01-18T23:44:53.906Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/monthly-status/calendar?year=2026&month=1", - "statusCode": 500, - "duration": "16ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:57.259Z] [ERROR] ❌ 월별 캘린더 데이터 조회 실패 - Context: { - "year": 2025, - "month": 12, - "error": "Table 'hyungi.monthly_summary' doesn't exist" -} -[2026-01-18T23:44:57.262Z] [ERROR] ❌ 월별 캘린더 데이터 조회 중 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 월별 캘린더 데이터 조회 중 오류가 발생했습니다\n at /usr/src/app/controllers/monthlyStatusController.js:80:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "url": "/api/monthly-status/calendar?year=2025&month=12", - "method": "GET", - "user": "anonymous" -} -[2026-01-18T23:44:57.264Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/monthly-status/calendar?year=2025&month=12", - "statusCode": 500, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:57.938Z] [ERROR] ❌ 월별 캘린더 데이터 조회 실패 - Context: { - "year": 2025, - "month": 11, - "error": "Table 'hyungi.monthly_summary' doesn't exist" -} -[2026-01-18T23:44:57.940Z] [ERROR] ❌ 월별 캘린더 데이터 조회 중 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 월별 캘린더 데이터 조회 중 오류가 발생했습니다\n at /usr/src/app/controllers/monthlyStatusController.js:80:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "url": "/api/monthly-status/calendar?year=2025&month=11", - "method": "GET", - "user": "anonymous" -} -[2026-01-18T23:44:57.943Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/monthly-status/calendar?year=2025&month=11", - "statusCode": 500, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:44:58.524Z] [ERROR] ❌ 월별 캘린더 데이터 조회 실패 - Context: { - "year": 2025, - "month": 10, - "error": "Table 'hyungi.monthly_summary' doesn't exist" -} -[2026-01-18T23:44:58.526Z] [ERROR] ❌ 월별 캘린더 데이터 조회 중 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 월별 캘린더 데이터 조회 중 오류가 발생했습니다\n at /usr/src/app/controllers/monthlyStatusController.js:80:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "url": "/api/monthly-status/calendar?year=2025&month=10", - "method": "GET", - "user": "anonymous" -} -[2026-01-18T23:44:58.529Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/monthly-status/calendar?year=2025&month=10", - "statusCode": 500, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:47:29.522Z] [ERROR] ❌ 월별 캘린더 데이터 조회 실패 - Context: { - "year": 2026, - "month": 1, - "error": "Table 'hyungi.monthly_summary' doesn't exist" -} -[2026-01-18T23:47:29.524Z] [ERROR] ❌ 월별 캘린더 데이터 조회 중 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 월별 캘린더 데이터 조회 중 오류가 발생했습니다\n at /usr/src/app/controllers/monthlyStatusController.js:80:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "url": "/api/monthly-status/calendar?year=2026&month=1", - "method": "GET", - "user": "anonymous" -} -[2026-01-18T23:47:29.525Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/monthly-status/calendar?year=2026&month=1", - "statusCode": 500, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-18T23:54:23.399Z] [ERROR] ❌ 월별 캘린더 데이터 조회 실패 - Context: { - "year": 2026, - "month": 1, - "error": "Table 'hyungi.monthly_summary' doesn't exist" -} -[2026-01-18T23:54:23.400Z] [ERROR] ❌ 월별 캘린더 데이터 조회 중 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 월별 캘린더 데이터 조회 중 오류가 발생했습니다\n at /usr/src/app/controllers/monthlyStatusController.js:80:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "url": "/api/monthly-status/calendar?year=2026&month=1", - "method": "GET", - "user": "anonymous" -} -[2026-01-18T23:54:23.402Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/monthly-status/calendar?year=2026&month=1", - "statusCode": 500, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T00:25:33.270Z] [ERROR] ❌ 사용자 목록 조회 실패 - Context: { - "error": "Unknown column 'phone' in 'field list'" -} -[2026-01-19T00:25:33.275Z] [ERROR] ❌ 사용자 목록을 조회하는데 실패했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 사용자 목록을 조회하는데 실패했습니다\n at /usr/src/app/controllers/userController.js:64:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "url": "/api/users", - "method": "GET", - "user": "hyungi" -} -[2026-01-19T00:25:33.276Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/users", - "statusCode": 500, - "duration": "45ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T00:28:22.901Z] [ERROR] ❌ 사용자 목록 조회 실패 - Context: { - "error": "Unknown column 'phone' in 'field list'" -} -[2026-01-19T00:28:22.903Z] [ERROR] ❌ 사용자 목록을 조회하는데 실패했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 사용자 목록을 조회하는데 실패했습니다\n at /usr/src/app/controllers/userController.js:64:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "url": "/api/users", - "method": "GET", - "user": "hyungi" -} -[2026-01-19T00:28:22.904Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/users", - "statusCode": 500, - "duration": "77ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T00:37:37.852Z] [ERROR] ❌ 사용자 목록 조회 실패 - Context: { - "error": "Unknown column 'phone' in 'field list'" -} -[2026-01-19T00:37:37.856Z] [ERROR] ❌ 사용자 목록을 조회하는데 실패했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 사용자 목록을 조회하는데 실패했습니다\n at /usr/src/app/controllers/userController.js:64:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "url": "/api/users", - "method": "GET", - "user": "hyungi" -} -[2026-01-19T00:37:37.860Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/users", - "statusCode": 500, - "duration": "38ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T00:50:26.248Z] [ERROR] ❌ 서버 오류가 발생했습니다. - Context: { - "code": "INTERNAL_ERROR", - "stack": "AppError: 서버 오류가 발생했습니다.\n at errorHandler (/usr/src/app/middlewares/errorHandler.js:51:13)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:71:5)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/src/app/node_modules/express/lib/router/index.js:280:10)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:67:12)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)", - "url": "/api/auth/login", - "method": "POST", - "user": "anonymous" -} -[2026-01-19T00:50:26.249Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 500, - "duration": "17ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-01-19T00:50:44.368Z] [ERROR] ❌ 서버 오류가 발생했습니다. - Context: { - "code": "INTERNAL_ERROR", - "stack": "AppError: 서버 오류가 발생했습니다.\n at errorHandler (/usr/src/app/middlewares/errorHandler.js:51:13)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:71:5)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/src/app/node_modules/express/lib/router/index.js:280:10)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:67:12)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)", - "url": "/api/auth/login", - "method": "POST", - "user": "anonymous" -} -[2026-01-19T00:50:44.372Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 500, - "duration": "11ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-01-19T00:51:02.688Z] [ERROR] ❌ 아이디 또는 비밀번호가 올바르지 않습니다. - Context: { - "code": "INTERNAL_ERROR", - "stack": "AppError: 아이디 또는 비밀번호가 올바르지 않습니다.\n at errorHandler (/usr/src/app/middlewares/errorHandler.js:51:13)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:71:5)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/src/app/node_modules/express/lib/router/index.js:280:10)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:67:12)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)", - "url": "/api/auth/login", - "method": "POST", - "user": "anonymous" -} -[2026-01-19T00:51:02.690Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 500, - "duration": "21ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-01-19T00:52:04.069Z] [ERROR] ❌ 아이디 또는 비밀번호가 올바르지 않습니다. - Context: { - "code": "INTERNAL_ERROR", - "stack": "AppError: 아이디 또는 비밀번호가 올바르지 않습니다.\n at errorHandler (/usr/src/app/middlewares/errorHandler.js:51:13)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:71:5)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/src/app/node_modules/express/lib/router/index.js:280:10)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:67:12)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)", - "url": "/api/auth/login", - "method": "POST", - "user": "anonymous" -} -[2026-01-19T00:52:04.071Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 500, - "duration": "101ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-01-19T00:52:09.791Z] [ERROR] ❌ 아이디 또는 비밀번호가 올바르지 않습니다. - Context: { - "code": "INTERNAL_ERROR", - "stack": "AppError: 아이디 또는 비밀번호가 올바르지 않습니다.\n at errorHandler (/usr/src/app/middlewares/errorHandler.js:51:13)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:71:5)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/src/app/node_modules/express/lib/router/index.js:280:10)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:67:12)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)", - "url": "/api/auth/login", - "method": "POST", - "user": "anonymous" -} -[2026-01-19T00:52:09.793Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 500, - "duration": "81ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-01-19T00:53:00.469Z] [ERROR] ❌ Unexpected token ! in JSON at position 44 - Context: { - "code": "INTERNAL_ERROR", - "stack": "AppError: Unexpected token ! in JSON at position 44\n at errorHandler (/usr/src/app/middlewares/errorHandler.js:51:13)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:71:5)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/src/app/node_modules/express/lib/router/index.js:280:10)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:67:12)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)", - "url": "/api/auth/login", - "method": "POST", - "user": "anonymous" -} -[2026-01-19T00:53:04.774Z] [ERROR] ❌ 아이디 또는 비밀번호가 올바르지 않습니다. - Context: { - "code": "INTERNAL_ERROR", - "stack": "AppError: 아이디 또는 비밀번호가 올바르지 않습니다.\n at errorHandler (/usr/src/app/middlewares/errorHandler.js:51:13)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:71:5)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/src/app/node_modules/express/lib/router/index.js:280:10)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:67:12)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)", - "url": "/api/auth/login", - "method": "POST", - "user": "anonymous" -} -[2026-01-19T00:53:04.775Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 500, - "duration": "103ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-01-19T00:54:23.251Z] [ERROR] ❌ 사용자 목록 조회 실패 - Context: { - "error": "Unknown column 'phone' in 'field list'" -} -[2026-01-19T00:54:23.252Z] [ERROR] ❌ 사용자 목록을 조회하는데 실패했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 사용자 목록을 조회하는데 실패했습니다\n at /usr/src/app/controllers/userController.js:64:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "url": "/api/users", - "method": "GET", - "user": "hyungi" -} -[2026-01-19T00:54:23.253Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/users", - "statusCode": 500, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T00:58:54.612Z] [ERROR] ❌ 사용자 목록 조회 실패 - Context: { - "error": "Unknown column 'phone' in 'field list'" -} -[2026-01-19T00:58:54.613Z] [ERROR] ❌ 사용자 목록을 조회하는데 실패했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 사용자 목록을 조회하는데 실패했습니다\n at /usr/src/app/controllers/userController.js:64:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "url": "/api/users", - "method": "GET", - "user": "hyungi" -} -[2026-01-19T00:58:54.615Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/users", - "statusCode": 500, - "duration": "17ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "curl/8.7.1" -} -[2026-01-19T00:59:30.534Z] [ERROR] ❌ 사용자 목록 조회 실패 - Context: { - "error": "Unknown column 'phone' in 'field list'" -} -[2026-01-19T00:59:30.536Z] [ERROR] ❌ 사용자 목록을 조회하는데 실패했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 사용자 목록을 조회하는데 실패했습니다\n at /usr/src/app/controllers/userController.js:64:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "url": "/api/users", - "method": "GET", - "user": "hyungi" -} -[2026-01-19T00:59:30.538Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/users", - "statusCode": 500, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "curl/8.7.1" -} -[2026-01-19T00:59:45.312Z] [ERROR] ❌ 사용자 목록 조회 실패 - Context: { - "error": "Unknown column 'phone' in 'field list'" -} -[2026-01-19T00:59:45.314Z] [ERROR] ❌ 사용자 목록을 조회하는데 실패했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 사용자 목록을 조회하는데 실패했습니다\n at /usr/src/app/controllers/userController.js:64:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "url": "/api/users", - "method": "GET", - "user": "hyungi" -} -[2026-01-19T00:59:45.316Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/users", - "statusCode": 500, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "curl/8.7.1" -} -[2026-01-19T01:00:44.331Z] [ERROR] ❌ 사용자 목록 조회 실패 - Context: { - "error": "Unknown column 'phone' in 'field list'" -} -[2026-01-19T01:00:44.331Z] [ERROR] ❌ 사용자 목록을 조회하는데 실패했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 사용자 목록을 조회하는데 실패했습니다\n at /usr/src/app/controllers/userController.js:64:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "url": "/api/users", - "method": "GET", - "user": "hyungi" -} -[2026-01-19T01:00:44.333Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/users", - "statusCode": 500, - "duration": "13ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "curl/8.7.1" -} -[2026-01-19T01:01:03.347Z] [ERROR] ❌ 사용자 목록 조회 실패 - Context: { - "error": "Unknown column 'phone' in 'field list'" -} -[2026-01-19T01:01:03.348Z] [ERROR] ❌ 사용자 목록을 조회하는데 실패했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 사용자 목록을 조회하는데 실패했습니다\n at /usr/src/app/controllers/userController.js:64:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "url": "/api/users", - "method": "GET", - "user": "hyungi" -} -[2026-01-19T01:01:03.350Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/users", - "statusCode": 500, - "duration": "12ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "curl/8.7.1" -} -[2026-01-19T01:01:09.933Z] [ERROR] ❌ 사용자 목록 조회 실패 - Context: { - "error": "Unknown column 'phone' in 'field list'" -} -[2026-01-19T01:01:09.935Z] [ERROR] ❌ 사용자 목록을 조회하는데 실패했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 사용자 목록을 조회하는데 실패했습니다\n at /usr/src/app/controllers/userController.js:64:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "url": "/api/users", - "method": "GET", - "user": "hyungi" -} -[2026-01-19T01:01:09.937Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/users", - "statusCode": 500, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "curl/8.7.1" -} -[2026-01-19T01:01:21.612Z] [ERROR] ❌ 사용자 목록 조회 실패 - Context: { - "error": "Unknown column 'phone' in 'field list'" -} -[2026-01-19T01:01:21.613Z] [ERROR] ❌ 사용자 목록을 조회하는데 실패했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 사용자 목록을 조회하는데 실패했습니다\n at /usr/src/app/controllers/userController.js:64:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "url": "/api/users", - "method": "GET", - "user": "hyungi" -} -[2026-01-19T01:01:21.614Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/users", - "statusCode": 500, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "curl/8.7.1" -} -[2026-01-19T01:05:36.550Z] [ERROR] ❌ 작업자 수정 중 오류가 발생했습니다: Unknown column 'show_in_work_reports' in 'field list' - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 작업자 수정 중 오류가 발생했습니다: Unknown column 'show_in_work_reports' in 'field list'\n at /usr/src/app/controllers/workerController.js:129:16\n at Object.update (/usr/src/app/models/workerModel.js:145:5)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "url": "/api/workers/7", - "method": "PUT", - "user": "hyungi" -} -[2026-01-19T01:05:36.555Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "PUT", - "url": "/api/workers/7", - "statusCode": 500, - "duration": "20ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T01:20:19.705Z] [ERROR] ❌ 작업자 수정 중 오류가 발생했습니다: Unknown column 'employment_status' in 'field list' - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 작업자 수정 중 오류가 발생했습니다: Unknown column 'employment_status' in 'field list'\n at /usr/src/app/controllers/workerController.js:129:16\n at Object.update (/usr/src/app/models/workerModel.js:145:5)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "url": "/api/workers/7", - "method": "PUT", - "user": "hyungi" -} -[2026-01-19T01:20:19.708Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "PUT", - "url": "/api/workers/7", - "statusCode": 500, - "duration": "11ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T01:28:00.203Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/users/me/attendance-records?year=2026&month=1", - "statusCode": 500, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "curl/8.7.1" -} -[2026-01-19T01:28:52.115Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/users/me/attendance-records?year=2026&month=1", - "statusCode": 500, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "curl/8.7.1" -} -[2026-01-19T01:29:45.341Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/users/me/vacation-balance?year=2026", - "statusCode": 500, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "curl/8.7.1" -} -[2026-01-19T01:29:45.481Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/users/me/monthly-stats?year=2026&month=1", - "statusCode": 500, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "curl/8.7.1" -} -[2026-01-19T01:37:53.595Z] [ERROR] ❌ 아이디 또는 비밀번호가 올바르지 않습니다. - Context: { - "code": "INTERNAL_ERROR", - "stack": "AppError: 아이디 또는 비밀번호가 올바르지 않습니다.\n at errorHandler (/usr/src/app/middlewares/errorHandler.js:51:13)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:71:5)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/src/app/node_modules/express/lib/router/index.js:280:10)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:67:12)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)", - "url": "/api/auth/login", - "method": "POST", - "user": "anonymous" -} -[2026-01-19T01:37:53.596Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 500, - "duration": "84ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-01-19T01:38:00.327Z] [ERROR] ❌ 아이디 또는 비밀번호가 올바르지 않습니다. - Context: { - "code": "INTERNAL_ERROR", - "stack": "AppError: 아이디 또는 비밀번호가 올바르지 않습니다.\n at errorHandler (/usr/src/app/middlewares/errorHandler.js:51:13)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:71:5)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/src/app/node_modules/express/lib/router/index.js:280:10)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:67:12)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)", - "url": "/api/auth/login", - "method": "POST", - "user": "anonymous" -} -[2026-01-19T01:38:00.328Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 500, - "duration": "84ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-01-19T01:39:52.592Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/users/me/vacation-balance?year=2026", - "statusCode": 500, - "duration": "18ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "curl/8.7.1" -} -[2026-01-19T01:41:03.451Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/users/me/vacation-balance?year=2026", - "statusCode": 500, - "duration": "16ms", - "ip": "::ffff:192.168.65.1", - "user": "김두수", - "userAgent": "curl/8.7.1" -} -[2026-01-19T01:47:58.618Z] [ERROR] ❌ 아이디 또는 비밀번호가 올바르지 않습니다. - Context: { - "code": "INTERNAL_ERROR", - "stack": "AppError: 아이디 또는 비밀번호가 올바르지 않습니다.\n at errorHandler (/usr/src/app/middlewares/errorHandler.js:51:13)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:71:5)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/src/app/node_modules/express/lib/router/index.js:280:10)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:67:12)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)", - "url": "/api/auth/login", - "method": "POST", - "user": "anonymous" -} -[2026-01-19T01:47:58.620Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 500, - "duration": "103ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T01:48:43.659Z] [ERROR] ❌ 아이디 또는 비밀번호가 올바르지 않습니다. - Context: { - "code": "INTERNAL_ERROR", - "stack": "AppError: 아이디 또는 비밀번호가 올바르지 않습니다.\n at errorHandler (/usr/src/app/middlewares/errorHandler.js:51:13)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:71:5)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/src/app/node_modules/express/lib/router/index.js:280:10)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:67:12)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)", - "url": "/api/auth/login", - "method": "POST", - "user": "anonymous" -} -[2026-01-19T01:48:43.661Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 500, - "duration": "84ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T01:50:49.683Z] [ERROR] ❌ 아이디 또는 비밀번호가 올바르지 않습니다. - Context: { - "code": "INTERNAL_ERROR", - "stack": "AppError: 아이디 또는 비밀번호가 올바르지 않습니다.\n at errorHandler (/usr/src/app/middlewares/errorHandler.js:51:13)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:71:5)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/src/app/node_modules/express/lib/router/index.js:280:10)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:67:12)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)", - "url": "/api/auth/login", - "method": "POST", - "user": "anonymous" -} -[2026-01-19T01:50:49.686Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 500, - "duration": "94ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T02:12:35.830Z] [ERROR] ❌ 아이디 또는 비밀번호가 올바르지 않습니다. - Context: { - "code": "INTERNAL_ERROR", - "stack": "AppError: 아이디 또는 비밀번호가 올바르지 않습니다.\n at errorHandler (/usr/src/app/middlewares/errorHandler.js:51:13)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:71:5)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/src/app/node_modules/express/lib/router/index.js:280:10)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:67:12)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)", - "url": "/api/auth/login", - "method": "POST", - "user": "anonymous" -} -[2026-01-19T02:12:35.832Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 500, - "duration": "90ms", - "ip": "::ffff:172.20.0.1", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-01-19T02:12:42.433Z] [ERROR] ❌ 아이디 또는 비밀번호가 올바르지 않습니다. - Context: { - "code": "INTERNAL_ERROR", - "stack": "AppError: 아이디 또는 비밀번호가 올바르지 않습니다.\n at errorHandler (/usr/src/app/middlewares/errorHandler.js:51:13)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:71:5)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/src/app/node_modules/express/lib/router/index.js:280:10)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:67:12)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)", - "url": "/api/auth/login", - "method": "POST", - "user": "anonymous" -} -[2026-01-19T02:12:42.434Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 500, - "duration": "86ms", - "ip": "::ffff:172.20.0.1", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-01-19T23:18:30.255Z] [ERROR] ❌ 아이디 또는 비밀번호가 올바르지 않습니다. - Context: { - "code": "INTERNAL_ERROR", - "stack": "AppError: 아이디 또는 비밀번호가 올바르지 않습니다.\n at errorHandler (/usr/src/app/middlewares/errorHandler.js:51:13)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:71:5)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/src/app/node_modules/express/lib/router/index.js:280:10)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:67:12)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)", - "url": "/api/auth/login", - "method": "POST", - "user": "anonymous" -} -[2026-01-19T23:18:30.257Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 500, - "duration": "82ms", - "ip": "::ffff:172.20.0.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:21:34.438Z] [ERROR] ❌ 아이디 또는 비밀번호가 올바르지 않습니다. - Context: { - "code": "INTERNAL_ERROR", - "stack": "AppError: 아이디 또는 비밀번호가 올바르지 않습니다.\n at errorHandler (/usr/src/app/middlewares/errorHandler.js:51:13)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:71:5)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/src/app/node_modules/express/lib/router/index.js:280:10)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:67:12)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)", - "url": "/api/auth/login", - "method": "POST", - "user": "anonymous" -} -[2026-01-19T23:21:34.439Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 500, - "duration": "72ms", - "ip": "::ffff:172.20.0.1", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-01-19T23:29:00.861Z] [ERROR] ❌ 월별 캘린더 데이터 조회 실패 - Context: { - "year": 2026, - "month": 1, - "error": "Table 'hyungi.monthly_summary' doesn't exist" -} -[2026-01-19T23:29:00.863Z] [ERROR] ❌ 월별 캘린더 데이터 조회 중 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 월별 캘린더 데이터 조회 중 오류가 발생했습니다\n at /usr/src/app/controllers/monthlyStatusController.js:80:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "url": "/api/monthly-status/calendar?year=2026&month=1", - "method": "GET", - "user": "anonymous" -} -[2026-01-19T23:29:00.864Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/monthly-status/calendar?year=2026&month=1", - "statusCode": 500, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:30:17.114Z] [ERROR] ❌ 월별 캘린더 데이터 조회 실패 - Context: { - "year": 2026, - "month": 1, - "error": "Table 'hyungi.monthly_summary' doesn't exist" -} -[2026-01-19T23:30:17.116Z] [ERROR] ❌ 월별 캘린더 데이터 조회 중 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 월별 캘린더 데이터 조회 중 오류가 발생했습니다\n at /usr/src/app/controllers/monthlyStatusController.js:80:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "url": "/api/monthly-status/calendar?year=2026&month=1", - "method": "GET", - "user": "anonymous" -} -[2026-01-19T23:30:17.118Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/monthly-status/calendar?year=2026&month=1", - "statusCode": 500, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:30:28.117Z] [ERROR] ❌ 월별 캘린더 데이터 조회 실패 - Context: { - "year": 2025, - "month": 12, - "error": "Table 'hyungi.monthly_summary' doesn't exist" -} -[2026-01-19T23:30:28.119Z] [ERROR] ❌ 월별 캘린더 데이터 조회 중 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 월별 캘린더 데이터 조회 중 오류가 발생했습니다\n at /usr/src/app/controllers/monthlyStatusController.js:80:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "url": "/api/monthly-status/calendar?year=2025&month=12", - "method": "GET", - "user": "anonymous" -} -[2026-01-19T23:30:28.121Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/monthly-status/calendar?year=2025&month=12", - "statusCode": 500, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:30:28.603Z] [ERROR] ❌ 월별 캘린더 데이터 조회 실패 - Context: { - "year": 2025, - "month": 11, - "error": "Table 'hyungi.monthly_summary' doesn't exist" -} -[2026-01-19T23:30:28.604Z] [ERROR] ❌ 월별 캘린더 데이터 조회 중 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 월별 캘린더 데이터 조회 중 오류가 발생했습니다\n at /usr/src/app/controllers/monthlyStatusController.js:80:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "url": "/api/monthly-status/calendar?year=2025&month=11", - "method": "GET", - "user": "anonymous" -} -[2026-01-19T23:30:28.606Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/monthly-status/calendar?year=2025&month=11", - "statusCode": 500, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:40:53.178Z] [ERROR] ❌ 월별 캘린더 데이터 조회 실패 - Context: { - "year": 2026, - "month": 1, - "error": "Table 'hyungi.monthly_summary' doesn't exist" -} -[2026-01-19T23:40:53.179Z] [ERROR] ❌ 월별 캘린더 데이터 조회 중 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 월별 캘린더 데이터 조회 중 오류가 발생했습니다\n at /usr/src/app/controllers/monthlyStatusController.js:80:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "url": "/api/monthly-status/calendar?year=2026&month=1", - "method": "GET", - "user": "anonymous" -} -[2026-01-19T23:40:53.182Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/monthly-status/calendar?year=2026&month=1", - "statusCode": 500, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:43:53.454Z] [ERROR] ❌ 월별 캘린더 데이터 조회 실패 - Context: { - "year": 2026, - "month": 1, - "error": "Table 'hyungi.monthly_summary' doesn't exist" -} -[2026-01-19T23:43:53.456Z] [ERROR] ❌ 월별 캘린더 데이터 조회 중 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 월별 캘린더 데이터 조회 중 오류가 발생했습니다\n at /usr/src/app/controllers/monthlyStatusController.js:80:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "url": "/api/monthly-status/calendar?year=2026&month=1", - "method": "GET", - "user": "anonymous" -} -[2026-01-19T23:43:53.457Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/monthly-status/calendar?year=2026&month=1", - "statusCode": 500, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:47:01.446Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/users/me/vacation-balance", - "statusCode": 500, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:47:01.483Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/users/me/work-reports?startDate=2026-01-12&endDate=2026-01-19", - "statusCode": 500, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:48:17.202Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/users/me/vacation-balance", - "statusCode": 500, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:48:17.223Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/users/me/work-reports?startDate=2026-01-12&endDate=2026-01-19", - "statusCode": 500, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:50:19.243Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/users/me/vacation-balance", - "statusCode": 500, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:50:19.268Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/users/me/work-reports?startDate=2026-01-12&endDate=2026-01-19", - "statusCode": 500, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:52:41.332Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/users/me/vacation-balance", - "statusCode": 500, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:52:41.368Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/users/me/work-reports?startDate=2026-01-12&endDate=2026-01-19", - "statusCode": 500, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:52:42.976Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/users/me/vacation-balance", - "statusCode": 500, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:52:42.993Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/users/me/work-reports?startDate=2026-01-12&endDate=2026-01-19", - "statusCode": 500, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:52:43.700Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/users/me/vacation-balance", - "statusCode": 500, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:52:43.716Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/users/me/work-reports?startDate=2026-01-12&endDate=2026-01-19", - "statusCode": 500, - "duration": "1ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:53:46.736Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/users/me/vacation-balance", - "statusCode": 500, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:53:46.771Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/users/me/work-reports?startDate=2026-01-12&endDate=2026-01-19", - "statusCode": 500, - "duration": "2ms", - "ip": "::ffff:192.168.65.1", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-19T23:55:13.327Z] [ERROR] ❌ 월별 캘린더 데이터 조회 실패 - Context: { - "year": 2026, - "month": 1, - "error": "Table 'hyungi.monthly_summary' doesn't exist" -} -[2026-01-19T23:55:13.328Z] [ERROR] ❌ 월별 캘린더 데이터 조회 중 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 월별 캘린더 데이터 조회 중 오류가 발생했습니다\n at /usr/src/app/controllers/monthlyStatusController.js:80:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "url": "/api/monthly-status/calendar?year=2026&month=1", - "method": "GET", - "user": "anonymous" -} -[2026-01-19T23:55:13.330Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/monthly-status/calendar?year=2026&month=1", - "statusCode": 500, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T04:55:58.676Z] [ERROR] ❌ 월별 캘린더 데이터 조회 실패 - Context: { - "year": 2026, - "month": 1, - "error": "Table 'hyungi.monthly_summary' doesn't exist" -} -[2026-01-20T04:55:58.678Z] [ERROR] ❌ 월별 캘린더 데이터 조회 중 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 월별 캘린더 데이터 조회 중 오류가 발생했습니다\n at /usr/src/app/controllers/monthlyStatusController.js:80:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "url": "/api/monthly-status/calendar?year=2026&month=1", - "method": "GET", - "user": "anonymous" -} -[2026-01-20T04:55:58.678Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/monthly-status/calendar?year=2026&month=1", - "statusCode": 500, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T04:57:39.387Z] [ERROR] ❌ 월별 캘린더 데이터 조회 실패 - Context: { - "year": 2026, - "month": 1, - "error": "Table 'hyungi.monthly_summary' doesn't exist" -} -[2026-01-20T04:57:39.388Z] [ERROR] ❌ 월별 캘린더 데이터 조회 중 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 월별 캘린더 데이터 조회 중 오류가 발생했습니다\n at /usr/src/app/controllers/monthlyStatusController.js:80:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "url": "/api/monthly-status/calendar?year=2026&month=1", - "method": "GET", - "user": "anonymous" -} -[2026-01-20T04:57:39.389Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/monthly-status/calendar?year=2026&month=1", - "statusCode": 500, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T04:59:08.034Z] [ERROR] ❌ 월별 캘린더 데이터 조회 실패 - Context: { - "year": 2026, - "month": 1, - "error": "Table 'hyungi.monthly_summary' doesn't exist" -} -[2026-01-20T04:59:08.035Z] [ERROR] ❌ 월별 캘린더 데이터 조회 중 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 월별 캘린더 데이터 조회 중 오류가 발생했습니다\n at /usr/src/app/controllers/monthlyStatusController.js:80:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "url": "/api/monthly-status/calendar?year=2026&month=1", - "method": "GET", - "user": "anonymous" -} -[2026-01-20T04:59:08.037Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/monthly-status/calendar?year=2026&month=1", - "statusCode": 500, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:05:15.969Z] [ERROR] ❌ 월별 캘린더 데이터 조회 실패 - Context: { - "year": 2026, - "month": 1, - "error": "Table 'hyungi.monthly_summary' doesn't exist" -} -[2026-01-20T05:05:15.970Z] [ERROR] ❌ 월별 캘린더 데이터 조회 중 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 월별 캘린더 데이터 조회 중 오류가 발생했습니다\n at /usr/src/app/controllers/monthlyStatusController.js:80:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "url": "/api/monthly-status/calendar?year=2026&month=1", - "method": "GET", - "user": "anonymous" -} -[2026-01-20T05:05:15.973Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/monthly-status/calendar?year=2026&month=1", - "statusCode": 500, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:07:42.078Z] [ERROR] ❌ 월별 캘린더 데이터 조회 실패 - Context: { - "year": 2026, - "month": 1, - "error": "Table 'hyungi.monthly_summary' doesn't exist" -} -[2026-01-20T05:07:42.080Z] [ERROR] ❌ 월별 캘린더 데이터 조회 중 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 월별 캘린더 데이터 조회 중 오류가 발생했습니다\n at /usr/src/app/controllers/monthlyStatusController.js:80:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "url": "/api/monthly-status/calendar?year=2026&month=1", - "method": "GET", - "user": "anonymous" -} -[2026-01-20T05:07:42.081Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/monthly-status/calendar?year=2026&month=1", - "statusCode": 500, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-20T05:55:21.464Z] [ERROR] ❌ 월별 캘린더 데이터 조회 실패 - Context: { - "year": 2026, - "month": 1, - "error": "Table 'hyungi.monthly_summary' doesn't exist" -} -[2026-01-20T05:55:21.466Z] [ERROR] ❌ 월별 캘린더 데이터 조회 중 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 월별 캘린더 데이터 조회 중 오류가 발생했습니다\n at /usr/src/app/controllers/monthlyStatusController.js:80:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "url": "/api/monthly-status/calendar?year=2026&month=1", - "method": "GET", - "user": "anonymous" -} -[2026-01-20T05:55:21.467Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/monthly-status/calendar?year=2026&month=1", - "statusCode": 500, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T03:31:02.900Z] [ERROR] ❌ 아이디 또는 비밀번호가 올바르지 않습니다. - Context: { - "code": "INTERNAL_ERROR", - "stack": "AppError: 아이디 또는 비밀번호가 올바르지 않습니다.\n at errorHandler (/usr/src/app/middlewares/errorHandler.js:51:13)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:71:5)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/src/app/node_modules/express/lib/router/index.js:280:10)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:67:12)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)", - "url": "/api/auth/login", - "method": "POST", - "user": "anonymous" -} -[2026-01-26T03:31:02.902Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 500, - "duration": "29ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-01-26T03:31:21.277Z] [ERROR] ❌ 아이디 또는 비밀번호가 올바르지 않습니다. - Context: { - "code": "INTERNAL_ERROR", - "stack": "AppError: 아이디 또는 비밀번호가 올바르지 않습니다.\n at errorHandler (/usr/src/app/middlewares/errorHandler.js:51:13)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:71:5)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/src/app/node_modules/express/lib/router/index.js:280:10)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:67:12)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)", - "url": "/api/auth/login", - "method": "POST", - "user": "anonymous" -} -[2026-01-26T03:31:21.278Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 500, - "duration": "75ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T03:36:01.423Z] [ERROR] ❌ 아이디 또는 비밀번호가 올바르지 않습니다. - Context: { - "code": "INTERNAL_ERROR", - "stack": "AppError: 아이디 또는 비밀번호가 올바르지 않습니다.\n at errorHandler (/usr/src/app/middlewares/errorHandler.js:51:13)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:71:5)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/src/app/node_modules/express/lib/router/index.js:280:10)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:67:12)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)", - "url": "/api/auth/login", - "method": "POST", - "user": "anonymous" -} -[2026-01-26T03:36:01.426Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 500, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-01-26T03:36:11.834Z] [ERROR] ❌ 아이디 또는 비밀번호가 올바르지 않습니다. - Context: { - "code": "INTERNAL_ERROR", - "stack": "AppError: 아이디 또는 비밀번호가 올바르지 않습니다.\n at errorHandler (/usr/src/app/middlewares/errorHandler.js:51:13)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:71:5)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/src/app/node_modules/express/lib/router/index.js:280:10)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:67:12)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)", - "url": "/api/auth/login", - "method": "POST", - "user": "anonymous" -} -[2026-01-26T03:36:11.835Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 500, - "duration": "87ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-01-26T04:06:20.534Z] [ERROR] ❌ 월별 캘린더 데이터 조회 실패 - Context: { - "year": 2026, - "month": 1, - "error": "Table 'hyungi.monthly_summary' doesn't exist" -} -[2026-01-26T04:06:20.536Z] [ERROR] ❌ 월별 캘린더 데이터 조회 중 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 월별 캘린더 데이터 조회 중 오류가 발생했습니다\n at /usr/src/app/controllers/monthlyStatusController.js:80:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "url": "/api/monthly-status/calendar?year=2026&month=1", - "method": "GET", - "user": "anonymous" -} -[2026-01-26T04:06:20.538Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/monthly-status/calendar?year=2026&month=1", - "statusCode": 500, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T06:09:58.909Z] [ERROR] ❌ 작업 목록 조회 중 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 작업 목록 조회 중 오류가 발생했습니다\n at /usr/src/app/controllers/taskController.js:52:23\n at Object.getAllTasks (/usr/src/app/models/taskModel.js:48:5)\n at rows (/usr/src/app/controllers/taskController.js:51:15)\n at new Promise ()\n at /usr/src/app/controllers/taskController.js:50:22\n at /usr/src/app/middlewares/errorHandler.js:86:21\n at Layer.handle [as handle_request] (/usr/src/app/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/src/app/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/src/app/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/src/app/node_modules/express/lib/router/layer.js:95:5)", - "url": "/api/tasks", - "method": "GET", - "user": "admin" -} -[2026-01-26T06:09:58.913Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/tasks", - "statusCode": 500, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T06:10:03.531Z] [ERROR] ❌ 작업 목록 조회 중 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 작업 목록 조회 중 오류가 발생했습니다\n at /usr/src/app/controllers/taskController.js:52:23\n at Object.getAllTasks (/usr/src/app/models/taskModel.js:48:5)\n at rows (/usr/src/app/controllers/taskController.js:51:15)\n at new Promise ()\n at /usr/src/app/controllers/taskController.js:50:22\n at /usr/src/app/middlewares/errorHandler.js:86:21\n at Layer.handle [as handle_request] (/usr/src/app/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/src/app/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/src/app/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/src/app/node_modules/express/lib/router/layer.js:95:5)", - "url": "/api/tasks", - "method": "GET", - "user": "admin" -} -[2026-01-26T06:10:03.535Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/tasks", - "statusCode": 500, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T06:11:22.958Z] [ERROR] ❌ 작업 목록 조회 중 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 작업 목록 조회 중 오류가 발생했습니다\n at /usr/src/app/controllers/taskController.js:52:23\n at Object.getAllTasks (/usr/src/app/models/taskModel.js:48:5)\n at rows (/usr/src/app/controllers/taskController.js:51:15)\n at new Promise ()\n at /usr/src/app/controllers/taskController.js:50:22\n at /usr/src/app/middlewares/errorHandler.js:86:21\n at Layer.handle [as handle_request] (/usr/src/app/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/src/app/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/src/app/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/src/app/node_modules/express/lib/router/layer.js:95:5)", - "url": "/api/tasks", - "method": "GET", - "user": "admin" -} -[2026-01-26T06:11:22.961Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/tasks", - "statusCode": 500, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "curl/8.7.1" -} -[2026-01-26T23:12:04.753Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-26", - "statusCode": 500, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:33:07.342Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/tbm/sessions/date/2026-01-26", - "statusCode": 500, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:38:44.930Z] [ERROR] ❌ Unexpected token ! in JSON at position 44 - Context: { - "code": "INTERNAL_ERROR", - "stack": "AppError: Unexpected token ! in JSON at position 44\n at errorHandler (/usr/src/app/middlewares/errorHandler.js:51:13)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:71:5)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/src/app/node_modules/express/lib/router/index.js:280:10)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:67:12)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)", - "url": "/api/auth/login", - "method": "POST", - "user": "anonymous" -} -[2026-01-26T23:56:23.074Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/tbm/sessions/1/team", - "statusCode": 500, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:56:23.822Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/tbm/sessions/1/team", - "statusCode": 500, - "duration": "11ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:56:25.480Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/tbm/sessions/1/team", - "statusCode": 500, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:59:22.812Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/tbm/sessions/1/team", - "statusCode": 500, - "duration": "10ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:59:42.308Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/tbm/sessions/1/team", - "statusCode": 500, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-26T23:59:43.607Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/tbm/sessions/1/team", - "statusCode": 500, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T00:10:56.317Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/tbm/sessions/1/team", - "statusCode": 500, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T00:10:58.780Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/tbm/sessions/1/team", - "statusCode": 500, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T00:11:00.068Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/tbm/sessions/1/team", - "statusCode": 500, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T02:12:44.079Z] [ERROR] ❌ 작업보고서 조회 실패 - Context: { - "error": "데이터베이스에서 작업 보고서를 조회하는 중 오류가 발생했습니다." -} -[2026-01-27T02:13:14.118Z] [ERROR] ❌ 페이지네이션 쿼리 실행 오류: getaddrinfo ENOTFOUND db - Context: { - "code": "INTERNAL_ERROR", - "stack": "AppError: 페이지네이션 쿼리 실행 오류: getaddrinfo ENOTFOUND db\n at errorHandler (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/middlewares/errorHandler.js:51:13)\n at Layer.handle_error (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/router/layer.js:71:5)\n at trim_prefix (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/router/index.js:326:13)\n at /Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/router/index.js:286:9\n at router.process_params (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/router/index.js:346:12)\n at next (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/router/index.js:280:10)\n at Layer.handle_error (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/router/layer.js:67:12)\n at trim_prefix (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/router/index.js:326:13)\n at /Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/router/index.js:286:9\n at router.process_params (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/router/index.js:346:12)", - "url": "/api/workers?limit=1000", - "method": "GET", - "user": "admin" -} -[2026-01-27T02:13:14.121Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/workers?limit=1000", - "statusCode": 500, - "duration": "47692ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T02:13:14.145Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 500, - "duration": "7ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T02:13:14.157Z] [ERROR] ❌ 작업보고서 조회 실패 - Context: { - "error": "데이터베이스에서 작업 보고서를 조회하는 중 오류가 발생했습니다." -} -[2026-01-27T02:18:52.779Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 500, - "duration": "45419ms", - "ip": "::1", - "user": "admin", - "userAgent": "curl/8.7.1" -} -[2026-01-27T02:25:40.934Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/tbm/sessions/incomplete-reports", - "statusCode": 500, - "duration": "32ms", - "ip": "::1", - "user": "admin", - "userAgent": "curl/8.7.1" -} -[2026-01-27T03:01:25.706Z] [ERROR] ❌ 처리되지 않은 예외 - Context: { - "error": "listen EADDRINUSE: address already in use :::20005", - "stack": "Error: listen EADDRINUSE: address already in use :::20005\n at Server.setupListenHandle [as _listen2] (node:net:1940:16)\n at listenInCluster (node:net:1997:12)\n at Server.listen (node:net:2102:7)\n at app.listen (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/application.js:635:24)\n at Object. (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/index.js:45:20)\n at Module._compile (node:internal/modules/cjs/loader:1692:14)\n at Object..js (node:internal/modules/cjs/loader:1824:10)\n at Module.load (node:internal/modules/cjs/loader:1427:32)\n at Module._load (node:internal/modules/cjs/loader:1250:12)\n at TracingChannel.traceSync (node:diagnostics_channel:322:14)" -} -[2026-01-27T04:39:28.760Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/daily-work-reports/from-tbm", - "statusCode": 500, - "duration": "17ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:41:14.613Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/daily-work-reports/from-tbm", - "statusCode": 500, - "duration": "1ms", - "ip": "::1", - "user": "admin", - "userAgent": "curl/8.7.1" -} -[2026-01-27T04:41:23.093Z] [ERROR] ❌ 월별 캘린더 데이터 조회 실패 - Context: { - "year": 2026, - "month": 1, - "error": "Table 'hyungi.monthly_summary' doesn't exist" -} -[2026-01-27T04:41:23.093Z] [ERROR] ❌ 월별 캘린더 데이터 조회 중 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 월별 캘린더 데이터 조회 중 오류가 발생했습니다\n at /Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/controllers/monthlyStatusController.js:80:11\n at process.processTicksAndRejections (node:internal/process/task_queues:105:5)", - "url": "/api/monthly-status/calendar?year=2026&month=1", - "method": "GET", - "user": "anonymous" -} -[2026-01-27T04:41:23.094Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/monthly-status/calendar?year=2026&month=1", - "statusCode": 500, - "duration": "10ms", - "ip": "::1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:42:15.452Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/daily-work-reports/from-tbm", - "statusCode": 500, - "duration": "2ms", - "ip": "::1", - "user": "admin", - "userAgent": "curl/8.7.1" -} -[2026-01-27T04:43:26.987Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/daily-work-reports/from-tbm", - "statusCode": 500, - "duration": "2ms", - "ip": "::1", - "user": "admin", - "userAgent": "curl/8.7.1" -} -[2026-01-27T04:43:47.140Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/daily-work-reports/from-tbm", - "statusCode": 500, - "duration": "3ms", - "ip": "::1", - "user": "admin", - "userAgent": "curl/8.7.1" -} -[2026-01-27T04:44:51.501Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/daily-work-reports/from-tbm", - "statusCode": 500, - "duration": "2ms", - "ip": "::1", - "user": "admin", - "userAgent": "curl/8.7.1" -} -[2026-01-27T04:48:37.471Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/daily-work-reports/from-tbm", - "statusCode": 500, - "duration": "4ms", - "ip": "::1", - "user": "admin", - "userAgent": "curl/8.7.1" -} -[2026-01-27T04:52:15.661Z] [ERROR] ❌ 월별 캘린더 데이터 조회 실패 - Context: { - "year": 2026, - "month": 1, - "error": "Table 'hyungi.monthly_summary' doesn't exist" -} -[2026-01-27T04:52:15.662Z] [ERROR] ❌ 월별 캘린더 데이터 조회 중 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 월별 캘린더 데이터 조회 중 오류가 발생했습니다\n at /Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/controllers/monthlyStatusController.js:80:11\n at process.processTicksAndRejections (node:internal/process/task_queues:105:5)", - "url": "/api/monthly-status/calendar?year=2026&month=1", - "method": "GET", - "user": "anonymous" -} -[2026-01-27T04:52:15.663Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/monthly-status/calendar?year=2026&month=1", - "statusCode": 500, - "duration": "6ms", - "ip": "::1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:52:32.371Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/daily-work-reports/from-tbm", - "statusCode": 500, - "duration": "1ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:53:37.689Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/daily-work-reports/from-tbm", - "statusCode": 500, - "duration": "1ms", - "ip": "::1", - "user": "admin", - "userAgent": "curl/8.7.1" -} -[2026-01-27T04:57:48.213Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/daily-work-reports/from-tbm", - "statusCode": 500, - "duration": "1ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:57:49.518Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/daily-work-reports/from-tbm", - "statusCode": 500, - "duration": "2ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:57:50.127Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/daily-work-reports/from-tbm", - "statusCode": 500, - "duration": "1ms", - "ip": "::1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T04:58:36.844Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/daily-work-reports/from-tbm", - "statusCode": 500, - "duration": "0ms", - "ip": "::1", - "user": "admin", - "userAgent": "curl/8.7.1" -} -[2026-01-27T05:01:11.850Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/daily-work-reports/from-tbm", - "statusCode": 500, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:01:12.947Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/daily-work-reports/from-tbm", - "statusCode": 500, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:01:24.564Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/daily-work-reports/from-tbm", - "statusCode": 500, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:01:41.243Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/daily-work-reports/from-tbm", - "statusCode": 500, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:03:50.194Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/daily-work-reports/from-tbm", - "statusCode": 500, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:05:22.452Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/daily-work-reports/from-tbm", - "statusCode": 500, - "duration": "7ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:07:33.693Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/daily-work-reports/from-tbm", - "statusCode": 500, - "duration": "11ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T05:36:26.482Z] [ERROR] ❌ 계정 생성 실패 - Context: { - "worker_id": 1, - "error": "knex is not a function" -} -[2026-01-27T05:36:31.623Z] [ERROR] ❌ 계정 생성 실패 - Context: { - "worker_id": 2, - "error": "knex is not a function" -} -[2026-01-27T05:36:53.547Z] [ERROR] ❌ 계정 생성 실패 - Context: { - "worker_id": 1, - "error": "knex is not a function" -} -[2026-01-27T05:41:22.459Z] [ERROR] ❌ 계정 생성 실패 - Context: { - "worker_id": 1, - "error": "knex is not a function" -} -[2026-01-27T05:48:12.778Z] [ERROR] ❌ 계정 생성 실패 - Context: { - "worker_id": 1, - "error": "knex is not a function" -} -[2026-01-27T05:50:41.374Z] [ERROR] ❌ 계정 생성 실패 - Context: { - "worker_id": 1, - "error": "knex is not a function" -} -[2026-01-27T05:50:57.609Z] [ERROR] ❌ 계정 생성 실패 - Context: { - "worker_id": 1, - "error": "knex is not a function" -} -[2026-01-27T05:54:05.814Z] [ERROR] ❌ 사용자 수정 실패 - Context: { - "userId": "1", - "error": "Unknown column 'phone' in 'field list'" -} -[2026-01-27T05:54:05.816Z] [ERROR] ❌ 사용자 정보를 수정하는데 실패했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 사용자 정보를 수정하는데 실패했습니다\n at /usr/src/app/controllers/userController.js:328:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "url": "/api/users/1", - "method": "PUT", - "user": "admin" -} -[2026-01-27T05:54:05.818Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "PUT", - "url": "/api/users/1", - "statusCode": 500, - "duration": "33ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T06:11:05.446Z] [ERROR] ❌ 사용자 수정 실패 - Context: { - "userId": "1", - "error": "Unknown column 'phone' in 'field list'" -} -[2026-01-27T06:11:05.448Z] [ERROR] ❌ 사용자 정보를 수정하는데 실패했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 사용자 정보를 수정하는데 실패했습니다\n at /usr/src/app/controllers/userController.js:328:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "url": "/api/users/1", - "method": "PUT", - "user": "admin" -} -[2026-01-27T06:11:05.450Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "PUT", - "url": "/api/users/1", - "statusCode": 500, - "duration": "14ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T06:17:33.290Z] [ERROR] ❌ 사용자 수정 실패 - Context: { - "userId": "1", - "error": "Unknown column 'phone' in 'field list'", - "stack": "Error: Unknown column 'phone' in 'field list'\n at PromisePool.execute (/usr/src/app/node_modules/mysql2/lib/promise/pool.js:54:22)\n at /usr/src/app/controllers/userController.js:332:14\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)" -} -[2026-01-27T06:17:33.292Z] [ERROR] ❌ 사용자 정보를 수정하는데 실패했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 사용자 정보를 수정하는데 실패했습니다\n at /usr/src/app/controllers/userController.js:351:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "url": "/api/users/1", - "method": "PUT", - "user": "admin" -} -[2026-01-27T06:17:33.293Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "PUT", - "url": "/api/users/1", - "statusCode": 500, - "duration": "17ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T06:19:22.037Z] [ERROR] ❌ 사용자 수정 실패 - Context: { - "userId": "1", - "error": "Unknown column 'phone' in 'field list'", - "stack": "Error: Unknown column 'phone' in 'field list'\n at PromisePool.execute (/usr/src/app/node_modules/mysql2/lib/promise/pool.js:54:22)\n at /usr/src/app/controllers/userController.js:332:14\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)" -} -[2026-01-27T06:19:22.039Z] [ERROR] ❌ 사용자 정보를 수정하는데 실패했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 사용자 정보를 수정하는데 실패했습니다\n at /usr/src/app/controllers/userController.js:351:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "url": "/api/users/1", - "method": "PUT", - "user": "admin" -} -[2026-01-27T06:19:22.040Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "PUT", - "url": "/api/users/1", - "statusCode": 500, - "duration": "21ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T06:19:29.015Z] [ERROR] ❌ 사용자 수정 실패 - Context: { - "userId": "27", - "error": "Unknown column 'phone' in 'field list'", - "stack": "Error: Unknown column 'phone' in 'field list'\n at PromisePool.execute (/usr/src/app/node_modules/mysql2/lib/promise/pool.js:54:22)\n at /usr/src/app/controllers/userController.js:332:14\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)" -} -[2026-01-27T06:19:29.016Z] [ERROR] ❌ 사용자 정보를 수정하는데 실패했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 사용자 정보를 수정하는데 실패했습니다\n at /usr/src/app/controllers/userController.js:351:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "url": "/api/users/27", - "method": "PUT", - "user": "admin" -} -[2026-01-27T06:19:29.017Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "PUT", - "url": "/api/users/27", - "statusCode": 500, - "duration": "13ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T06:19:44.431Z] [ERROR] ❌ 사용자 수정 실패 - Context: { - "userId": "1", - "error": "Unknown column 'phone' in 'field list'", - "stack": "Error: Unknown column 'phone' in 'field list'\n at PromisePool.execute (/usr/src/app/node_modules/mysql2/lib/promise/pool.js:54:22)\n at /usr/src/app/controllers/userController.js:332:14\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)" -} -[2026-01-27T06:19:44.431Z] [ERROR] ❌ 사용자 정보를 수정하는데 실패했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 사용자 정보를 수정하는데 실패했습니다\n at /usr/src/app/controllers/userController.js:351:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "url": "/api/users/1", - "method": "PUT", - "user": "admin" -} -[2026-01-27T06:19:44.432Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "PUT", - "url": "/api/users/1", - "statusCode": 500, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T06:32:44.259Z] [ERROR] ❌ 사용자 수정 실패 - Context: { - "userId": "1", - "error": "Unknown column 'phone' in 'field list'", - "stack": "Error: Unknown column 'phone' in 'field list'\n at PromisePool.execute (/usr/src/app/node_modules/mysql2/lib/promise/pool.js:54:22)\n at /usr/src/app/controllers/userController.js:332:14\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)" -} -[2026-01-27T06:32:44.261Z] [ERROR] ❌ 사용자 정보를 수정하는데 실패했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 사용자 정보를 수정하는데 실패했습니다\n at /usr/src/app/controllers/userController.js:351:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "url": "/api/users/1", - "method": "PUT", - "user": "admin" -} -[2026-01-27T06:32:44.263Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "PUT", - "url": "/api/users/1", - "statusCode": 500, - "duration": "16ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T06:40:46.749Z] [ERROR] ❌ 사용자 수정 실패 - Context: { - "userId": "1", - "error": "Unknown column 'phone' in 'field list'", - "stack": "Error: Unknown column 'phone' in 'field list'\n at PromisePool.execute (/usr/src/app/node_modules/mysql2/lib/promise/pool.js:54:22)\n at /usr/src/app/controllers/userController.js:332:14\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)" -} -[2026-01-27T06:40:46.752Z] [ERROR] ❌ 사용자 정보를 수정하는데 실패했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 사용자 정보를 수정하는데 실패했습니다\n at /usr/src/app/controllers/userController.js:351:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "url": "/api/users/1", - "method": "PUT", - "user": "admin" -} -[2026-01-27T06:40:46.753Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "PUT", - "url": "/api/users/1", - "statusCode": 500, - "duration": "25ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T06:41:03.563Z] [ERROR] ❌ 사용자 수정 실패 - Context: { - "userId": "27", - "error": "Unknown column 'phone' in 'field list'", - "stack": "Error: Unknown column 'phone' in 'field list'\n at PromisePool.execute (/usr/src/app/node_modules/mysql2/lib/promise/pool.js:54:22)\n at /usr/src/app/controllers/userController.js:332:14\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)" -} -[2026-01-27T06:41:03.565Z] [ERROR] ❌ 사용자 정보를 수정하는데 실패했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 사용자 정보를 수정하는데 실패했습니다\n at /usr/src/app/controllers/userController.js:351:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "url": "/api/users/27", - "method": "PUT", - "user": "admin" -} -[2026-01-27T06:41:03.566Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "PUT", - "url": "/api/users/27", - "statusCode": 500, - "duration": "12ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T06:44:42.019Z] [ERROR] ❌ 사용자 수정 실패 - Context: { - "userId": "27", - "error": "Unknown column 'phone' in 'field list'", - "stack": "Error: Unknown column 'phone' in 'field list'\n at PromisePool.execute (/usr/src/app/node_modules/mysql2/lib/promise/pool.js:54:22)\n at /usr/src/app/controllers/userController.js:332:14\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)" -} -[2026-01-27T06:44:42.019Z] [ERROR] ❌ 사용자 정보를 수정하는데 실패했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 사용자 정보를 수정하는데 실패했습니다\n at /usr/src/app/controllers/userController.js:351:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "url": "/api/users/27", - "method": "PUT", - "user": "admin" -} -[2026-01-27T06:44:42.020Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "PUT", - "url": "/api/users/27", - "statusCode": 500, - "duration": "11ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T06:45:16.052Z] [ERROR] ❌ 사용자 수정 실패 - Context: { - "userId": "27", - "error": "Unknown column 'phone' in 'field list'", - "stack": "Error: Unknown column 'phone' in 'field list'\n at PromisePool.execute (/usr/src/app/node_modules/mysql2/lib/promise/pool.js:54:22)\n at /usr/src/app/controllers/userController.js:332:14\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)" -} -[2026-01-27T06:45:16.053Z] [ERROR] ❌ 사용자 정보를 수정하는데 실패했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 사용자 정보를 수정하는데 실패했습니다\n at /usr/src/app/controllers/userController.js:351:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "url": "/api/users/27", - "method": "PUT", - "user": "admin" -} -[2026-01-27T06:45:16.054Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "PUT", - "url": "/api/users/27", - "statusCode": 500, - "duration": "15ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-27T06:48:27.655Z] [ERROR] ❌ 사용자 수정 실패 - Context: { - "userId": "27", - "error": "Unknown column 'phone' in 'field list'", - "stack": "Error: Unknown column 'phone' in 'field list'\n at PromisePool.execute (/usr/src/app/node_modules/mysql2/lib/promise/pool.js:54:22)\n at /usr/src/app/controllers/userController.js:332:14\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)" -} -[2026-01-27T06:48:27.656Z] [ERROR] ❌ 사용자 정보를 수정하는데 실패했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 사용자 정보를 수정하는데 실패했습니다\n at /usr/src/app/controllers/userController.js:351:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "url": "/api/users/27", - "method": "PUT", - "user": "admin" -} -[2026-01-27T06:48:27.662Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "PUT", - "url": "/api/users/27", - "statusCode": 500, - "duration": "15ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "curl/8.7.1" -} -[2026-01-27T22:54:43.976Z] [ERROR] ❌ 사용자 페이지 권한 조회 실패 - Context: { - "userId": "27", - "error": "Unknown column 'p.is_active' in 'where clause'" -} -[2026-01-27T22:54:43.977Z] [ERROR] ❌ 페이지 권한을 조회하는데 실패했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 페이지 권한을 조회하는데 실패했습니다\n at /usr/src/app/controllers/userController.js:527:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "url": "/api/users/27/page-access", - "method": "GET", - "user": "admin" -} -[2026-01-27T22:54:43.977Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/users/27/page-access", - "statusCode": 500, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-28T06:37:48.873Z] [ERROR] ❌ 휴가 유형 목록 조회 실패 - Context: { - "error": "Unknown column 'hours_deduction' in 'field list'" -} -[2026-01-28T06:37:48.876Z] [ERROR] ❌ 휴가 유형 목록 조회 중 데이터베이스 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 휴가 유형 목록 조회 중 데이터베이스 오류가 발생했습니다\n at Object.getVacationTypesService (/usr/src/app/services/attendanceService.js:201:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:116:16", - "url": "/api/attendance/vacation-types", - "method": "GET", - "user": "admin" -} -[2026-01-28T06:37:48.877Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/attendance/vacation-types", - "statusCode": 500, - "duration": "12ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T02:25:49.721Z] [ERROR] ❌ 출근 체크 목록 조회 실패 - Context: { - "date": "2026-01-29", - "error": "Unknown column 'vt.name' in 'field list'" -} -[2026-01-29T02:25:49.723Z] [ERROR] ❌ 출근 체크 목록 조회 중 데이터베이스 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 출근 체크 목록 조회 중 데이터베이스 오류가 발생했습니다\n at Object.getCheckinListService (/usr/src/app/services/attendanceService.js:270:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:162:16", - "url": "/api/attendance/checkin-list?date=2026-01-29", - "method": "GET", - "user": "admin" -} -[2026-01-29T02:25:49.724Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/attendance/checkin-list?date=2026-01-29", - "statusCode": 500, - "duration": "5ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T03:35:41.189Z] [ERROR] ❌ 처리되지 않은 Promise 거부 - Context: { - "reason": {}, - "promise": {} -} -[2026-01-29T04:13:53.289Z] [ERROR] ❌ 휴가 유형 목록 조회 실패 - Context: { - "error": "Unknown column 'hours_deduction' in 'field list'" -} -[2026-01-29T04:13:53.293Z] [ERROR] ❌ 휴가 유형 목록 조회 중 데이터베이스 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 휴가 유형 목록 조회 중 데이터베이스 오류가 발생했습니다\n at Object.getVacationTypesService (/usr/src/app/services/attendanceService.js:201:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:116:16", - "url": "/api/attendance/vacation-types", - "method": "GET", - "user": "admin" -} -[2026-01-29T04:13:53.295Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/attendance/vacation-types", - "statusCode": 500, - "duration": "15ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T04:15:03.731Z] [ERROR] ❌ 휴가 유형 목록 조회 실패 - Context: { - "error": "Unknown column 'hours_deduction' in 'field list'" -} -[2026-01-29T04:15:03.734Z] [ERROR] ❌ 휴가 유형 목록 조회 중 데이터베이스 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 휴가 유형 목록 조회 중 데이터베이스 오류가 발생했습니다\n at Object.getVacationTypesService (/usr/src/app/services/attendanceService.js:201:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:116:16", - "url": "/api/attendance/vacation-types", - "method": "GET", - "user": "admin" -} -[2026-01-29T04:15:03.735Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/attendance/vacation-types", - "statusCode": 500, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "curl/8.7.1" -} -[2026-01-29T04:16:36.038Z] [ERROR] ❌ 처리되지 않은 Promise 거부 - Context: { - "reason": {}, - "promise": {} -} -[2026-01-29T04:36:18.565Z] [ERROR] ❌ 처리되지 않은 Promise 거부 - Context: { - "reason": {}, - "promise": {} -} -[2026-01-29T04:40:12.488Z] [ERROR] ❌ 처리되지 않은 Promise 거부 - Context: { - "reason": {}, - "promise": {} -} -[2026-01-29T04:40:28.482Z] [ERROR] ❌ 처리되지 않은 Promise 거부 - Context: { - "reason": {}, - "promise": {} -} -[2026-01-29T05:41:03.976Z] [ERROR] ❌ Bad escaped character in JSON at position 42 (line 1 column 43) - Context: { - "code": "INTERNAL_ERROR", - "stack": "AppError: Bad escaped character in JSON at position 42 (line 1 column 43)\n at errorHandler (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/middlewares/errorHandler.js:51:13)\n at Layer.handle_error (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/router/layer.js:71:5)\n at trim_prefix (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/router/index.js:326:13)\n at /Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/router/index.js:286:9\n at router.process_params (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/router/index.js:346:12)\n at next (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/router/index.js:280:10)\n at Layer.handle_error (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/router/layer.js:67:12)\n at trim_prefix (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/router/index.js:326:13)\n at /Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/router/index.js:286:9\n at router.process_params (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/router/index.js:346:12)", - "url": "/api/auth/login", - "method": "POST", - "user": "anonymous" -} -[2026-01-29T06:07:27.937Z] [ERROR] ❌ 처리되지 않은 예외 - Context: { - "error": "listen EADDRINUSE: address already in use :::3005", - "stack": "Error: listen EADDRINUSE: address already in use :::3005\n at Server.setupListenHandle [as _listen2] (node:net:1940:16)\n at listenInCluster (node:net:1997:12)\n at Server.listen (node:net:2102:7)\n at app.listen (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/application.js:635:24)\n at Object. (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/index.js:45:20)\n at Module._compile (node:internal/modules/cjs/loader:1692:14)\n at Object..js (node:internal/modules/cjs/loader:1824:10)\n at Module.load (node:internal/modules/cjs/loader:1427:32)\n at Module._load (node:internal/modules/cjs/loader:1250:12)\n at Object. (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/pm2/lib/ProcessContainerFork.js:33:23)" -} -[2026-01-29T06:07:28.229Z] [ERROR] ❌ 처리되지 않은 예외 - Context: { - "error": "listen EADDRINUSE: address already in use :::3005", - "stack": "Error: listen EADDRINUSE: address already in use :::3005\n at Server.setupListenHandle [as _listen2] (node:net:1940:16)\n at listenInCluster (node:net:1997:12)\n at Server.listen (node:net:2102:7)\n at app.listen (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/application.js:635:24)\n at Object. (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/index.js:45:20)\n at Module._compile (node:internal/modules/cjs/loader:1692:14)\n at Object..js (node:internal/modules/cjs/loader:1824:10)\n at Module.load (node:internal/modules/cjs/loader:1427:32)\n at Module._load (node:internal/modules/cjs/loader:1250:12)\n at Object. (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/pm2/lib/ProcessContainerFork.js:33:23)" -} -[2026-01-29T06:07:28.509Z] [ERROR] ❌ 처리되지 않은 예외 - Context: { - "error": "listen EADDRINUSE: address already in use :::3005", - "stack": "Error: listen EADDRINUSE: address already in use :::3005\n at Server.setupListenHandle [as _listen2] (node:net:1940:16)\n at listenInCluster (node:net:1997:12)\n at Server.listen (node:net:2102:7)\n at app.listen (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/application.js:635:24)\n at Object. (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/index.js:45:20)\n at Module._compile (node:internal/modules/cjs/loader:1692:14)\n at Object..js (node:internal/modules/cjs/loader:1824:10)\n at Module.load (node:internal/modules/cjs/loader:1427:32)\n at Module._load (node:internal/modules/cjs/loader:1250:12)\n at Object. (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/pm2/lib/ProcessContainerFork.js:33:23)" -} -[2026-01-29T06:07:28.803Z] [ERROR] ❌ 처리되지 않은 예외 - Context: { - "error": "listen EADDRINUSE: address already in use :::3005", - "stack": "Error: listen EADDRINUSE: address already in use :::3005\n at Server.setupListenHandle [as _listen2] (node:net:1940:16)\n at listenInCluster (node:net:1997:12)\n at Server.listen (node:net:2102:7)\n at app.listen (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/application.js:635:24)\n at Object. (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/index.js:45:20)\n at Module._compile (node:internal/modules/cjs/loader:1692:14)\n at Object..js (node:internal/modules/cjs/loader:1824:10)\n at Module.load (node:internal/modules/cjs/loader:1427:32)\n at Module._load (node:internal/modules/cjs/loader:1250:12)\n at Object. (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/pm2/lib/ProcessContainerFork.js:33:23)" -} -[2026-01-29T06:07:29.098Z] [ERROR] ❌ 처리되지 않은 예외 - Context: { - "error": "listen EADDRINUSE: address already in use :::3005", - "stack": "Error: listen EADDRINUSE: address already in use :::3005\n at Server.setupListenHandle [as _listen2] (node:net:1940:16)\n at listenInCluster (node:net:1997:12)\n at Server.listen (node:net:2102:7)\n at app.listen (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/application.js:635:24)\n at Object. (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/index.js:45:20)\n at Module._compile (node:internal/modules/cjs/loader:1692:14)\n at Object..js (node:internal/modules/cjs/loader:1824:10)\n at Module.load (node:internal/modules/cjs/loader:1427:32)\n at Module._load (node:internal/modules/cjs/loader:1250:12)\n at Object. (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/pm2/lib/ProcessContainerFork.js:33:23)" -} -[2026-01-29T06:07:29.389Z] [ERROR] ❌ 처리되지 않은 예외 - Context: { - "error": "listen EADDRINUSE: address already in use :::3005", - "stack": "Error: listen EADDRINUSE: address already in use :::3005\n at Server.setupListenHandle [as _listen2] (node:net:1940:16)\n at listenInCluster (node:net:1997:12)\n at Server.listen (node:net:2102:7)\n at app.listen (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/application.js:635:24)\n at Object. (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/index.js:45:20)\n at Module._compile (node:internal/modules/cjs/loader:1692:14)\n at Object..js (node:internal/modules/cjs/loader:1824:10)\n at Module.load (node:internal/modules/cjs/loader:1427:32)\n at Module._load (node:internal/modules/cjs/loader:1250:12)\n at Object. (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/pm2/lib/ProcessContainerFork.js:33:23)" -} -[2026-01-29T06:07:29.669Z] [ERROR] ❌ 처리되지 않은 예외 - Context: { - "error": "listen EADDRINUSE: address already in use :::3005", - "stack": "Error: listen EADDRINUSE: address already in use :::3005\n at Server.setupListenHandle [as _listen2] (node:net:1940:16)\n at listenInCluster (node:net:1997:12)\n at Server.listen (node:net:2102:7)\n at app.listen (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/application.js:635:24)\n at Object. (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/index.js:45:20)\n at Module._compile (node:internal/modules/cjs/loader:1692:14)\n at Object..js (node:internal/modules/cjs/loader:1824:10)\n at Module.load (node:internal/modules/cjs/loader:1427:32)\n at Module._load (node:internal/modules/cjs/loader:1250:12)\n at Object. (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/pm2/lib/ProcessContainerFork.js:33:23)" -} -[2026-01-29T06:07:29.984Z] [ERROR] ❌ 처리되지 않은 예외 - Context: { - "error": "listen EADDRINUSE: address already in use :::3005", - "stack": "Error: listen EADDRINUSE: address already in use :::3005\n at Server.setupListenHandle [as _listen2] (node:net:1940:16)\n at listenInCluster (node:net:1997:12)\n at Server.listen (node:net:2102:7)\n at app.listen (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/application.js:635:24)\n at Object. (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/index.js:45:20)\n at Module._compile (node:internal/modules/cjs/loader:1692:14)\n at Object..js (node:internal/modules/cjs/loader:1824:10)\n at Module.load (node:internal/modules/cjs/loader:1427:32)\n at Module._load (node:internal/modules/cjs/loader:1250:12)\n at Object. (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/pm2/lib/ProcessContainerFork.js:33:23)" -} -[2026-01-29T06:07:30.292Z] [ERROR] ❌ 처리되지 않은 예외 - Context: { - "error": "listen EADDRINUSE: address already in use :::3005", - "stack": "Error: listen EADDRINUSE: address already in use :::3005\n at Server.setupListenHandle [as _listen2] (node:net:1940:16)\n at listenInCluster (node:net:1997:12)\n at Server.listen (node:net:2102:7)\n at app.listen (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/application.js:635:24)\n at Object. (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/index.js:45:20)\n at Module._compile (node:internal/modules/cjs/loader:1692:14)\n at Object..js (node:internal/modules/cjs/loader:1824:10)\n at Module.load (node:internal/modules/cjs/loader:1427:32)\n at Module._load (node:internal/modules/cjs/loader:1250:12)\n at Object. (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/pm2/lib/ProcessContainerFork.js:33:23)" -} -[2026-01-29T06:07:30.636Z] [ERROR] ❌ 처리되지 않은 예외 - Context: { - "error": "listen EADDRINUSE: address already in use :::3005", - "stack": "Error: listen EADDRINUSE: address already in use :::3005\n at Server.setupListenHandle [as _listen2] (node:net:1940:16)\n at listenInCluster (node:net:1997:12)\n at Server.listen (node:net:2102:7)\n at app.listen (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/application.js:635:24)\n at Object. (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/index.js:45:20)\n at Module._compile (node:internal/modules/cjs/loader:1692:14)\n at Object..js (node:internal/modules/cjs/loader:1824:10)\n at Module.load (node:internal/modules/cjs/loader:1427:32)\n at Module._load (node:internal/modules/cjs/loader:1250:12)\n at Object. (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/pm2/lib/ProcessContainerFork.js:33:23)" -} -[2026-01-29T06:07:30.936Z] [ERROR] ❌ 처리되지 않은 예외 - Context: { - "error": "listen EADDRINUSE: address already in use :::3005", - "stack": "Error: listen EADDRINUSE: address already in use :::3005\n at Server.setupListenHandle [as _listen2] (node:net:1940:16)\n at listenInCluster (node:net:1997:12)\n at Server.listen (node:net:2102:7)\n at app.listen (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/application.js:635:24)\n at Object. (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/index.js:45:20)\n at Module._compile (node:internal/modules/cjs/loader:1692:14)\n at Object..js (node:internal/modules/cjs/loader:1824:10)\n at Module.load (node:internal/modules/cjs/loader:1427:32)\n at Module._load (node:internal/modules/cjs/loader:1250:12)\n at Object. (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/pm2/lib/ProcessContainerFork.js:33:23)" -} -[2026-01-29T06:07:31.349Z] [ERROR] ❌ 처리되지 않은 예외 - Context: { - "error": "listen EADDRINUSE: address already in use :::3005", - "stack": "Error: listen EADDRINUSE: address already in use :::3005\n at Server.setupListenHandle [as _listen2] (node:net:1940:16)\n at listenInCluster (node:net:1997:12)\n at Server.listen (node:net:2102:7)\n at app.listen (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/application.js:635:24)\n at Object. (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/index.js:45:20)\n at Module._compile (node:internal/modules/cjs/loader:1692:14)\n at Object..js (node:internal/modules/cjs/loader:1824:10)\n at Module.load (node:internal/modules/cjs/loader:1427:32)\n at Module._load (node:internal/modules/cjs/loader:1250:12)\n at Object. (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/pm2/lib/ProcessContainerFork.js:33:23)" -} -[2026-01-29T06:07:31.682Z] [ERROR] ❌ 처리되지 않은 예외 - Context: { - "error": "listen EADDRINUSE: address already in use :::3005", - "stack": "Error: listen EADDRINUSE: address already in use :::3005\n at Server.setupListenHandle [as _listen2] (node:net:1940:16)\n at listenInCluster (node:net:1997:12)\n at Server.listen (node:net:2102:7)\n at app.listen (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/application.js:635:24)\n at Object. (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/index.js:45:20)\n at Module._compile (node:internal/modules/cjs/loader:1692:14)\n at Object..js (node:internal/modules/cjs/loader:1824:10)\n at Module.load (node:internal/modules/cjs/loader:1427:32)\n at Module._load (node:internal/modules/cjs/loader:1250:12)\n at Object. (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/pm2/lib/ProcessContainerFork.js:33:23)" -} -[2026-01-29T06:07:31.989Z] [ERROR] ❌ 처리되지 않은 예외 - Context: { - "error": "listen EADDRINUSE: address already in use :::3005", - "stack": "Error: listen EADDRINUSE: address already in use :::3005\n at Server.setupListenHandle [as _listen2] (node:net:1940:16)\n at listenInCluster (node:net:1997:12)\n at Server.listen (node:net:2102:7)\n at app.listen (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/application.js:635:24)\n at Object. (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/index.js:45:20)\n at Module._compile (node:internal/modules/cjs/loader:1692:14)\n at Object..js (node:internal/modules/cjs/loader:1824:10)\n at Module.load (node:internal/modules/cjs/loader:1427:32)\n at Module._load (node:internal/modules/cjs/loader:1250:12)\n at Object. (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/pm2/lib/ProcessContainerFork.js:33:23)" -} -[2026-01-29T06:07:32.279Z] [ERROR] ❌ 처리되지 않은 예외 - Context: { - "error": "listen EADDRINUSE: address already in use :::3005", - "stack": "Error: listen EADDRINUSE: address already in use :::3005\n at Server.setupListenHandle [as _listen2] (node:net:1940:16)\n at listenInCluster (node:net:1997:12)\n at Server.listen (node:net:2102:7)\n at app.listen (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/application.js:635:24)\n at Object. (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/index.js:45:20)\n at Module._compile (node:internal/modules/cjs/loader:1692:14)\n at Object..js (node:internal/modules/cjs/loader:1824:10)\n at Module.load (node:internal/modules/cjs/loader:1427:32)\n at Module._load (node:internal/modules/cjs/loader:1250:12)\n at Object. (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/pm2/lib/ProcessContainerFork.js:33:23)" -} -[2026-01-29T06:07:32.593Z] [ERROR] ❌ 처리되지 않은 예외 - Context: { - "error": "listen EADDRINUSE: address already in use :::3005", - "stack": "Error: listen EADDRINUSE: address already in use :::3005\n at Server.setupListenHandle [as _listen2] (node:net:1940:16)\n at listenInCluster (node:net:1997:12)\n at Server.listen (node:net:2102:7)\n at app.listen (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/application.js:635:24)\n at Object. (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/index.js:45:20)\n at Module._compile (node:internal/modules/cjs/loader:1692:14)\n at Object..js (node:internal/modules/cjs/loader:1824:10)\n at Module.load (node:internal/modules/cjs/loader:1427:32)\n at Module._load (node:internal/modules/cjs/loader:1250:12)\n at Object. (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/pm2/lib/ProcessContainerFork.js:33:23)" -} -[2026-01-29T06:36:59.736Z] [ERROR] ❌ 월별 캘린더 데이터 조회 실패 - Context: { - "year": 2026, - "month": 1, - "error": "Table 'hyungi.monthly_summary' doesn't exist" -} -[2026-01-29T06:36:59.737Z] [ERROR] ❌ 월별 캘린더 데이터 조회 중 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 월별 캘린더 데이터 조회 중 오류가 발생했습니다\n at /usr/src/app/controllers/monthlyStatusController.js:80:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "url": "/api/monthly-status/calendar?year=2026&month=1", - "method": "GET", - "user": "anonymous" -} -[2026-01-29T06:36:59.737Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/monthly-status/calendar?year=2026&month=1", - "statusCode": 500, - "duration": "6ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-01-29T06:38:21.888Z] [ERROR] ❌ 월별 캘린더 데이터 조회 실패 - Context: { - "year": 2026, - "month": 1, - "error": "Table 'hyungi.monthly_summary' doesn't exist" -} -[2026-01-29T06:38:21.890Z] [ERROR] ❌ 월별 캘린더 데이터 조회 중 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 월별 캘린더 데이터 조회 중 오류가 발생했습니다\n at /usr/src/app/controllers/monthlyStatusController.js:80:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "url": "/api/monthly-status/calendar?year=2026&month=1", - "method": "GET", - "user": "anonymous" -} -[2026-01-29T06:38:21.891Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/monthly-status/calendar?year=2026&month=1", - "statusCode": 500, - "duration": "9ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:31:17.596Z] [ERROR] ❌ 사용자 페이지 권한 조회 실패 - Context: { - "userId": "27", - "error": "Unknown column 'p.is_active' in 'where clause'" -} -[2026-02-02T00:31:17.599Z] [ERROR] ❌ 페이지 권한을 조회하는데 실패했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 페이지 권한을 조회하는데 실패했습니다\n at /usr/src/app/controllers/userController.js:527:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "url": "/api/users/27/page-access", - "method": "GET", - "user": "admin" -} -[2026-02-02T00:31:17.601Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/users/27/page-access", - "statusCode": 500, - "duration": "13ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:37:03.225Z] [ERROR] ❌ 사용자 페이지 권한 조회 실패 - Context: { - "userId": "27", - "error": "Unknown column 'p.is_active' in 'where clause'" -} -[2026-02-02T00:37:03.226Z] [ERROR] ❌ 페이지 권한을 조회하는데 실패했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 페이지 권한을 조회하는데 실패했습니다\n at /usr/src/app/controllers/userController.js:527:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "url": "/api/users/27/page-access", - "method": "GET", - "user": "admin" -} -[2026-02-02T00:37:03.227Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/users/27/page-access", - "statusCode": 500, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:37:26.050Z] [ERROR] ❌ 사용자 수정 실패 - Context: { - "userId": "27", - "error": "Unknown column 'phone' in 'field list'", - "stack": "Error: Unknown column 'phone' in 'field list'\n at PromisePool.execute (/usr/src/app/node_modules/mysql2/lib/promise/pool.js:54:22)\n at /usr/src/app/controllers/userController.js:332:14\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)" -} -[2026-02-02T00:37:26.052Z] [ERROR] ❌ 사용자 정보를 수정하는데 실패했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 사용자 정보를 수정하는데 실패했습니다\n at /usr/src/app/controllers/userController.js:351:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "url": "/api/users/27", - "method": "PUT", - "user": "admin" -} -[2026-02-02T00:37:26.054Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "PUT", - "url": "/api/users/27", - "statusCode": 500, - "duration": "17ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T00:58:06.586Z] [ERROR] ❌ 사용자 페이지 권한 업데이트 실패 - Context: { - "userId": "27", - "error": "Duplicate entry '27-12' for key 'PRIMARY'" -} -[2026-02-02T00:58:06.588Z] [ERROR] ❌ 페이지 권한을 업데이트하는데 실패했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 페이지 권한을 업데이트하는데 실패했습니다\n at /usr/src/app/controllers/userController.js:590:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "url": "/api/users/27/page-access", - "method": "PUT", - "user": "admin" -} -[2026-02-02T00:58:06.590Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "PUT", - "url": "/api/users/27/page-access", - "statusCode": 500, - "duration": "18ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:17:22.550Z] [ERROR] ❌ 월별 캘린더 데이터 조회 실패 - Context: { - "year": 2026, - "month": 2, - "error": "Table 'hyungi.monthly_summary' doesn't exist" -} -[2026-02-02T01:17:22.555Z] [ERROR] ❌ 월별 캘린더 데이터 조회 중 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 월별 캘린더 데이터 조회 중 오류가 발생했습니다\n at /usr/src/app/controllers/monthlyStatusController.js:80:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "url": "/api/monthly-status/calendar?year=2026&month=2", - "method": "GET", - "user": "anonymous" -} -[2026-02-02T01:17:22.557Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/monthly-status/calendar?year=2026&month=2", - "statusCode": 500, - "duration": "18ms", - "ip": "::ffff:192.168.65.1", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T01:55:18.370Z] [ERROR] ❌ 서버 오류가 발생했습니다. - Context: { - "code": "INTERNAL_ERROR", - "stack": "AppError: 서버 오류가 발생했습니다.\n at errorHandler (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/middlewares/errorHandler.js:51:13)\n at Layer.handle_error (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/router/layer.js:71:5)\n at trim_prefix (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/router/index.js:326:13)\n at /Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/router/index.js:286:9\n at router.process_params (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/router/index.js:346:12)\n at next (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/router/index.js:280:10)\n at Layer.handle_error (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/router/layer.js:67:12)\n at trim_prefix (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/router/index.js:326:13)\n at /Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/router/index.js:286:9\n at router.process_params (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/router/index.js:346:12)", - "url": "/api/auth/login", - "method": "POST", - "user": "anonymous" -} -[2026-02-02T01:55:18.371Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 500, - "duration": "50029ms", - "ip": "::1", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-02-02T01:56:14.496Z] [ERROR] ❌ 서버 오류가 발생했습니다. - Context: { - "code": "INTERNAL_ERROR", - "stack": "AppError: 서버 오류가 발생했습니다.\n at errorHandler (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/middlewares/errorHandler.js:51:13)\n at Layer.handle_error (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/router/layer.js:71:5)\n at trim_prefix (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/router/index.js:326:13)\n at /Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/router/index.js:286:9\n at router.process_params (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/router/index.js:346:12)\n at next (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/router/index.js:280:10)\n at Layer.handle_error (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/router/layer.js:67:12)\n at trim_prefix (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/router/index.js:326:13)\n at /Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/router/index.js:286:9\n at router.process_params (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/router/index.js:346:12)", - "url": "/api/auth/login", - "method": "POST", - "user": "anonymous" -} -[2026-02-02T01:56:14.497Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 500, - "duration": "5ms", - "ip": "::1", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-02-02T01:58:11.336Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/tbm/sessions/12/safety-checks/filtered", - "statusCode": 500, - "duration": "12ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T04:21:58.482Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 500, - "duration": "8ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T04:22:03.141Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/tbm/weather/conditions", - "statusCode": 500, - "duration": "4ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T04:22:03.306Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/tbm/weather/current", - "statusCode": 500, - "duration": "3ms", - "ip": "::ffff:192.168.65.1", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T04:24:39.943Z] [ERROR] ❌ 날씨 API 호출 실패 - Context: { - "error": "Request failed with status code 401" -} -[2026-02-02T05:39:54.384Z] [ERROR] ❌ 월별 캘린더 데이터 조회 실패 - Context: { - "year": 2026, - "month": 2, - "error": "Table 'hyungi.monthly_summary' doesn't exist" -} -[2026-02-02T05:39:54.388Z] [ERROR] ❌ 월별 캘린더 데이터 조회 중 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 월별 캘린더 데이터 조회 중 오류가 발생했습니다\n at /usr/src/app/controllers/monthlyStatusController.js:80:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "url": "/api/monthly-status/calendar?year=2026&month=2", - "method": "GET", - "user": "anonymous" -} -[2026-02-02T05:39:54.389Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/monthly-status/calendar?year=2026&month=2", - "statusCode": 500, - "duration": "17ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-02T05:40:27.806Z] [ERROR] ❌ 날씨 API 호출 실패 - Context: { - "error": "Request failed with status code 429" -} -[2026-02-02T06:25:51.666Z] [ERROR] ❌ 월별 캘린더 데이터 조회 실패 - Context: { - "year": 2026, - "month": 2, - "error": "Table 'hyungi.monthly_summary' doesn't exist" -} -[2026-02-02T06:25:51.668Z] [ERROR] ❌ 월별 캘린더 데이터 조회 중 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 월별 캘린더 데이터 조회 중 오류가 발생했습니다\n at /usr/src/app/controllers/monthlyStatusController.js:80:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "url": "/api/monthly-status/calendar?year=2026&month=2", - "method": "GET", - "user": "anonymous" -} -[2026-02-02T06:25:51.671Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/monthly-status/calendar?year=2026&month=2", - "statusCode": 500, - "duration": "25ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:01:53.650Z] [ERROR] ❌ 날씨 API 호출 실패 - Context: { - "error": "API 오류: NO_DATA" -} -[2026-02-03T00:01:54.540Z] [ERROR] ❌ 날씨 API 호출 실패 - Context: { - "error": "API 오류: NO_DATA" -} -[2026-02-03T00:02:36.831Z] [ERROR] ❌ 날씨 API 호출 실패 - Context: { - "error": "API 오류: NO_DATA" -} -[2026-02-03T00:02:38.183Z] [ERROR] ❌ 날씨 API 호출 실패 - Context: { - "error": "API 오류: NO_DATA" -} -[2026-02-03T00:03:16.057Z] [ERROR] ❌ 날씨 API 호출 실패 - Context: { - "error": "API 오류: NO_DATA" -} -[2026-02-03T00:03:21.794Z] [ERROR] ❌ 날씨 API 호출 실패 - Context: { - "error": "API 오류: NO_DATA" -} -[2026-02-03T00:03:48.574Z] [ERROR] ❌ 날씨 API 호출 실패 - Context: { - "error": "API 오류: NO_DATA" -} -[2026-02-03T00:04:33.007Z] [ERROR] ❌ 날씨 API 호출 실패 - Context: { - "error": "API 오류: NO_DATA" -} -[2026-02-03T00:05:39.548Z] [ERROR] ❌ 날씨 API 호출 실패 - Context: { - "error": "API 오류: NO_DATA" -} -[2026-02-03T00:29:57.097Z] [ERROR] ❌ 월별 캘린더 데이터 조회 실패 - Context: { - "year": 2026, - "month": 2, - "error": "Table 'hyungi.monthly_summary' doesn't exist" -} -[2026-02-03T00:29:57.098Z] [ERROR] ❌ 월별 캘린더 데이터 조회 중 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 월별 캘린더 데이터 조회 중 오류가 발생했습니다\n at /usr/src/app/controllers/monthlyStatusController.js:80:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "url": "/api/monthly-status/calendar?year=2026&month=2", - "method": "GET", - "user": "anonymous" -} -[2026-02-03T00:29:57.100Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/monthly-status/calendar?year=2026&month=2", - "statusCode": 500, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T00:30:01.016Z] [ERROR] ❌ 날씨 API 호출 실패 - Context: { - "error": "Request failed with status code 429" -} -[2026-02-03T00:30:01.164Z] [ERROR] ❌ 월별 캘린더 데이터 조회 실패 - Context: { - "year": 2026, - "month": 2, - "error": "Table 'hyungi.monthly_summary' doesn't exist" -} -[2026-02-03T00:30:01.168Z] [ERROR] ❌ 월별 캘린더 데이터 조회 중 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 월별 캘린더 데이터 조회 중 오류가 발생했습니다\n at /usr/src/app/controllers/monthlyStatusController.js:80:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "url": "/api/monthly-status/calendar?year=2026&month=2", - "method": "GET", - "user": "anonymous" -} -[2026-02-03T00:30:01.172Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/monthly-status/calendar?year=2026&month=2", - "statusCode": 500, - "duration": "20ms", - "ip": "::ffff:185.199.108.133", - "user": "anonymous", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T01:10:52.126Z] [ERROR] ❌ 날씨 API 호출 실패 - Context: { - "error": "timeout of 5000ms exceeded" -} -[2026-02-03T03:36:49.926Z] [ERROR] ❌ 날씨 API 호출 실패 - Context: { - "error": "timeout of 5000ms exceeded" -} -[2026-02-03T03:38:39.091Z] [ERROR] ❌ 일일 근태 기록 조회 실패 - Context: { - "date": "2026-02-03", - "error": "Unknown column 'vt.hours_deduction' in 'field list'" -} -[2026-02-03T03:38:39.092Z] [ERROR] ❌ 근태 기록 조회 중 데이터베이스 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 근태 기록 조회 중 데이터베이스 오류가 발생했습니다\n at Object.getDailyAttendanceRecordsService (/usr/src/app/services/attendanceService.js:62:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:32:16", - "url": "/api/attendance/daily-records?date=2026-02-03", - "method": "GET", - "user": "admin" -} -[2026-02-03T03:38:39.092Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/attendance/daily-records?date=2026-02-03", - "statusCode": 500, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:38:51.209Z] [ERROR] ❌ 일일 근태 기록 조회 실패 - Context: { - "date": "2026-02-03", - "error": "Unknown column 'vt.hours_deduction' in 'field list'" -} -[2026-02-03T03:38:51.210Z] [ERROR] ❌ 근태 기록 조회 중 데이터베이스 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 근태 기록 조회 중 데이터베이스 오류가 발생했습니다\n at Object.getDailyAttendanceRecordsService (/usr/src/app/services/attendanceService.js:62:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:32:16", - "url": "/api/attendance/daily-records?date=2026-02-03", - "method": "GET", - "user": "admin" -} -[2026-02-03T03:38:51.211Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/attendance/daily-records?date=2026-02-03", - "statusCode": 500, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:52:31.094Z] [ERROR] ❌ 서버 오류가 발생했습니다. - Context: { - "code": "INTERNAL_ERROR", - "stack": "AppError: 서버 오류가 발생했습니다.\n at errorHandler (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/middlewares/errorHandler.js:51:13)\n at Layer.handle_error (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/router/layer.js:71:5)\n at trim_prefix (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/router/index.js:326:13)\n at /Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/router/index.js:286:9\n at router.process_params (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/router/index.js:346:12)\n at next (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/router/index.js:280:10)\n at Layer.handle_error (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/router/layer.js:67:12)\n at trim_prefix (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/router/index.js:326:13)\n at /Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/router/index.js:286:9\n at router.process_params (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/router/index.js:346:12)", - "url": "/api/auth/login", - "method": "POST", - "user": "anonymous" -} -[2026-02-03T03:52:31.094Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/auth/login", - "statusCode": 500, - "duration": "76ms", - "ip": "::1", - "user": "anonymous", - "userAgent": "curl/8.7.1" -} -[2026-02-03T03:55:18.145Z] [ERROR] ❌ 근태 기록 저장 실패 - Context: { - "record_date": "2026-02-03", - "worker_id": 12, - "error": "Unknown column 'work_attendance_type_id' in 'field list'" -} -[2026-02-03T03:55:18.147Z] [ERROR] ❌ 근태 기록 저장 중 데이터베이스 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 근태 기록 저장 중 데이터베이스 오류가 발생했습니다\n at Object.upsertAttendanceRecordService (/usr/src/app/services/attendanceService.js:109:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:50:18", - "url": "/api/attendance/records", - "method": "POST", - "user": "admin" -} -[2026-02-03T03:55:18.148Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 500, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:55:18.163Z] [ERROR] ❌ 근태 기록 저장 실패 - Context: { - "record_date": "2026-02-03", - "worker_id": 10, - "error": "Unknown column 'work_attendance_type_id' in 'field list'" -} -[2026-02-03T03:55:18.164Z] [ERROR] ❌ 근태 기록 저장 중 데이터베이스 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 근태 기록 저장 중 데이터베이스 오류가 발생했습니다\n at Object.upsertAttendanceRecordService (/usr/src/app/services/attendanceService.js:109:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:50:18", - "url": "/api/attendance/records", - "method": "POST", - "user": "admin" -} -[2026-02-03T03:55:18.165Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 500, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:55:18.173Z] [ERROR] ❌ 근태 기록 저장 실패 - Context: { - "record_date": "2026-02-03", - "worker_id": 9, - "error": "Unknown column 'work_attendance_type_id' in 'field list'" -} -[2026-02-03T03:55:18.175Z] [ERROR] ❌ 근태 기록 저장 중 데이터베이스 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 근태 기록 저장 중 데이터베이스 오류가 발생했습니다\n at Object.upsertAttendanceRecordService (/usr/src/app/services/attendanceService.js:109:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:50:18", - "url": "/api/attendance/records", - "method": "POST", - "user": "admin" -} -[2026-02-03T03:55:18.176Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 500, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:55:18.188Z] [ERROR] ❌ 근태 기록 저장 실패 - Context: { - "record_date": "2026-02-03", - "worker_id": 8, - "error": "Unknown column 'work_attendance_type_id' in 'field list'" -} -[2026-02-03T03:55:18.189Z] [ERROR] ❌ 근태 기록 저장 중 데이터베이스 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 근태 기록 저장 중 데이터베이스 오류가 발생했습니다\n at Object.upsertAttendanceRecordService (/usr/src/app/services/attendanceService.js:109:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:50:18", - "url": "/api/attendance/records", - "method": "POST", - "user": "admin" -} -[2026-02-03T03:55:18.190Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 500, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:55:18.196Z] [ERROR] ❌ 근태 기록 저장 실패 - Context: { - "record_date": "2026-02-03", - "worker_id": 6, - "error": "Unknown column 'work_attendance_type_id' in 'field list'" -} -[2026-02-03T03:55:18.197Z] [ERROR] ❌ 근태 기록 저장 중 데이터베이스 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 근태 기록 저장 중 데이터베이스 오류가 발생했습니다\n at Object.upsertAttendanceRecordService (/usr/src/app/services/attendanceService.js:109:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:50:18", - "url": "/api/attendance/records", - "method": "POST", - "user": "admin" -} -[2026-02-03T03:55:18.197Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 500, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:55:18.203Z] [ERROR] ❌ 근태 기록 저장 실패 - Context: { - "record_date": "2026-02-03", - "worker_id": 5, - "error": "Unknown column 'work_attendance_type_id' in 'field list'" -} -[2026-02-03T03:55:18.203Z] [ERROR] ❌ 근태 기록 저장 중 데이터베이스 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 근태 기록 저장 중 데이터베이스 오류가 발생했습니다\n at Object.upsertAttendanceRecordService (/usr/src/app/services/attendanceService.js:109:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:50:18", - "url": "/api/attendance/records", - "method": "POST", - "user": "admin" -} -[2026-02-03T03:55:18.204Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 500, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:55:18.210Z] [ERROR] ❌ 근태 기록 저장 실패 - Context: { - "record_date": "2026-02-03", - "worker_id": 4, - "error": "Unknown column 'work_attendance_type_id' in 'field list'" -} -[2026-02-03T03:55:18.210Z] [ERROR] ❌ 근태 기록 저장 중 데이터베이스 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 근태 기록 저장 중 데이터베이스 오류가 발생했습니다\n at Object.upsertAttendanceRecordService (/usr/src/app/services/attendanceService.js:109:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:50:18", - "url": "/api/attendance/records", - "method": "POST", - "user": "admin" -} -[2026-02-03T03:55:18.211Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 500, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:55:18.217Z] [ERROR] ❌ 근태 기록 저장 실패 - Context: { - "record_date": "2026-02-03", - "worker_id": 3, - "error": "Unknown column 'work_attendance_type_id' in 'field list'" -} -[2026-02-03T03:55:18.217Z] [ERROR] ❌ 근태 기록 저장 중 데이터베이스 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 근태 기록 저장 중 데이터베이스 오류가 발생했습니다\n at Object.upsertAttendanceRecordService (/usr/src/app/services/attendanceService.js:109:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:50:18", - "url": "/api/attendance/records", - "method": "POST", - "user": "admin" -} -[2026-02-03T03:55:18.218Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 500, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T03:55:18.223Z] [ERROR] ❌ 근태 기록 저장 실패 - Context: { - "record_date": "2026-02-03", - "worker_id": 2, - "error": "Unknown column 'work_attendance_type_id' in 'field list'" -} -[2026-02-03T03:55:18.224Z] [ERROR] ❌ 근태 기록 저장 중 데이터베이스 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 근태 기록 저장 중 데이터베이스 오류가 발생했습니다\n at Object.upsertAttendanceRecordService (/usr/src/app/services/attendanceService.js:109:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:50:18", - "url": "/api/attendance/records", - "method": "POST", - "user": "admin" -} -[2026-02-03T03:55:18.224Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 500, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "admin", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-03T06:26:46.976Z] [ERROR] ❌ Unexpected token ! in JSON at position 42 - Context: { - "code": "INTERNAL_ERROR", - "stack": "AppError: Unexpected token ! in JSON at position 42\n at errorHandler (/usr/src/app/middlewares/errorHandler.js:51:13)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:71:5)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/src/app/node_modules/express/lib/router/index.js:280:10)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:67:12)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)", - "url": "/api/auth/login", - "method": "POST", - "user": "anonymous" -} -[2026-02-03T06:26:50.711Z] [ERROR] ❌ Unexpected token ! in JSON at position 42 - Context: { - "code": "INTERNAL_ERROR", - "stack": "AppError: Unexpected token ! in JSON at position 42\n at errorHandler (/usr/src/app/middlewares/errorHandler.js:51:13)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:71:5)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/src/app/node_modules/express/lib/router/index.js:280:10)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:67:12)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)", - "url": "/api/auth/login", - "method": "POST", - "user": "anonymous" -} -[2026-02-03T21:43:00.150Z] [ERROR] ❌ r.toLowerCase is not a function - Context: { - "code": "INTERNAL_ERROR", - "stack": "AppError: r.toLowerCase is not a function\n at errorHandler (/usr/src/app/middlewares/errorHandler.js:51:13)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:71:5)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/src/app/node_modules/express/lib/router/index.js:280:10)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:67:12)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)", - "url": "/api/departments", - "method": "POST", - "user": "hyungi" -} -[2026-02-03T21:43:00.154Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/departments", - "statusCode": 500, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T03:44:34.456Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/equipments/68/repair-history", - "statusCode": 500, - "duration": "43ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:24:20.424Z] [ERROR] ❌ r.toLowerCase is not a function - Context: { - "code": "INTERNAL_ERROR", - "stack": "AppError: r.toLowerCase is not a function\n at errorHandler (/usr/src/app/middlewares/errorHandler.js:51:13)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:71:5)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/src/app/node_modules/express/lib/router/index.js:280:10)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:67:12)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)", - "url": "/api/departments", - "method": "POST", - "user": "hyungi" -} -[2026-02-04T06:24:20.427Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/departments", - "statusCode": 500, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:37:16.946Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/notification-recipients", - "statusCode": 500, - "duration": "11ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:40:06.642Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/notification-recipients", - "statusCode": 500, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:41:11.237Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/notification-recipients", - "statusCode": 500, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:44:22.703Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/notification-recipients", - "statusCode": 500, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:47:46.730Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/notification-recipients", - "statusCode": 500, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:48:48.063Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/notification-recipients", - "statusCode": 500, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:49:20.333Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/notification-recipients", - "statusCode": 500, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:49:43.895Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/notification-recipients", - "statusCode": 500, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:52:39.264Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/notification-recipients", - "statusCode": 500, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T06:53:54.394Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/notification-recipients", - "statusCode": 500, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:44:43.600Z] [ERROR] ❌ 근태 기록 저장 실패 - Context: { - "record_date": "2026-02-04", - "worker_id": 11, - "error": "Bind parameters must not contain undefined. To pass SQL NULL specify JS null" -} -[2026-02-04T11:44:43.603Z] [ERROR] ❌ 근태 기록 저장 중 데이터베이스 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 근태 기록 저장 중 데이터베이스 오류가 발생했습니다\n at Object.upsertAttendanceRecordService (/usr/src/app/services/attendanceService.js:111:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:50:18", - "url": "/api/attendance/records", - "method": "POST", - "user": "hyungi" -} -[2026-02-04T11:44:43.604Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 500, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:44:43.617Z] [ERROR] ❌ 근태 기록 저장 실패 - Context: { - "record_date": "2026-02-04", - "worker_id": 10, - "error": "Bind parameters must not contain undefined. To pass SQL NULL specify JS null" -} -[2026-02-04T11:44:43.617Z] [ERROR] ❌ 근태 기록 저장 중 데이터베이스 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 근태 기록 저장 중 데이터베이스 오류가 발생했습니다\n at Object.upsertAttendanceRecordService (/usr/src/app/services/attendanceService.js:111:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:50:18", - "url": "/api/attendance/records", - "method": "POST", - "user": "hyungi" -} -[2026-02-04T11:44:43.617Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 500, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:44:43.626Z] [ERROR] ❌ 근태 기록 저장 실패 - Context: { - "record_date": "2026-02-04", - "worker_id": 9, - "error": "Bind parameters must not contain undefined. To pass SQL NULL specify JS null" -} -[2026-02-04T11:44:43.627Z] [ERROR] ❌ 근태 기록 저장 중 데이터베이스 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 근태 기록 저장 중 데이터베이스 오류가 발생했습니다\n at Object.upsertAttendanceRecordService (/usr/src/app/services/attendanceService.js:111:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:50:18", - "url": "/api/attendance/records", - "method": "POST", - "user": "hyungi" -} -[2026-02-04T11:44:43.627Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 500, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:44:43.634Z] [ERROR] ❌ 근태 기록 저장 실패 - Context: { - "record_date": "2026-02-04", - "worker_id": 8, - "error": "Bind parameters must not contain undefined. To pass SQL NULL specify JS null" -} -[2026-02-04T11:44:43.634Z] [ERROR] ❌ 근태 기록 저장 중 데이터베이스 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 근태 기록 저장 중 데이터베이스 오류가 발생했습니다\n at Object.upsertAttendanceRecordService (/usr/src/app/services/attendanceService.js:111:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:50:18", - "url": "/api/attendance/records", - "method": "POST", - "user": "hyungi" -} -[2026-02-04T11:44:43.635Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 500, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:44:43.642Z] [ERROR] ❌ 근태 기록 저장 실패 - Context: { - "record_date": "2026-02-04", - "worker_id": 6, - "error": "Bind parameters must not contain undefined. To pass SQL NULL specify JS null" -} -[2026-02-04T11:44:43.643Z] [ERROR] ❌ 근태 기록 저장 중 데이터베이스 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 근태 기록 저장 중 데이터베이스 오류가 발생했습니다\n at Object.upsertAttendanceRecordService (/usr/src/app/services/attendanceService.js:111:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:50:18", - "url": "/api/attendance/records", - "method": "POST", - "user": "hyungi" -} -[2026-02-04T11:44:43.643Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 500, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:44:43.650Z] [ERROR] ❌ 근태 기록 저장 실패 - Context: { - "record_date": "2026-02-04", - "worker_id": 5, - "error": "Bind parameters must not contain undefined. To pass SQL NULL specify JS null" -} -[2026-02-04T11:44:43.651Z] [ERROR] ❌ 근태 기록 저장 중 데이터베이스 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 근태 기록 저장 중 데이터베이스 오류가 발생했습니다\n at Object.upsertAttendanceRecordService (/usr/src/app/services/attendanceService.js:111:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:50:18", - "url": "/api/attendance/records", - "method": "POST", - "user": "hyungi" -} -[2026-02-04T11:44:43.651Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 500, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:44:43.658Z] [ERROR] ❌ 근태 기록 저장 실패 - Context: { - "record_date": "2026-02-04", - "worker_id": 4, - "error": "Bind parameters must not contain undefined. To pass SQL NULL specify JS null" -} -[2026-02-04T11:44:43.659Z] [ERROR] ❌ 근태 기록 저장 중 데이터베이스 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 근태 기록 저장 중 데이터베이스 오류가 발생했습니다\n at Object.upsertAttendanceRecordService (/usr/src/app/services/attendanceService.js:111:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:50:18", - "url": "/api/attendance/records", - "method": "POST", - "user": "hyungi" -} -[2026-02-04T11:44:43.660Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 500, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:44:43.666Z] [ERROR] ❌ 근태 기록 저장 실패 - Context: { - "record_date": "2026-02-04", - "worker_id": 3, - "error": "Bind parameters must not contain undefined. To pass SQL NULL specify JS null" -} -[2026-02-04T11:44:43.667Z] [ERROR] ❌ 근태 기록 저장 중 데이터베이스 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 근태 기록 저장 중 데이터베이스 오류가 발생했습니다\n at Object.upsertAttendanceRecordService (/usr/src/app/services/attendanceService.js:111:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:50:18", - "url": "/api/attendance/records", - "method": "POST", - "user": "hyungi" -} -[2026-02-04T11:44:43.668Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 500, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:44:43.674Z] [ERROR] ❌ 근태 기록 저장 실패 - Context: { - "record_date": "2026-02-04", - "worker_id": 2, - "error": "Bind parameters must not contain undefined. To pass SQL NULL specify JS null" -} -[2026-02-04T11:44:43.675Z] [ERROR] ❌ 근태 기록 저장 중 데이터베이스 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 근태 기록 저장 중 데이터베이스 오류가 발생했습니다\n at Object.upsertAttendanceRecordService (/usr/src/app/services/attendanceService.js:111:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:50:18", - "url": "/api/attendance/records", - "method": "POST", - "user": "hyungi" -} -[2026-02-04T11:44:43.676Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 500, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:47:15.881Z] [ERROR] ❌ 근태 기록 저장 실패 - Context: { - "record_date": "2026-02-04", - "worker_id": 11, - "error": "Bind parameters must not contain undefined. To pass SQL NULL specify JS null" -} -[2026-02-04T11:47:15.885Z] [ERROR] ❌ 근태 기록 저장 중 데이터베이스 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 근태 기록 저장 중 데이터베이스 오류가 발생했습니다\n at Object.upsertAttendanceRecordService (/usr/src/app/services/attendanceService.js:111:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:50:18", - "url": "/api/attendance/records", - "method": "POST", - "user": "hyungi" -} -[2026-02-04T11:47:15.887Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 500, - "duration": "13ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:47:15.898Z] [ERROR] ❌ 근태 기록 저장 실패 - Context: { - "record_date": "2026-02-04", - "worker_id": 10, - "error": "Bind parameters must not contain undefined. To pass SQL NULL specify JS null" -} -[2026-02-04T11:47:15.899Z] [ERROR] ❌ 근태 기록 저장 중 데이터베이스 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 근태 기록 저장 중 데이터베이스 오류가 발생했습니다\n at Object.upsertAttendanceRecordService (/usr/src/app/services/attendanceService.js:111:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:50:18", - "url": "/api/attendance/records", - "method": "POST", - "user": "hyungi" -} -[2026-02-04T11:47:15.900Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 500, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:47:15.907Z] [ERROR] ❌ 근태 기록 저장 실패 - Context: { - "record_date": "2026-02-04", - "worker_id": 9, - "error": "Bind parameters must not contain undefined. To pass SQL NULL specify JS null" -} -[2026-02-04T11:47:15.908Z] [ERROR] ❌ 근태 기록 저장 중 데이터베이스 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 근태 기록 저장 중 데이터베이스 오류가 발생했습니다\n at Object.upsertAttendanceRecordService (/usr/src/app/services/attendanceService.js:111:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:50:18", - "url": "/api/attendance/records", - "method": "POST", - "user": "hyungi" -} -[2026-02-04T11:47:15.909Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 500, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:47:15.918Z] [ERROR] ❌ 근태 기록 저장 실패 - Context: { - "record_date": "2026-02-04", - "worker_id": 8, - "error": "Bind parameters must not contain undefined. To pass SQL NULL specify JS null" -} -[2026-02-04T11:47:15.918Z] [ERROR] ❌ 근태 기록 저장 중 데이터베이스 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 근태 기록 저장 중 데이터베이스 오류가 발생했습니다\n at Object.upsertAttendanceRecordService (/usr/src/app/services/attendanceService.js:111:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:50:18", - "url": "/api/attendance/records", - "method": "POST", - "user": "hyungi" -} -[2026-02-04T11:47:15.919Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 500, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:47:15.926Z] [ERROR] ❌ 근태 기록 저장 실패 - Context: { - "record_date": "2026-02-04", - "worker_id": 6, - "error": "Bind parameters must not contain undefined. To pass SQL NULL specify JS null" -} -[2026-02-04T11:47:15.927Z] [ERROR] ❌ 근태 기록 저장 중 데이터베이스 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 근태 기록 저장 중 데이터베이스 오류가 발생했습니다\n at Object.upsertAttendanceRecordService (/usr/src/app/services/attendanceService.js:111:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:50:18", - "url": "/api/attendance/records", - "method": "POST", - "user": "hyungi" -} -[2026-02-04T11:47:15.928Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 500, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:47:15.935Z] [ERROR] ❌ 근태 기록 저장 실패 - Context: { - "record_date": "2026-02-04", - "worker_id": 5, - "error": "Bind parameters must not contain undefined. To pass SQL NULL specify JS null" -} -[2026-02-04T11:47:15.936Z] [ERROR] ❌ 근태 기록 저장 중 데이터베이스 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 근태 기록 저장 중 데이터베이스 오류가 발생했습니다\n at Object.upsertAttendanceRecordService (/usr/src/app/services/attendanceService.js:111:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:50:18", - "url": "/api/attendance/records", - "method": "POST", - "user": "hyungi" -} -[2026-02-04T11:47:15.936Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 500, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:47:15.943Z] [ERROR] ❌ 근태 기록 저장 실패 - Context: { - "record_date": "2026-02-04", - "worker_id": 4, - "error": "Bind parameters must not contain undefined. To pass SQL NULL specify JS null" -} -[2026-02-04T11:47:15.944Z] [ERROR] ❌ 근태 기록 저장 중 데이터베이스 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 근태 기록 저장 중 데이터베이스 오류가 발생했습니다\n at Object.upsertAttendanceRecordService (/usr/src/app/services/attendanceService.js:111:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:50:18", - "url": "/api/attendance/records", - "method": "POST", - "user": "hyungi" -} -[2026-02-04T11:47:15.944Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 500, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:47:15.952Z] [ERROR] ❌ 근태 기록 저장 실패 - Context: { - "record_date": "2026-02-04", - "worker_id": 3, - "error": "Bind parameters must not contain undefined. To pass SQL NULL specify JS null" -} -[2026-02-04T11:47:15.952Z] [ERROR] ❌ 근태 기록 저장 중 데이터베이스 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 근태 기록 저장 중 데이터베이스 오류가 발생했습니다\n at Object.upsertAttendanceRecordService (/usr/src/app/services/attendanceService.js:111:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:50:18", - "url": "/api/attendance/records", - "method": "POST", - "user": "hyungi" -} -[2026-02-04T11:47:15.953Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 500, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:47:15.959Z] [ERROR] ❌ 근태 기록 저장 실패 - Context: { - "record_date": "2026-02-04", - "worker_id": 2, - "error": "Bind parameters must not contain undefined. To pass SQL NULL specify JS null" -} -[2026-02-04T11:47:15.960Z] [ERROR] ❌ 근태 기록 저장 중 데이터베이스 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 근태 기록 저장 중 데이터베이스 오류가 발생했습니다\n at Object.upsertAttendanceRecordService (/usr/src/app/services/attendanceService.js:111:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:50:18", - "url": "/api/attendance/records", - "method": "POST", - "user": "hyungi" -} -[2026-02-04T11:47:15.960Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 500, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:49:03.662Z] [ERROR] ❌ 근태 기록 저장 실패 - Context: { - "record_date": "2026-02-04", - "worker_id": 11, - "error": "Bind parameters must not contain undefined. To pass SQL NULL specify JS null" -} -[2026-02-04T11:49:03.665Z] [ERROR] ❌ 근태 기록 저장 중 데이터베이스 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 근태 기록 저장 중 데이터베이스 오류가 발생했습니다\n at Object.upsertAttendanceRecordService (/usr/src/app/services/attendanceService.js:111:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:50:18", - "url": "/api/attendance/records", - "method": "POST", - "user": "hyungi" -} -[2026-02-04T11:49:03.668Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 500, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:49:03.678Z] [ERROR] ❌ 근태 기록 저장 실패 - Context: { - "record_date": "2026-02-04", - "worker_id": 10, - "error": "Bind parameters must not contain undefined. To pass SQL NULL specify JS null" -} -[2026-02-04T11:49:03.679Z] [ERROR] ❌ 근태 기록 저장 중 데이터베이스 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 근태 기록 저장 중 데이터베이스 오류가 발생했습니다\n at Object.upsertAttendanceRecordService (/usr/src/app/services/attendanceService.js:111:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:50:18", - "url": "/api/attendance/records", - "method": "POST", - "user": "hyungi" -} -[2026-02-04T11:49:03.680Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 500, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:49:03.690Z] [ERROR] ❌ 근태 기록 저장 실패 - Context: { - "record_date": "2026-02-04", - "worker_id": 9, - "error": "Bind parameters must not contain undefined. To pass SQL NULL specify JS null" -} -[2026-02-04T11:49:03.691Z] [ERROR] ❌ 근태 기록 저장 중 데이터베이스 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 근태 기록 저장 중 데이터베이스 오류가 발생했습니다\n at Object.upsertAttendanceRecordService (/usr/src/app/services/attendanceService.js:111:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:50:18", - "url": "/api/attendance/records", - "method": "POST", - "user": "hyungi" -} -[2026-02-04T11:49:03.692Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 500, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:49:03.700Z] [ERROR] ❌ 근태 기록 저장 실패 - Context: { - "record_date": "2026-02-04", - "worker_id": 8, - "error": "Bind parameters must not contain undefined. To pass SQL NULL specify JS null" -} -[2026-02-04T11:49:03.701Z] [ERROR] ❌ 근태 기록 저장 중 데이터베이스 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 근태 기록 저장 중 데이터베이스 오류가 발생했습니다\n at Object.upsertAttendanceRecordService (/usr/src/app/services/attendanceService.js:111:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:50:18", - "url": "/api/attendance/records", - "method": "POST", - "user": "hyungi" -} -[2026-02-04T11:49:03.702Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 500, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:49:03.709Z] [ERROR] ❌ 근태 기록 저장 실패 - Context: { - "record_date": "2026-02-04", - "worker_id": 6, - "error": "Bind parameters must not contain undefined. To pass SQL NULL specify JS null" -} -[2026-02-04T11:49:03.710Z] [ERROR] ❌ 근태 기록 저장 중 데이터베이스 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 근태 기록 저장 중 데이터베이스 오류가 발생했습니다\n at Object.upsertAttendanceRecordService (/usr/src/app/services/attendanceService.js:111:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:50:18", - "url": "/api/attendance/records", - "method": "POST", - "user": "hyungi" -} -[2026-02-04T11:49:03.710Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 500, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:49:03.719Z] [ERROR] ❌ 근태 기록 저장 실패 - Context: { - "record_date": "2026-02-04", - "worker_id": 5, - "error": "Bind parameters must not contain undefined. To pass SQL NULL specify JS null" -} -[2026-02-04T11:49:03.720Z] [ERROR] ❌ 근태 기록 저장 중 데이터베이스 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 근태 기록 저장 중 데이터베이스 오류가 발생했습니다\n at Object.upsertAttendanceRecordService (/usr/src/app/services/attendanceService.js:111:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:50:18", - "url": "/api/attendance/records", - "method": "POST", - "user": "hyungi" -} -[2026-02-04T11:49:03.720Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 500, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:49:03.728Z] [ERROR] ❌ 근태 기록 저장 실패 - Context: { - "record_date": "2026-02-04", - "worker_id": 4, - "error": "Bind parameters must not contain undefined. To pass SQL NULL specify JS null" -} -[2026-02-04T11:49:03.728Z] [ERROR] ❌ 근태 기록 저장 중 데이터베이스 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 근태 기록 저장 중 데이터베이스 오류가 발생했습니다\n at Object.upsertAttendanceRecordService (/usr/src/app/services/attendanceService.js:111:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:50:18", - "url": "/api/attendance/records", - "method": "POST", - "user": "hyungi" -} -[2026-02-04T11:49:03.729Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 500, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:49:03.737Z] [ERROR] ❌ 근태 기록 저장 실패 - Context: { - "record_date": "2026-02-04", - "worker_id": 3, - "error": "Bind parameters must not contain undefined. To pass SQL NULL specify JS null" -} -[2026-02-04T11:49:03.738Z] [ERROR] ❌ 근태 기록 저장 중 데이터베이스 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 근태 기록 저장 중 데이터베이스 오류가 발생했습니다\n at Object.upsertAttendanceRecordService (/usr/src/app/services/attendanceService.js:111:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:50:18", - "url": "/api/attendance/records", - "method": "POST", - "user": "hyungi" -} -[2026-02-04T11:49:03.738Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 500, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:49:03.744Z] [ERROR] ❌ 근태 기록 저장 실패 - Context: { - "record_date": "2026-02-04", - "worker_id": 2, - "error": "Bind parameters must not contain undefined. To pass SQL NULL specify JS null" -} -[2026-02-04T11:49:03.745Z] [ERROR] ❌ 근태 기록 저장 중 데이터베이스 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 근태 기록 저장 중 데이터베이스 오류가 발생했습니다\n at Object.upsertAttendanceRecordService (/usr/src/app/services/attendanceService.js:111:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:50:18", - "url": "/api/attendance/records", - "method": "POST", - "user": "hyungi" -} -[2026-02-04T11:49:03.746Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 500, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:49:03.753Z] [ERROR] ❌ 근태 기록 저장 실패 - Context: { - "record_date": "2026-02-04", - "worker_id": 1, - "error": "Bind parameters must not contain undefined. To pass SQL NULL specify JS null" -} -[2026-02-04T11:49:03.754Z] [ERROR] ❌ 근태 기록 저장 중 데이터베이스 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 근태 기록 저장 중 데이터베이스 오류가 발생했습니다\n at Object.upsertAttendanceRecordService (/usr/src/app/services/attendanceService.js:111:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:50:18", - "url": "/api/attendance/records", - "method": "POST", - "user": "hyungi" -} -[2026-02-04T11:49:03.755Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 500, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:51:48.119Z] [ERROR] ❌ 근태 기록 저장 실패 - Context: { - "record_date": "2026-02-04", - "worker_id": 11, - "error": "Unknown column 'work_attendance_type_id' in 'field list'" -} -[2026-02-04T11:51:48.121Z] [ERROR] ❌ 근태 기록 저장 중 데이터베이스 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 근태 기록 저장 중 데이터베이스 오류가 발생했습니다\n at Object.upsertAttendanceRecordService (/usr/src/app/services/attendanceService.js:108:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:50:18", - "url": "/api/attendance/records", - "method": "POST", - "user": "hyungi" -} -[2026-02-04T11:51:48.122Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 500, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:51:48.137Z] [ERROR] ❌ 근태 기록 저장 실패 - Context: { - "record_date": "2026-02-04", - "worker_id": 10, - "error": "Unknown column 'work_attendance_type_id' in 'field list'" -} -[2026-02-04T11:51:48.138Z] [ERROR] ❌ 근태 기록 저장 중 데이터베이스 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 근태 기록 저장 중 데이터베이스 오류가 발생했습니다\n at Object.upsertAttendanceRecordService (/usr/src/app/services/attendanceService.js:108:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:50:18", - "url": "/api/attendance/records", - "method": "POST", - "user": "hyungi" -} -[2026-02-04T11:51:48.140Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 500, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:51:48.150Z] [ERROR] ❌ 근태 기록 저장 실패 - Context: { - "record_date": "2026-02-04", - "worker_id": 9, - "error": "Unknown column 'work_attendance_type_id' in 'field list'" -} -[2026-02-04T11:51:48.151Z] [ERROR] ❌ 근태 기록 저장 중 데이터베이스 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 근태 기록 저장 중 데이터베이스 오류가 발생했습니다\n at Object.upsertAttendanceRecordService (/usr/src/app/services/attendanceService.js:108:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:50:18", - "url": "/api/attendance/records", - "method": "POST", - "user": "hyungi" -} -[2026-02-04T11:51:48.152Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 500, - "duration": "5ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:51:48.162Z] [ERROR] ❌ 근태 기록 저장 실패 - Context: { - "record_date": "2026-02-04", - "worker_id": 8, - "error": "Unknown column 'work_attendance_type_id' in 'field list'" -} -[2026-02-04T11:51:48.162Z] [ERROR] ❌ 근태 기록 저장 중 데이터베이스 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 근태 기록 저장 중 데이터베이스 오류가 발생했습니다\n at Object.upsertAttendanceRecordService (/usr/src/app/services/attendanceService.js:108:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:50:18", - "url": "/api/attendance/records", - "method": "POST", - "user": "hyungi" -} -[2026-02-04T11:51:48.163Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 500, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:51:48.177Z] [ERROR] ❌ 근태 기록 저장 실패 - Context: { - "record_date": "2026-02-04", - "worker_id": 6, - "error": "Unknown column 'work_attendance_type_id' in 'field list'" -} -[2026-02-04T11:51:48.178Z] [ERROR] ❌ 근태 기록 저장 중 데이터베이스 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 근태 기록 저장 중 데이터베이스 오류가 발생했습니다\n at Object.upsertAttendanceRecordService (/usr/src/app/services/attendanceService.js:108:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:50:18", - "url": "/api/attendance/records", - "method": "POST", - "user": "hyungi" -} -[2026-02-04T11:51:48.178Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 500, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:51:48.187Z] [ERROR] ❌ 근태 기록 저장 실패 - Context: { - "record_date": "2026-02-04", - "worker_id": 5, - "error": "Unknown column 'work_attendance_type_id' in 'field list'" -} -[2026-02-04T11:51:48.190Z] [ERROR] ❌ 근태 기록 저장 중 데이터베이스 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 근태 기록 저장 중 데이터베이스 오류가 발생했습니다\n at Object.upsertAttendanceRecordService (/usr/src/app/services/attendanceService.js:108:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:50:18", - "url": "/api/attendance/records", - "method": "POST", - "user": "hyungi" -} -[2026-02-04T11:51:48.192Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 500, - "duration": "8ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:51:48.202Z] [ERROR] ❌ 근태 기록 저장 실패 - Context: { - "record_date": "2026-02-04", - "worker_id": 4, - "error": "Unknown column 'work_attendance_type_id' in 'field list'" -} -[2026-02-04T11:51:48.203Z] [ERROR] ❌ 근태 기록 저장 중 데이터베이스 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 근태 기록 저장 중 데이터베이스 오류가 발생했습니다\n at Object.upsertAttendanceRecordService (/usr/src/app/services/attendanceService.js:108:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:50:18", - "url": "/api/attendance/records", - "method": "POST", - "user": "hyungi" -} -[2026-02-04T11:51:48.204Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 500, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:51:48.212Z] [ERROR] ❌ 근태 기록 저장 실패 - Context: { - "record_date": "2026-02-04", - "worker_id": 3, - "error": "Unknown column 'work_attendance_type_id' in 'field list'" -} -[2026-02-04T11:51:48.213Z] [ERROR] ❌ 근태 기록 저장 중 데이터베이스 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 근태 기록 저장 중 데이터베이스 오류가 발생했습니다\n at Object.upsertAttendanceRecordService (/usr/src/app/services/attendanceService.js:108:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:50:18", - "url": "/api/attendance/records", - "method": "POST", - "user": "hyungi" -} -[2026-02-04T11:51:48.213Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 500, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:51:48.221Z] [ERROR] ❌ 근태 기록 저장 실패 - Context: { - "record_date": "2026-02-04", - "worker_id": 2, - "error": "Unknown column 'work_attendance_type_id' in 'field list'" -} -[2026-02-04T11:51:48.222Z] [ERROR] ❌ 근태 기록 저장 중 데이터베이스 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 근태 기록 저장 중 데이터베이스 오류가 발생했습니다\n at Object.upsertAttendanceRecordService (/usr/src/app/services/attendanceService.js:108:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:50:18", - "url": "/api/attendance/records", - "method": "POST", - "user": "hyungi" -} -[2026-02-04T11:51:48.225Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 500, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T11:51:48.233Z] [ERROR] ❌ 근태 기록 저장 실패 - Context: { - "record_date": "2026-02-04", - "worker_id": 1, - "error": "Unknown column 'work_attendance_type_id' in 'field list'" -} -[2026-02-04T11:51:48.234Z] [ERROR] ❌ 근태 기록 저장 중 데이터베이스 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 근태 기록 저장 중 데이터베이스 오류가 발생했습니다\n at Object.upsertAttendanceRecordService (/usr/src/app/services/attendanceService.js:108:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:50:18", - "url": "/api/attendance/records", - "method": "POST", - "user": "hyungi" -} -[2026-02-04T11:51:48.236Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "POST", - "url": "/api/attendance/records", - "statusCode": 500, - "duration": "4ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-04T12:07:05.910Z] [ERROR] ❌ Unexpected token ! in JSON at position 41 - Context: { - "code": "INTERNAL_ERROR", - "stack": "AppError: Unexpected token ! in JSON at position 41\n at errorHandler (/usr/src/app/middlewares/errorHandler.js:51:13)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:71:5)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/src/app/node_modules/express/lib/router/index.js:280:10)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:67:12)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)", - "url": "/api/auth/login", - "method": "POST", - "user": "anonymous" -} -[2026-02-04T12:07:09.214Z] [ERROR] ❌ Unexpected token ! in JSON at position 41 - Context: { - "code": "INTERNAL_ERROR", - "stack": "AppError: Unexpected token ! in JSON at position 41\n at errorHandler (/usr/src/app/middlewares/errorHandler.js:51:13)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:71:5)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/src/app/node_modules/express/lib/router/index.js:280:10)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:67:12)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)", - "url": "/api/auth/login", - "method": "POST", - "user": "anonymous" -} -[2026-02-04T22:43:50.633Z] [ERROR] ❌ Unexpected token ! in JSON at position 46 - Context: { - "code": "INTERNAL_ERROR", - "stack": "AppError: Unexpected token ! in JSON at position 46\n at errorHandler (/usr/src/app/middlewares/errorHandler.js:51:13)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:71:5)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/src/app/node_modules/express/lib/router/index.js:280:10)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:67:12)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)", - "url": "/api/auth/login", - "method": "POST", - "user": "anonymous" -} -[2026-02-05T00:43:03.070Z] [ERROR] ❌ 작업보고서 수정 실패 - Context: { - "reportId": "1784", - "error": "데이터베이스에서 작업 보고서를 수정하는 중 오류가 발생했습니다." -} -[2026-02-05T00:43:03.073Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "PUT", - "url": "/api/daily-work-reports/1784", - "statusCode": 500, - "duration": "14ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:58:17.302Z] [ERROR] ❌ 월별 근태 통계 조회 실패 - Context: { - "year": 2026, - "month": 2, - "error": "Unknown column 'dar.status' in 'field list'" -} -[2026-02-05T01:58:17.305Z] [ERROR] ❌ 월별 근태 통계 조회 중 데이터베이스 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 월별 근태 통계 조회 중 데이터베이스 오류가 발생했습니다\n at Object.getMonthlyAttendanceStatsService (/usr/src/app/services/attendanceService.js:246:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:144:16", - "url": "/api/attendance/monthly-stats?year=2026&month=2", - "method": "GET", - "user": "hyungi" -} -[2026-02-05T01:58:17.307Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/attendance/monthly-stats?year=2026&month=2", - "statusCode": 500, - "duration": "34ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:58:41.217Z] [ERROR] ❌ 월별 근태 통계 조회 실패 - Context: { - "year": 2026, - "month": 2, - "error": "Unknown column 'dar.status' in 'field list'" -} -[2026-02-05T01:58:41.219Z] [ERROR] ❌ 월별 근태 통계 조회 중 데이터베이스 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 월별 근태 통계 조회 중 데이터베이스 오류가 발생했습니다\n at Object.getMonthlyAttendanceStatsService (/usr/src/app/services/attendanceService.js:246:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:144:16", - "url": "/api/attendance/monthly-stats?year=2026&month=2", - "method": "GET", - "user": "hyungi" -} -[2026-02-05T01:58:41.220Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/attendance/monthly-stats?year=2026&month=2", - "statusCode": 500, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T01:59:44.122Z] [ERROR] ❌ 월별 근태 통계 조회 실패 - Context: { - "year": 2026, - "month": 2, - "error": "Unknown column 'dar.status' in 'field list'" -} -[2026-02-05T01:59:44.128Z] [ERROR] ❌ 월별 근태 통계 조회 중 데이터베이스 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 월별 근태 통계 조회 중 데이터베이스 오류가 발생했습니다\n at Object.getMonthlyAttendanceStatsService (/usr/src/app/services/attendanceService.js:246:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:144:16", - "url": "/api/attendance/monthly-stats?year=2026&month=2", - "method": "GET", - "user": "hyungi" -} -[2026-02-05T01:59:44.132Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/attendance/monthly-stats?year=2026&month=2", - "statusCode": 500, - "duration": "58ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T02:01:01.783Z] [ERROR] ❌ 처리되지 않은 예외 - Context: { - "error": "listen EADDRINUSE: address already in use :::20005", - "stack": "Error: listen EADDRINUSE: address already in use :::20005\n at Server.setupListenHandle [as _listen2] (node:net:1940:16)\n at listenInCluster (node:net:1997:12)\n at Server.listen (node:net:2102:7)\n at app.listen (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/application.js:635:24)\n at Object. (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/index.js:207:20)\n at Module._compile (node:internal/modules/cjs/loader:1692:14)\n at Object..js (node:internal/modules/cjs/loader:1824:10)\n at Module.load (node:internal/modules/cjs/loader:1427:32)\n at Module._load (node:internal/modules/cjs/loader:1250:12)\n at TracingChannel.traceSync (node:diagnostics_channel:322:14)" -} -[2026-02-05T02:01:14.935Z] [ERROR] ❌ 처리되지 않은 예외 - Context: { - "error": "listen EADDRINUSE: address already in use :::20005", - "stack": "Error: listen EADDRINUSE: address already in use :::20005\n at Server.setupListenHandle [as _listen2] (node:net:1940:16)\n at listenInCluster (node:net:1997:12)\n at Server.listen (node:net:2102:7)\n at app.listen (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/application.js:635:24)\n at Object. (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/index.js:207:20)\n at Module._compile (node:internal/modules/cjs/loader:1692:14)\n at Object..js (node:internal/modules/cjs/loader:1824:10)\n at Module.load (node:internal/modules/cjs/loader:1427:32)\n at Module._load (node:internal/modules/cjs/loader:1250:12)\n at TracingChannel.traceSync (node:diagnostics_channel:322:14)" -} -[2026-02-05T02:01:31.840Z] [ERROR] ❌ 처리되지 않은 예외 - Context: { - "error": "listen EADDRINUSE: address already in use :::20005", - "stack": "Error: listen EADDRINUSE: address already in use :::20005\n at Server.setupListenHandle [as _listen2] (node:net:1940:16)\n at listenInCluster (node:net:1997:12)\n at Server.listen (node:net:2102:7)\n at app.listen (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/application.js:635:24)\n at Object. (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/index.js:207:20)\n at Module._compile (node:internal/modules/cjs/loader:1692:14)\n at Object..js (node:internal/modules/cjs/loader:1824:10)\n at Module.load (node:internal/modules/cjs/loader:1427:32)\n at Module._load (node:internal/modules/cjs/loader:1250:12)\n at TracingChannel.traceSync (node:diagnostics_channel:322:14)" -} -[2026-02-05T04:41:23.154Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/patrol/workplaces/12/detail?date=2026-02-05", - "statusCode": 500, - "duration": "7ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:41:24.151Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/patrol/workplaces/11/detail?date=2026-02-05", - "statusCode": 500, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:41:24.509Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/patrol/workplaces/10/detail?date=2026-02-05", - "statusCode": 500, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:45:43.179Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/patrol/workplaces/9/detail?date=2026-02-05", - "statusCode": 500, - "duration": "10ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T04:59:59.755Z] [ERROR] ❌ 날씨 API 호출 실패 - Context: { - "error": "Request failed with status code 429" -} -[2026-02-05T05:09:23.015Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/patrol/workplaces/2/zone-items", - "statusCode": 500, - "duration": "17ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" -} -[2026-02-05T22:28:00.070Z] [ERROR] ❌ 최근 작업 현황 조회 실패 - Context: { - "start": "2026-01-01", - "end": "2026-01-31", - "limit": 2000, - "error": "최근 작업 현황 조회 실패: Table 'hyungi.error_types' doesn't exist" -} -[2026-02-05T22:28:00.073Z] [ERROR] ❌ 최근 작업 현황 조회 중 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 최근 작업 현황 조회 중 오류가 발생했습니다\n at /usr/src/app/controllers/workAnalysisController.js:247:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "url": "/api/work-analysis/recent-work?start=2026-01-01&end=2026-01-31&limit=2000", - "method": "GET", - "user": "hyungi" -} -[2026-02-05T22:28:00.075Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/work-analysis/recent-work?start=2026-01-01&end=2026-01-31&limit=2000", - "statusCode": 500, - "duration": "15ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:28:00.077Z] [ERROR] ❌ 에러 분석 실패 - Context: { - "start": "2026-01-01", - "end": "2026-01-31", - "error": "에러 분석 실패: Table 'hyungi.error_types' doesn't exist" -} -[2026-02-05T22:28:00.077Z] [ERROR] ❌ 에러 분석 중 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 에러 분석 중 오류가 발생했습니다\n at /usr/src/app/controllers/workAnalysisController.js:301:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "url": "/api/work-analysis/error-analysis?start=2026-01-01&end=2026-01-31", - "method": "GET", - "user": "hyungi" -} -[2026-02-05T22:28:00.078Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/work-analysis/error-analysis?start=2026-01-01&end=2026-01-31", - "statusCode": 500, - "duration": "12ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:28:05.917Z] [ERROR] ❌ 최근 작업 현황 조회 실패 - Context: { - "start": "2026-01-01", - "end": "2026-01-31", - "limit": 2000, - "error": "최근 작업 현황 조회 실패: Table 'hyungi.error_types' doesn't exist" -} -[2026-02-05T22:28:05.918Z] [ERROR] ❌ 최근 작업 현황 조회 중 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 최근 작업 현황 조회 중 오류가 발생했습니다\n at /usr/src/app/controllers/workAnalysisController.js:247:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "url": "/api/work-analysis/recent-work?start=2026-01-01&end=2026-01-31&limit=2000", - "method": "GET", - "user": "hyungi" -} -[2026-02-05T22:28:05.919Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/work-analysis/recent-work?start=2026-01-01&end=2026-01-31&limit=2000", - "statusCode": 500, - "duration": "9ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:28:05.919Z] [ERROR] ❌ 에러 분석 실패 - Context: { - "start": "2026-01-01", - "end": "2026-01-31", - "error": "에러 분석 실패: Table 'hyungi.error_types' doesn't exist" -} -[2026-02-05T22:28:05.920Z] [ERROR] ❌ 에러 분석 중 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 에러 분석 중 오류가 발생했습니다\n at /usr/src/app/controllers/workAnalysisController.js:301:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "url": "/api/work-analysis/error-analysis?start=2026-01-01&end=2026-01-31", - "method": "GET", - "user": "hyungi" -} -[2026-02-05T22:28:05.921Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/work-analysis/error-analysis?start=2026-01-01&end=2026-01-31", - "statusCode": 500, - "duration": "6ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:28:20.786Z] [ERROR] ❌ 최근 작업 현황 조회 실패 - Context: { - "start": "2026-01-01", - "end": "2026-01-31", - "limit": 2000, - "error": "최근 작업 현황 조회 실패: Table 'hyungi.error_types' doesn't exist" -} -[2026-02-05T22:28:20.787Z] [ERROR] ❌ 최근 작업 현황 조회 중 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 최근 작업 현황 조회 중 오류가 발생했습니다\n at /usr/src/app/controllers/workAnalysisController.js:247:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "url": "/api/work-analysis/recent-work?start=2026-01-01&end=2026-01-31&limit=2000", - "method": "GET", - "user": "hyungi" -} -[2026-02-05T22:28:20.787Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/work-analysis/recent-work?start=2026-01-01&end=2026-01-31&limit=2000", - "statusCode": 500, - "duration": "2ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} -[2026-02-05T22:28:20.792Z] [ERROR] ❌ 최근 작업 현황 조회 실패 - Context: { - "start": "2026-01-01", - "end": "2026-01-31", - "limit": 100, - "error": "최근 작업 현황 조회 실패: Table 'hyungi.error_types' doesn't exist" -} -[2026-02-05T22:28:20.793Z] [ERROR] ❌ 최근 작업 현황 조회 중 오류가 발생했습니다 - Context: { - "code": "DATABASE_ERROR", - "stack": "DatabaseError: 최근 작업 현황 조회 중 오류가 발생했습니다\n at /usr/src/app/controllers/workAnalysisController.js:247:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", - "url": "/api/work-analysis/recent-work?start=2026-01-01&end=2026-01-31&limit=100", - "method": "GET", - "user": "hyungi" -} -[2026-02-05T22:28:20.794Z] [ERROR] ❌ HTTP Request - Server Error - Context: { - "method": "GET", - "url": "/api/work-analysis/recent-work?start=2026-01-01&end=2026-01-31&limit=100", - "statusCode": 500, - "duration": "3ms", - "ip": "::ffff:185.199.108.133", - "user": "hyungi", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" -} diff --git a/system1-factory/api/package.json b/system1-factory/api/package.json index ff0bf1d..efe43f1 100644 --- a/system1-factory/api/package.json +++ b/system1-factory/api/package.json @@ -22,7 +22,6 @@ "@simplewebauthn/server": "^13.1.1", "async-retry": "^1.3.3", "axios": "^1.6.7", - "bcrypt": "^6.0.0", "bcryptjs": "^2.4.3", "compression": "^1.8.1", "cors": "^2.8.5", @@ -39,7 +38,6 @@ "pm2": "^5.3.0", "qrcode": "^1.5.4", "redis": "^5.9.0", - "sqlite3": "^5.1.6", "swagger-jsdoc": "^6.2.8", "swagger-ui-express": "^5.0.1" }, diff --git a/system1-factory/api/server.log b/system1-factory/api/server.log deleted file mode 100644 index 9bcdd7e..0000000 --- a/system1-factory/api/server.log +++ /dev/null @@ -1,27 +0,0 @@ - -🚀 Technical Korea Work Management System v2.1.0 -📍 서버가 포트 3005에서 실행 중입니다. -🌐 접속 URL: http://localhost:3005 -📊 API 문서: http://localhost:3005/api - -🔒 보안 기능: - ✅ JWT 토큰 인증 - ✅ 로그인 실패 제한 (5회) - ✅ API 속도 제한 - ✅ 보안 헤더 (Helmet) - ✅ CORS 설정 (192.168.0.3:3001 허용) - ✅ 활동 로깅 - -📋 새로운 기능: - 🔐 비밀번호 변경 (본인/관리자) - 🔄 토큰 갱신 (Refresh Token) - 📊 로그인 이력 조회 - 💪 비밀번호 강도 체크 - -🟢 Health check 호출됨! -🟢 Health check 호출됨! -🟢 Health check 호출됨! -🟢 Health check 호출됨! -🟢 Health check 호출됨! -🟢 Health check 호출됨! -🟢 Health check 호출됨! diff --git a/system1-factory/fastapi-bridge/cache-test.log b/system1-factory/fastapi-bridge/cache-test.log deleted file mode 100644 index a0350af..0000000 --- a/system1-factory/fastapi-bridge/cache-test.log +++ /dev/null @@ -1,119 +0,0 @@ -/Users/hyungiahn/Documents/code/TK-FB-Project/fastapi-bridge/main.py:50: DeprecationWarning: - on_event is deprecated, use lifespan event handlers instead. - - Read more about it in the - [FastAPI docs for Lifespan Events](https://fastapi.tiangolo.com/advanced/events/). - - @app.on_event("startup") -/Users/hyungiahn/Documents/code/TK-FB-Project/fastapi-bridge/main.py:79: DeprecationWarning: - on_event is deprecated, use lifespan event handlers instead. - - Read more about it in the - [FastAPI docs for Lifespan Events](https://fastapi.tiangolo.com/advanced/events/). - - @app.on_event("shutdown") -INFO: Will watch for changes in these directories: ['/Users/hyungiahn/Documents/code/TK-FB-Project/fastapi-bridge'] -INFO: Uvicorn running on http://0.0.0.0:8000 (Press CTRL+C to quit) -INFO: Started reloader process [73546] using WatchFiles -INFO: Started server process [73613] -INFO: Waiting for application startup. -INFO:main:🚀 TK FastAPI Bridge v1.0.0 시작됨 -INFO:main:📍 포트: 8000 -INFO:main:🔗 Express.js API: http://localhost:3005 -INFO:main:💾 캐시: Redis (연결됨) -INFO: Application startup complete. -✅ Redis 연결 성공 -INFO: 127.0.0.1:61128 - "GET /cache/stats HTTP/1.1" 200 OK -🟡 캐시 미스: health: -INFO: 127.0.0.1:61136 - "GET /health HTTP/1.1" 200 OK -🟢 캐시 히트: health: -INFO: 127.0.0.1:61142 - "GET /health HTTP/1.1" 200 OK -INFO:main:🔗 프록시: GET http://localhost:3005/api/health -INFO:main:✅ 응답: 200 (82 bytes) -INFO:main:💾 캐시 저장: GET http://localhost:3005/api/health -INFO: 127.0.0.1:61154 - "GET /api/health HTTP/1.1" 200 OK -INFO:main:🟢 캐시 히트: GET http://localhost:3005/api/health -INFO: 127.0.0.1:61199 - "GET /api/health HTTP/1.1" 200 OK -INFO:watchfiles.main:1 change detected -WARNING: WatchFiles detected changes in 'analytics.py'. Reloading... -INFO: Shutting down -INFO: Waiting for application shutdown. -INFO:main:✅ FastAPI 브릿지가 정상적으로 종료되었습니다 -INFO: Application shutdown complete. -INFO: Finished server process [73613] -INFO: Started server process [74900] -INFO: Waiting for application startup. -INFO:main:🚀 TK FastAPI Bridge v1.0.0 시작됨 -INFO:main:📍 포트: 8000 -INFO:main:🔗 Express.js API: http://localhost:3005 -INFO:main:💾 캐시: Redis (연결됨) -INFO: Application startup complete. -INFO:watchfiles.main:1 change detected -WARNING: WatchFiles detected changes in 'analytics.py'. Reloading... -INFO: Shutting down -INFO: Waiting for application shutdown. -INFO:main:✅ FastAPI 브릿지가 정상적으로 종료되었습니다 -INFO: Application shutdown complete. -INFO: Finished server process [74900] -✅ Redis 연결 성공 -INFO: Started server process [74902] -INFO: Waiting for application startup. -INFO:main:🚀 TK FastAPI Bridge v1.0.0 시작됨 -INFO:main:📍 포트: 8000 -INFO:main:🔗 Express.js API: http://localhost:3005 -INFO:main:💾 캐시: Redis (연결됨) -INFO: Application startup complete. -INFO:watchfiles.main:1 change detected -WARNING: WatchFiles detected changes in 'main.py'. Reloading... -INFO: Shutting down -INFO: Waiting for application shutdown. -INFO:main:✅ FastAPI 브릿지가 정상적으로 종료되었습니다 -INFO: Application shutdown complete. -INFO: Finished server process [74902] -✅ Redis 연결 성공 -INFO: Started server process [74920] -INFO: Waiting for application startup. -INFO:main:🚀 TK FastAPI Bridge v1.0.0 시작됨 -INFO:main:📍 포트: 8000 -INFO:main:🔗 Express.js API: http://localhost:3005 -INFO:main:💾 캐시: Redis (연결됨) -INFO: Application startup complete. -INFO:watchfiles.main:1 change detected -WARNING: WatchFiles detected changes in 'main.py'. Reloading... -INFO: Shutting down -INFO: Waiting for application shutdown. -INFO:main:✅ FastAPI 브릿지가 정상적으로 종료되었습니다 -INFO: Application shutdown complete. -INFO: Finished server process [74920] -✅ Redis 연결 성공 -INFO: Started server process [74929] -INFO: Waiting for application startup. -INFO:main:🚀 TK FastAPI Bridge v1.0.0 시작됨 -INFO:main:📍 포트: 8000 -INFO:main:🔗 Express.js API: http://localhost:3005 -INFO:main:💾 캐시: Redis (연결됨) -INFO: Application startup complete. -INFO:watchfiles.main:1 change detected -WARNING: WatchFiles detected changes in 'main.py'. Reloading... -INFO: Shutting down -INFO: Waiting for application shutdown. -INFO:main:✅ FastAPI 브릿지가 정상적으로 종료되었습니다 -INFO: Application shutdown complete. -INFO: Finished server process [74929] -✅ Redis 연결 성공 -INFO: Started server process [74942] -INFO: Waiting for application startup. -INFO:main:🚀 TK FastAPI Bridge v1.0.0 시작됨 -INFO:main:📍 포트: 8000 -INFO:main:🔗 Express.js API: http://localhost:3005 -INFO:main:💾 캐시: Redis (연결됨) -INFO: Application startup complete. -INFO:watchfiles.main:1 change detected -INFO:watchfiles.main:1 change detected -INFO: Shutting down -INFO: Waiting for application shutdown. -INFO:main:✅ FastAPI 브릿지가 정상적으로 종료되었습니다 -INFO: Application shutdown complete. -INFO: Finished server process [74942] -✅ Redis 연결 성공 -INFO: Stopping reloader process [73546] diff --git a/system1-factory/fastapi-bridge/fastapi-cache.log b/system1-factory/fastapi-bridge/fastapi-cache.log deleted file mode 100644 index 4dba8c8..0000000 --- a/system1-factory/fastapi-bridge/fastapi-cache.log +++ /dev/null @@ -1,16 +0,0 @@ -/Users/hyungiahn/Documents/code/TK-FB-Project/fastapi-bridge/main.py:50: DeprecationWarning: - on_event is deprecated, use lifespan event handlers instead. - - Read more about it in the - [FastAPI docs for Lifespan Events](https://fastapi.tiangolo.com/advanced/events/). - - @app.on_event("startup") -/Users/hyungiahn/Documents/code/TK-FB-Project/fastapi-bridge/main.py:79: DeprecationWarning: - on_event is deprecated, use lifespan event handlers instead. - - Read more about it in the - [FastAPI docs for Lifespan Events](https://fastapi.tiangolo.com/advanced/events/). - - @app.on_event("shutdown") -INFO: Will watch for changes in these directories: ['/Users/hyungiahn/Documents/code/TK-FB-Project/fastapi-bridge'] -ERROR: [Errno 48] Address already in use diff --git a/system1-factory/fastapi-bridge/fastapi.log b/system1-factory/fastapi-bridge/fastapi.log deleted file mode 100644 index f7c7f18..0000000 --- a/system1-factory/fastapi-bridge/fastapi.log +++ /dev/null @@ -1,266 +0,0 @@ -/Users/hyungiahn/Documents/code/TK-FB-Project/fastapi-bridge/main.py:40: DeprecationWarning: - on_event is deprecated, use lifespan event handlers instead. - - Read more about it in the - [FastAPI docs for Lifespan Events](https://fastapi.tiangolo.com/advanced/events/). - - @app.on_event("startup") -/Users/hyungiahn/Documents/code/TK-FB-Project/fastapi-bridge/main.py:62: DeprecationWarning: - on_event is deprecated, use lifespan event handlers instead. - - Read more about it in the - [FastAPI docs for Lifespan Events](https://fastapi.tiangolo.com/advanced/events/). - - @app.on_event("shutdown") -INFO: Will watch for changes in these directories: ['/Users/hyungiahn/Documents/code/TK-FB-Project/fastapi-bridge'] -INFO: Uvicorn running on http://0.0.0.0:8000 (Press CTRL+C to quit) -INFO: Started reloader process [59893] using WatchFiles -INFO: Started server process [59960] -INFO: Waiting for application startup. -INFO:main:🚀 TK FastAPI Bridge v1.0.0 시작됨 -INFO:main:📍 포트: 8000 -INFO:main:🔗 Express.js API: http://localhost:3005 -INFO: Application startup complete. -INFO: 127.0.0.1:51845 - "GET / HTTP/1.1" 200 OK -INFO: 127.0.0.1:51858 - "GET /health HTTP/1.1" 200 OK -INFO:main:🔗 프록시: GET http://localhost:3005/api/health -INFO:main:✅ 응답: 200 (82 bytes) -INFO: 127.0.0.1:51876 - "GET /api/health HTTP/1.1" 200 OK -INFO:watchfiles.main:144 changes detected -INFO:watchfiles.main:1 change detected -INFO:watchfiles.main:1 change detected -WARNING: WatchFiles detected changes in 'main.py'. Reloading... -INFO: Shutting down -INFO: Waiting for application shutdown. -INFO:main:✅ FastAPI 브릿지가 정상적으로 종료되었습니다 -INFO: Application shutdown complete. -INFO: Finished server process [59960] -INFO: Started server process [60804] -INFO: Waiting for application startup. -INFO:main:🚀 TK FastAPI Bridge v1.0.0 시작됨 -INFO:main:📍 포트: 8000 -INFO:main:🔗 Express.js API: http://localhost:3005 -INFO: Application startup complete. -INFO:watchfiles.main:1 change detected -WARNING: WatchFiles detected changes in 'main.py'. Reloading... -INFO: Shutting down -INFO: Waiting for application shutdown. -INFO:main:✅ FastAPI 브릿지가 정상적으로 종료되었습니다 -INFO: Application shutdown complete. -INFO: Finished server process [60804] -INFO: Started server process [60813] -INFO: Waiting for application startup. -INFO:main:🚀 TK FastAPI Bridge v1.0.0 시작됨 -INFO:main:📍 포트: 8000 -INFO:main:🔗 Express.js API: http://localhost:3005 -INFO: Application startup complete. -INFO:watchfiles.main:1 change detected -WARNING: WatchFiles detected changes in 'main.py'. Reloading... -INFO: Shutting down -INFO: Waiting for application shutdown. -INFO:main:✅ FastAPI 브릿지가 정상적으로 종료되었습니다 -INFO: Application shutdown complete. -INFO: Finished server process [60813] -INFO: Started server process [60819] -INFO: Waiting for application startup. -INFO:main:🚀 TK FastAPI Bridge v1.0.0 시작됨 -INFO:main:📍 포트: 8000 -INFO:main:🔗 Express.js API: http://localhost:3005 -INFO: Application startup complete. -INFO:watchfiles.main:1 change detected -WARNING: WatchFiles detected changes in 'main.py'. Reloading... -INFO: Shutting down -INFO: Waiting for application shutdown. -INFO:main:✅ FastAPI 브릿지가 정상적으로 종료되었습니다 -INFO: Application shutdown complete. -INFO: Finished server process [60819] -INFO: Started server process [60828] -INFO: Waiting for application startup. -INFO:main:🚀 TK FastAPI Bridge v1.0.0 시작됨 -INFO:main:📍 포트: 8000 -INFO:main:🔗 Express.js API: http://localhost:3005 -INFO: Application startup complete. -INFO:watchfiles.main:1 change detected -WARNING: WatchFiles detected changes in 'main.py'. Reloading... -INFO: Shutting down -INFO: Waiting for application shutdown. -INFO:main:✅ FastAPI 브릿지가 정상적으로 종료되었습니다 -INFO: Application shutdown complete. -INFO: Finished server process [60828] -INFO: Started server process [60837] -INFO: Waiting for application startup. -INFO:main:🚀 TK FastAPI Bridge v1.0.0 시작됨 -INFO:main:📍 포트: 8000 -INFO:main:🔗 Express.js API: http://localhost:3005 -INFO: Application startup complete. -INFO:watchfiles.main:1 change detected -INFO: 127.0.0.1:52227 - "HEAD / HTTP/1.1" 405 Method Not Allowed -INFO: 127.0.0.1:52257 - "GET / HTTP/1.1" 200 OK -INFO:main:🔗 프록시: GET http://localhost:3005/api/health -INFO:main:✅ 응답: 200 (82 bytes) -INFO: 127.0.0.1:52309 - "GET /api/health HTTP/1.1" 200 OK -INFO: 127.0.0.1:52338 - "GET /login.css HTTP/1.1" 200 OK -INFO: 127.0.0.1:52380 - "HEAD /logo.png HTTP/1.1" 200 OK -INFO:watchfiles.main:2 changes detected -WARNING: WatchFiles detected changes in 'main.py'. Reloading... -INFO: Shutting down -INFO: Waiting for application shutdown. -INFO:main:✅ FastAPI 브릿지가 정상적으로 종료되었습니다 -INFO: Application shutdown complete. -INFO: Finished server process [60837] -INFO: Started server process [61912] -INFO: Waiting for application startup. -INFO:main:🚀 TK FastAPI Bridge v1.0.0 시작됨 -INFO:main:📍 포트: 8000 -INFO:main:🔗 Express.js API: http://localhost:3005 -INFO: Application startup complete. -INFO:watchfiles.main:1 change detected -WARNING: WatchFiles detected changes in 'cache.py'. Reloading... -INFO: Shutting down -INFO: Waiting for application shutdown. -INFO:main:✅ FastAPI 브릿지가 정상적으로 종료되었습니다 -INFO: Application shutdown complete. -INFO: Finished server process [61912] -INFO: Started server process [62616] -INFO: Waiting for application startup. -INFO:main:🚀 TK FastAPI Bridge v1.0.0 시작됨 -INFO:main:📍 포트: 8000 -INFO:main:🔗 Express.js API: http://localhost:3005 -INFO: Application startup complete. -INFO:watchfiles.main:1 change detected -WARNING: WatchFiles detected changes in 'cache.py'. Reloading... -INFO: Shutting down -INFO: Waiting for application shutdown. -INFO:main:✅ FastAPI 브릿지가 정상적으로 종료되었습니다 -INFO: Application shutdown complete. -INFO: Finished server process [62616] -INFO: Started server process [62618] -INFO: Waiting for application startup. -INFO:main:🚀 TK FastAPI Bridge v1.0.0 시작됨 -INFO:main:📍 포트: 8000 -INFO:main:🔗 Express.js API: http://localhost:3005 -INFO: Application startup complete. -INFO:watchfiles.main:1 change detected -WARNING: WatchFiles detected changes in 'config.py'. Reloading... -INFO: Shutting down -INFO: Waiting for application shutdown. -INFO:main:✅ FastAPI 브릿지가 정상적으로 종료되었습니다 -INFO: Application shutdown complete. -INFO: Finished server process [62618] -INFO: Started server process [64772] -INFO: Waiting for application startup. -INFO:main:🚀 TK FastAPI Bridge v1.0.0 시작됨 -INFO:main:📍 포트: 8000 -INFO:main:🔗 Express.js API: http://localhost:3005 -INFO: Application startup complete. -INFO:watchfiles.main:1 change detected -WARNING: WatchFiles detected changes in 'main.py'. Reloading... -INFO: Shutting down -INFO: Waiting for application shutdown. -INFO:main:✅ FastAPI 브릿지가 정상적으로 종료되었습니다 -INFO: Application shutdown complete. -INFO: Finished server process [64772] -INFO: Started server process [64848] -INFO: Waiting for application startup. -INFO:main:🚀 TK FastAPI Bridge v1.0.0 시작됨 -INFO:main:📍 포트: 8000 -INFO:main:🔗 Express.js API: http://localhost:3005 -INFO: Application startup complete. -INFO:watchfiles.main:1 change detected -WARNING: WatchFiles detected changes in 'main.py'. Reloading... -INFO: Shutting down -INFO: Waiting for application shutdown. -INFO:main:✅ FastAPI 브릿지가 정상적으로 종료되었습니다 -INFO: Application shutdown complete. -INFO: Finished server process [64848] -INFO: Started server process [64868] -INFO: Waiting for application startup. -INFO:main:🚀 TK FastAPI Bridge v1.0.0 시작됨 -INFO:main:📍 포트: 8000 -INFO:main:🔗 Express.js API: http://localhost:3005 -INFO:main:💾 캐시: Redis (연결됨) -INFO: Application startup complete. -INFO:watchfiles.main:1 change detected -WARNING: WatchFiles detected changes in 'main.py'. Reloading... -INFO: Shutting down -INFO: Waiting for application shutdown. -INFO:main:✅ FastAPI 브릿지가 정상적으로 종료되었습니다 -INFO: Application shutdown complete. -INFO: Finished server process [64868] -✅ Redis 연결 성공 -INFO: Started server process [64890] -INFO: Waiting for application startup. -INFO:main:🚀 TK FastAPI Bridge v1.0.0 시작됨 -INFO:main:📍 포트: 8000 -INFO:main:🔗 Express.js API: http://localhost:3005 -INFO:main:💾 캐시: Redis (연결됨) -INFO: Application startup complete. -INFO:watchfiles.main:1 change detected -WARNING: WatchFiles detected changes in 'main.py'. Reloading... -INFO: Shutting down -INFO: Waiting for application shutdown. -INFO:main:✅ FastAPI 브릿지가 정상적으로 종료되었습니다 -INFO: Application shutdown complete. -INFO: Finished server process [64890] -✅ Redis 연결 성공 -INFO: Started server process [64916] -INFO: Waiting for application startup. -INFO:main:🚀 TK FastAPI Bridge v1.0.0 시작됨 -INFO:main:📍 포트: 8000 -INFO:main:🔗 Express.js API: http://localhost:3005 -INFO:main:💾 캐시: Redis (연결됨) -INFO: Application startup complete. -INFO:watchfiles.main:1 change detected -WARNING: WatchFiles detected changes in 'main.py'. Reloading... -INFO: Shutting down -INFO: Waiting for application shutdown. -INFO:main:✅ FastAPI 브릿지가 정상적으로 종료되었습니다 -INFO: Application shutdown complete. -INFO: Finished server process [64916] -✅ Redis 연결 성공 -INFO: Started server process [64934] -INFO: Waiting for application startup. -INFO:main:🚀 TK FastAPI Bridge v1.0.0 시작됨 -INFO:main:📍 포트: 8000 -INFO:main:🔗 Express.js API: http://localhost:3005 -INFO:main:💾 캐시: Redis (연결됨) -INFO: Application startup complete. -INFO:watchfiles.main:1 change detected -WARNING: WatchFiles detected changes in 'main.py'. Reloading... -INFO: Shutting down -INFO: Waiting for application shutdown. -INFO:main:✅ FastAPI 브릿지가 정상적으로 종료되었습니다 -INFO: Application shutdown complete. -INFO: Finished server process [64934] -✅ Redis 연결 성공 -INFO: Started server process [64956] -INFO: Waiting for application startup. -INFO:main:🚀 TK FastAPI Bridge v1.0.0 시작됨 -INFO:main:📍 포트: 8000 -INFO:main:🔗 Express.js API: http://localhost:3005 -INFO:main:💾 캐시: Redis (연결됨) -INFO: Application startup complete. -INFO:watchfiles.main:1 change detected -WARNING: WatchFiles detected changes in 'main.py'. Reloading... -INFO: Shutting down -INFO: Waiting for application shutdown. -INFO:main:✅ FastAPI 브릿지가 정상적으로 종료되었습니다 -INFO: Application shutdown complete. -INFO: Finished server process [64956] -✅ Redis 연결 성공 -INFO: Started server process [64979] -INFO: Waiting for application startup. -INFO:main:🚀 TK FastAPI Bridge v1.0.0 시작됨 -INFO:main:📍 포트: 8000 -INFO:main:🔗 Express.js API: http://localhost:3005 -INFO:main:💾 캐시: Redis (연결됨) -INFO: Application startup complete. -INFO:watchfiles.main:1 change detected -INFO:watchfiles.main:1 change detected -INFO: Shutting down -INFO: Waiting for application shutdown. -INFO:main:✅ FastAPI 브릿지가 정상적으로 종료되었습니다 -INFO: Application shutdown complete. -INFO: Finished server process [64979] -✅ Redis 연결 성공 -INFO: Stopping reloader process [59893] diff --git a/system1-factory/fastapi-bridge/main.py b/system1-factory/fastapi-bridge/main.py index 52e266b..97c31f5 100644 --- a/system1-factory/fastapi-bridge/main.py +++ b/system1-factory/fastapi-bridge/main.py @@ -127,7 +127,7 @@ async def health_check(): "fastapi_bridge": "healthy", "express_api": express_status, "express_data": express_data, - "timestamp": datetime.datetime.utcnow().isoformat() + "Z", + "timestamp": datetime.datetime.now(datetime.timezone.utc).isoformat(), "cached": True } diff --git a/system1-factory/fastapi-bridge/phase4-test.log b/system1-factory/fastapi-bridge/phase4-test.log deleted file mode 100644 index 7e7243b..0000000 --- a/system1-factory/fastapi-bridge/phase4-test.log +++ /dev/null @@ -1,16 +0,0 @@ -/Users/hyungiahn/Documents/code/TK-FB-Project/fastapi-bridge/main.py:54: DeprecationWarning: - on_event is deprecated, use lifespan event handlers instead. - - Read more about it in the - [FastAPI docs for Lifespan Events](https://fastapi.tiangolo.com/advanced/events/). - - @app.on_event("startup") -/Users/hyungiahn/Documents/code/TK-FB-Project/fastapi-bridge/main.py:83: DeprecationWarning: - on_event is deprecated, use lifespan event handlers instead. - - Read more about it in the - [FastAPI docs for Lifespan Events](https://fastapi.tiangolo.com/advanced/events/). - - @app.on_event("shutdown") -INFO: Will watch for changes in these directories: ['/Users/hyungiahn/Documents/code/TK-FB-Project/fastapi-bridge'] -ERROR: [Errno 48] Address already in use diff --git a/system3-nonconformance/api/routers/issues.py b/system3-nonconformance/api/routers/issues.py index 08dcfe4..791d031 100644 --- a/system3-nonconformance/api/routers/issues.py +++ b/system3-nonconformance/api/routers/issues.py @@ -18,8 +18,7 @@ async def create_issue( current_user: User = Depends(get_current_user), db: Session = Depends(get_db) ): - print(f"DEBUG: 받은 issue 데이터: {issue}") - print(f"DEBUG: project_id: {issue.project_id}") + # 이미지 저장 (최대 5장) photo_paths = {} for i in range(1, 6): @@ -194,7 +193,6 @@ async def delete_issue( # 이 이슈를 중복 대상으로 참조하는 다른 이슈들의 참조 제거 referencing_issues = db.query(Issue).filter(Issue.duplicate_of_issue_id == issue_id).all() if referencing_issues: - print(f"DEBUG: {len(referencing_issues)}개의 이슈가 이 이슈를 중복 대상으로 참조하고 있습니다. 참조를 제거합니다.") for ref_issue in referencing_issues: ref_issue.duplicate_of_issue_id = None db.flush() # 참조 제거를 먼저 커밋 @@ -317,10 +315,6 @@ async def update_issue_management( """ 관리함에서 이슈의 관리 관련 필드들을 업데이트합니다. """ - print(f"DEBUG: Received management update for issue {issue_id}") - print(f"DEBUG: Update data: {management_update}") - print(f"DEBUG: Current user: {current_user.username}") - # 관리함 페이지 권한 확인 if not (current_user.role == UserRole.admin or check_page_access(current_user.id, 'issues_management', db)): raise HTTPException(status_code=403, detail="관리함 접근 권한이 없습니다.") @@ -330,12 +324,8 @@ async def update_issue_management( if not issue: raise HTTPException(status_code=404, detail="부적합을 찾을 수 없습니다.") - print(f"DEBUG: Found issue: {issue.id}") - # 관리함에서만 수정 가능한 필드들만 업데이트 update_data = management_update.dict(exclude_unset=True) - print(f"DEBUG: Update data dict: {update_data}") - # 완료 사진 처리 (최대 5장) completion_photo_fields = [] for i in range(1, 6): @@ -353,28 +343,21 @@ async def update_issue_management( # 새 사진 저장 new_path = save_base64_image(update_data[photo_field], "completion") setattr(issue, path_field, new_path) - print(f"DEBUG: Saved {photo_field}: {new_path}") except Exception as e: - print(f"DEBUG: Photo save error for {photo_field}: {str(e)}") raise HTTPException(status_code=400, detail=f"완료 사진 저장 실패: {str(e)}") # 나머지 필드 처리 (완료 사진 제외) for field, value in update_data.items(): if field not in completion_photo_fields: - print(f"DEBUG: Processing field {field} = {value}") try: setattr(issue, field, value) - print(f"DEBUG: Set {field} = {value}") except Exception as e: - print(f"DEBUG: Field set error for {field}: {str(e)}") raise HTTPException(status_code=400, detail=f"필드 {field} 설정 실패: {str(e)}") try: db.commit() db.refresh(issue) - print(f"DEBUG: Successfully updated issue {issue.id}") except Exception as e: - print(f"DEBUG: Database commit error: {str(e)}") db.rollback() raise HTTPException(status_code=500, detail=f"데이터베이스 저장 실패: {str(e)}") @@ -408,8 +391,6 @@ async def request_completion( raise HTTPException(status_code=400, detail="이미 완료 신청된 부적합입니다.") try: - print(f"DEBUG: 완료 신청 시작 - Issue ID: {issue_id}, User: {current_user.username}") - # 완료 사진 저장 (최대 5장) saved_paths = [] for i in range(1, 6): @@ -418,25 +399,20 @@ async def request_completion( photo_data = getattr(request, photo_field, None) if photo_data: - print(f"DEBUG: {photo_field} 저장 시작") saved_path = save_base64_image(photo_data, "completion") if saved_path: setattr(issue, path_field, saved_path) saved_paths.append(saved_path) - print(f"DEBUG: {photo_field} 저장 완료 - Path: {saved_path}") else: raise Exception(f"{photo_field} 저장에 실패했습니다.") # 완료 신청 정보 업데이트 - print(f"DEBUG: DB 업데이트 시작") issue.completion_requested_at = datetime.now() issue.completion_requested_by_id = current_user.id issue.completion_comment = request.completion_comment db.commit() db.refresh(issue) - print(f"DEBUG: DB 업데이트 완료") - return { "message": "완료 신청이 성공적으로 제출되었습니다.", "issue_id": issue.id, @@ -480,8 +456,6 @@ async def reject_completion_request( raise HTTPException(status_code=403, detail="완료 반려 권한이 없습니다.") try: - print(f"DEBUG: 완료 반려 시작 - Issue ID: {issue_id}, User: {current_user.username}") - # 완료 사진 파일 삭제 (최대 5장) for i in range(1, 6): path_field = f"completion_photo_path{i if i > 1 else ''}" @@ -489,9 +463,8 @@ async def reject_completion_request( if photo_path: try: delete_file(photo_path) - print(f"DEBUG: {path_field} 삭제 완료") - except Exception as e: - print(f"WARNING: {path_field} 삭제 실패 - {str(e)}") + except Exception: + pass # 완료 신청 정보 초기화 issue.completion_requested_at = None @@ -511,8 +484,6 @@ async def reject_completion_request( db.commit() db.refresh(issue) - print(f"DEBUG: 완료 반려 처리 완료") - return { "message": "완료 신청이 반려되었습니다.", "issue_id": issue.id,